k8s学习笔记——添加worker节点
在安装完master节点后,下一步就是添加worker节点,如果以前机器上已经运行过kubeadm命令,在添加之前需要先清空一下,使用kubeadm reset命令。
然后删除网络插件sudo rm -rf /etc/cni/net.d
删除用户权限文件sudo rm -rf /root/.kube/config && sudo rm -rf $HOME/.kube/config
1、如果kubeadm init时没有保存下来token信息或者token已过期,需要重新生成token。
在master节点上执行kubeadm token create --print-join-command > kubeadm_worker_join
将信息保存到kubeadm_worker_join文件中。此token过期时间为24小时,如果想生成一个永不过期的token,可以在上述命令中增加 --ttl 0 参数配置项。
2、将文件拷贝到worker节点。
如果worker节点安装了openssh,就可以使用如下命令拷贝
scp kubeadm_worker_join shell87@10.12.70.134:~/
黄色部分为worker节点登录的用户名,绿色为worker节点的IP地址
命令将文件拷贝到节点的$HOME目录
3、执行添加命令
到要添加的worker节点的家目录,该目录下有拷贝过来的kubeadm_worker_join文件,执行如下命令:
sudo $(cat kubeadm_worker_join)
显示成功后,到master节点,使用kubectl get nodes命令查看,可以看到worker节点已经添加进来。
4、NotReady状态
添加后的节点如果没有正确拉取镜像,节点会显示NotReady状态,需要手动拉取镜像。
worker节点需要拉取的镜像最少需要3个文件分别是
pause:3.4.1
kube-proxy:v1.20.4
coredns:1.7.0
冒号后的数字为软件版本号,这里可根据具体需求填写,需要和集群中其它节点上的软件版本保持 一致。
解决方法:
vim pullk8s_worker.sh
#!/bin/bash name=( pause:3.4.1 kube-proxy:v1.20.4 coredns:1.7.0 ) for i in ${name[@]}; do docker pull registry.aliyuncs.com/google_containers/$i docker tag registry.aliyuncs.com/google_containers/$i k8s.gcr.io/$i docker rmi registry.aliyuncs.com/google_containers/$i done;
chmod +x pullk8s_worker.sh
sudo ./pullk8s_worker.sh
sudo systemctl restart kubelet
5、master节点添加token过期
6、master节点无法加入