Kubernetes(k8s)是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理,具备可移植、可扩展、自动化等特点。
本系列教程讲述在CentOS7系统中k8s集群的部署过程,本节内容重点讲述如何部署worker节点。
核心组件介绍
名称 | 介绍 |
kubelet | Kubernetes的Agent服务,将每个Pod转换成一组容器,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。 |
kube-proxy | 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。 |
配置Worker环境
0x01 安装应用包
在Worker上安装以下应用包:
# yum -y install ebtables ethtool yum -y install docker-ce kubelet kubeadm kubectl systemctl enable docker kubelet systemctl start docker
0x02 检查cgroup
修改/usr/lib/systemd/system/docker.service,在ExecStart=/usr/bin/dockerd行末添加参数:
--exec-opt native.cgroupdriver=systemd
然后重启服务:
systemctl daemon-reload systemctl restart docker
更多配置请查阅Kubernetes集群部署教程二·Master节点。
配置Worker节点
1x01 导入镜像文件
同样因为某些原因,国内无法访问国外的某些资源,这里我们改用阿里云的镜像服务器。
#!/bin/bash images=(kube-proxy:v1.19.2 pause:3.2) for image in ${images[@]} do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${image} docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${image} k8s.gcr.io/${image} done
1x02 加入集群
将worker节点加入集群:
kubeadm join 10.10.200.200:8443 --token bf1bni.w11z5kymeaomqddr \ --discovery-token-ca-cert-hash sha256:26e4de3f6e72ed2b143627cf10068c84e094c2fa30c0aa2fee32f53a2b0254f2
如果 kubeadm join ... 操作执行失败,必须通过以下命令重置,然后重新操作:
kubeadm reset
1x03 配置kubectl
从master节点上把admin.conf复制过来:
scp /etc/kubernetes/admin.conf root@k8sw01:~
回worker节点进行配置:
mkdir ~/.kube mv ~/admin.conf ~/.kube/config echo "export KUBECONFIG=~/.kube/config" >> ~/.bash_profile source ~/.bash_profile
在worker节点查看节点状态:
kubectl get po -o wide -n kube-system
1x04 配置网络
根据master节点的网络方案部署worker节点的网络方案:
# 本系列教程以flannel为例 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 网格模块也可以使用calico # kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml # kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
从本站分享点下载配置文件。
维护Worker节点
重新部署worker
kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets kubectl delete node <node_name>
Worker节点删除flannel网段
kubeadm reset ifconfig cni0 down ip link delete cni0 ifconfig flannel.1 down ip link delete flannel.1 rm -rf /var/lib/cni/
原创文章禁止转载:技术学堂 » Kubernetes集群部署教程三·Worker节点