有时候k8s node 在加入集群的时候不经意的时候弄错啦某些东西,这时候可以把这个node删除,然后重新加入,删除节点之前我们需要做一下常规化的操作,来保障运行在该节点的pod迁移到其他的node上。
1、先驱赶上面的pod
1
2
3[root@k8s-master-01-2 kubernetes]# kubectl drain 172.21.110 --delete-local-data
node/172.21.110 cordoned
node/172.21.110 drained2、删除节点
1
2[root@k8s-master-01-2 kubernetes]# kubectl delete node 172.21.110
node "172.21.110" deleted
kubectl delete
命令本身是通用的,可以进行任何资源的删除kubectl delete type typename
,type是资源类型,可以是node, pod, rs, rc, deployment, service
等等,typename是这个资源的名称
3、查看node是否被删除
1
2
3
4[root@k8s-master-01-2 kubernetes]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
172.21.17.30 Ready <none> 20m v1.13.3
172.21.17.31 Ready <none> 10m v1.13.34、彻底删除node
进入该节点。删除kubelet.kubeconfig
1
[root@k8s-master-01-3 kubernetes]# rm -rf kubelet.kubeconfig
4、node重新加入集群
当我们的node执行删除以后,重新启动kubelet服务以后。node又会自动的加入到集群里面来,怎么彻底的删除,让后重启kubelet的时候重新像集群里面发出csr请求,集群重新通过该节点的csr请求吧该节点加入到集群来,kubelet.kubeconfig
也重新生成1
2
3
4
5
6[root@k8s-master-01-2 kubernetes]# kubectl get csr
NAME AGE REQUESTOR CONDITION
node-csr-H1CAqJw4VZYY67-tk4Akuso_uuPPwpj3d5jK3xcL88M 8m kubelet-bootstrap Approved,Issued
node-csr-YPvpbITaxGBrOxuCpGiY7jrGpPNSZ4sdbKhSkUEcdnc 7m54s kubelet-bootstrap Approved,Issued
node-csr-odhUT58g0mdVuZdUeclj7doEpUmWzv1YzaiJYQaPeek 5s kubelet-bootstrap Pending
node-csr-u4oi5e0Upt-ZmejSDEFm9Q0RU3wZf9bThU_o51nclgg 17m kubelet-bootstrap Approved,Issued5、重新通过csr
1
2[root@k8s-master-01-2 kubernetes]# kubectl certificate approve node-csr-odhUT58g0mdVuZdUeclj7doEpUmWzv1YzaiJYQaPeek
certificatesigningrequest.certificates.k8s.io/node-csr-odhUT58g0mdVuZdUeclj7doEpUmWzv1YzaiJYQaPeek approved6、在集群查看节点
1
2
3
4
5[root@k8s-master-01-2 kubernetes]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
172.21.16.110 Ready <none> 36s v1.13.3
172.21.17.30 Ready <none> 28m v1.13.3
172.21.17.31 Ready <none> 17m v1.13.3