在安装完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过期

kubeadm join-集群中加入新的master与worker节点_牛牛Blog的博客-CSDN博客_master节点和worker节点

6、master节点无法加入

https://www.jianshu.com/p/451dc38b1289 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐