一、删除node节点
1、先查看一下这个node节点上的nodes信息
kubectl get nodes
2、驱逐此node节点上的pod
kubectl drain node01 --delete-local-data --force --ignore-daemonsets
3、删除这个node节点
kubectl delete nodes node01
4、然后在node01这个节点上执行如下命令:
kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker
systemctl start kubelet
如果不做上面的操作的话会导致这个节点上的pod无法启动,具体报错信息为:networkPlugin cni failed to set up pod "alertmanager-main-1_monitoring" network: failed to set bridge ad has an IP address different from 10.244.5.1/24 ,意思是已经集群网络cni已经有一个不同于10.244.51.1/24 的网络地址,所以需要执行上述命令重置节点网络。
二、重新加入这个node节点
节点加入集群的命令格式:kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
默认token的有效期为24小时,过期后,该token不可用,解决方法如下:
重新生成新的token ==> kubeadm token create 文章来源:https://www.toymoban.com/news/detail-716384.html
1.查看当前的token列表
kubeadm token list
2.重新生成新的token
kubeadm token create
3.再次查看当前的token列表
kubeadm token list
4.获取ca证书sha256编码hash值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
5.节点加入集群
kubeadm join 39.96.46.96:6443 --token 369tcl.oe4punpoj9gaijh7(**新的token**) --discovery-token-ca-cert-hash sha256:7ae10591aa593c2c36fb965d58964a84561e9ccd416ffe7432550a0d0b7e4f90(**ca证书sha256编码hash值**)
再次在master节点查看node发现node已加入到集群。文章来源地址https://www.toymoban.com/news/detail-716384.html
到了这里,关于k8s删除node节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!