在搭建集群过程中,有时候会遇到一个节点处于ready状态,另一个节点处于notready状态,需要把node节点从集群中删除后再次加入。
node节点删除
如果需要在k8s集群中删除节点,首先需要在master节点上删除该节点的相关数据,再删除该节点,接着在该节点上进行reset操作,接着删除相关文件。
1. 在master上查看所有node节点
[root@master ~]# kubectl get node NAME STATUS ROLES AGE VERSION master Ready master 23h v1.17.4 node01 Ready <none> 23h v1.17.4 node02 NotReady <none> 23h v1.17.4
可以看到node2处于NotReady状态,我们把node2删除重新加入集群。
2. 在主节点上删除node2节点
# 在主节点上驱逐该node节点上的Pod kubectl drain node02 --delete-local-data --force --ignore-daemonsets # 在主节点上删除该node节点 kubectl delete node node02
3. 在node02节点上清空集群信息
# 重置k8s kubeadm reset # 删除残留的文件 rm -rf /etc/kubernetes/* # 清除iptables或者ipvs的配置 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X ipvsadm --clear
如果删除的是master节点,还需要删除用户目录下的.kube
文件
rm -rf ~/.kube
最后重启设备。
添加node节点
# node节点上删除之前的证书 rm -f /opt/kubernetes/ssl/kubelet* # 重启kubelet systemctl restart kubelet # 在主节点上生成一个证书 kubeadm token create --print-join-command kubeadm token create --print-join-command --ttl=0 # 此命令可以生成一个永久性的token
在node节点上执行token命令
kubeadm join 192.168.2.104:6443 --token f5pth3.fm2oupz828pl70s4 --discovery-token-ca-cert-hash sha256:5fd5bfbef1ed2d48b872cd95beb99a7a470582d28cc499ba577b8bbd9c2e7735
在主节点上查看node检查是否添加成功
kubectl get nodes