本文来自于【阿里云官方镜像站:developer.aliyun.com/mirror/?utm… 】
原文链接:developer.aliyun.com/article/755…
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
一、部署说明
- Kubernetes 集群部署
在阿里云上,容器服务提供了一键式的Kubernetes部署,但很多场景应用下需要搭建自托管的Kubernetes集群。\
-
Kubernetes 架构图
-
节点信息
System: CenOS 7.6 - x64Master 172.20.1.202 kube-controller-manager kube-apiserver kube-scheduler etcd coredns kube-flannel kube-proxy docker-ceSlave1 172.20.1.203 kube-flannel kube-proxy docker-ceSlave2 172.20.1.204 kube-flannel kube-proxy docker-ce\
在阿里云上,可以直接通过ECS云服务器来作为集群运行环境。
\
二、配置详解
- 基础配置
基础工具安装(以下配置每个节点都需要运行)
yum -y install ntpdate vim wget\
修改各节点主机名
echo k8s-c01-p001 > /etc/hostnameecho k8s-c01-p002 > /etc/hostnameecho k8s-c01-p003 > /etc/hostname\
修改时区及时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate 0.cn.pool.ntp.org\
关闭内核防火墙及系统防火墙
systemctl stop firewalld.servicesystemctl disable firewalld.service setenforce 0sed -i 's/=enforcing/=disabled/' /etc/selinux/config\
配置Hosts文件
tee /etc/hosts <<-'EOF'172.20.1.202 k8s-c01-p001
172.20.1.203 k8s-c01-p002
172.20.1.204 k8s-c01-p003
EOF\
内核信息修改
echo "1" > /proc/sys/net/ipv4/ip_forwardecho "1" > /proc/sys/net/bridge/bridge-nf-call-iptablesecho "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables
tee /etc/sysctl.d/kubernetes.conf <<-'EOF'net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF\
- 相关环境配置
Docker RPM仓库配置
wget -P /etc/yum.repos.d/ mirrors.aliyun.com/docker-ce/l…
Kubernetes RPM仓库配置
wget -P /etc/yum.repos.d/ mirrors.aliyun.com/kubernetes/…
rpm --import /etc/yum.repos.d/rpm-package-key.gpg
tee /etc/yum.repos.d/kubernetes.repo <<-'EOF'[kubernetes]
name=kubernetes Repo
baseurl=mirrors.aliyun.com/kubernetes/…
安装Docker及Kube工具
yum install -y docker-ce kubelet kubeadm kubectl\
启动docker
systemctl start docker\
关闭虚拟内存
swapoff -a
echo "KUBELET_EXTRA_ARGS="--fail-swap-on=false"" > /etc/sysconfig/kubelet\
配置自启动
systemctl enable kubelet docker\
查看需要用到的镜像,如果遇到墙的问题,可以在墙外下载完拉回来
kubeadm config images list
kubeadm config images pull\
初始化管理节点 只需要Master运行
kubeadm init --kubernetes-version=v1.16.0 --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --ignore-preflight-errors=Swap\
\
配置kubectl连接信息
mkdir -p HOME/.kube/configchown (id -g) $HOME/.kube/config\
配置网络插件
kubectl apply -f raw.githubusercontent.com/coreos/flan…
\
- 集群部署
在工作节点加入集群 只需要Slave运行
kubeadm join :6443 --token \ --discovery-token-ca-cert-hash sha256:\
\
集群部署完成,查看集群节点
kubectl get node -owi\
查看集群节点上运行的Pod
kubectl get pods -n kube-system -owide\
建议:优先使用阿里云ACK容器服务,较低运维成本,方便管理。