广告

Kubernetes集群部署教程三·Worker节点

Kubernetes(k8s)是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理,具备可移植、可扩展、自动化等特点。

本系列教程讲述在CentOS7系统中k8s集群的部署过程,本节内容重点讲述如何部署worker节点。

核心组件介绍

名称 介绍
kubelet Kubenetes的Agent服务,将每个Pod转换成一组容器,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。
kube-proxy 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。

配置Worker环境

先完成环境配置

0x01 安装应用包

在Master上安装以下应用包:

# 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

更多配置请查阅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节点的网络方案:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 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/

赞 (0) 打赏

精彩点评 0

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏