一、需求:
在 Kubernetes 中,使用 kubeadm
的方式 删除和 重新添加节点
二、删除节点
-
从集群中删除节点
首先,需要在主节点上将节点从集群中删除。假设要删除的节点名称为
node-1
:kubectl delete node node-1
-
在要删除的节点上执行
你还需要在要删除的节点上执行以下命令,以清理本地的 K8s 配置和状态:
kubeadm reset
这个命令会删除 K8s 集群的所有配置文件和数据。执行后,还需要删除节点上的 K8s 配置文件和网络插件的配置,例如:
rm -rf /etc/kubernetes rm -rf /var/lib/etcd
以及清理 CNI 网络插件的配置,例如:
rm -rf /var/lib/cni/
三、重新添加节点
-
重新初始化节点
确保节点上的
kubeadm
工具已安装,并且网络插件和其他相关工具也已正确配置。然后,使用
kubeadm join
命令重新将节点加入集群。首先,你需要从主节点获取kubeadm join
命令的令牌。可以通过以下命令生成新的令牌:kubeadm token create --print-join-command
这条命令会输出类似以下内容的命令:
kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
在要重新加入的节点上执行输出的
kubeadm join
命令:kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
-
验证节点状态
重新加入节点后,可以在主节点上检查节点状态以确保它成功加入:
kubectl get nodes
如果节点状态显示为
Ready
,则说明节点已经成功加入集群。
注意事项
- 确保在执行
kubeadm reset
命令时,节点上的所有数据和配置都被清除,以避免潜在的冲突。 - 在重新加入节点之前,确保集群和节点的网络配置正常。
- 如果你的集群使用了自定义的网络插件或配置,确保在节点上进行相应的配置。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟