在已有k8s雲平台中誤刪除node節點,然后將誤刪除的節點添加進集群中。如果是一台新服務器必須還要安裝docker和k8s基礎組件!
一、模擬誤刪除node節點
$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 157m v1.19.3
k8s-node1 Ready <none> 153m v1.19.3
k8s-node2 Ready <none> 7m48s v1.19.3
$ kubectl drain k8s-node2 --delete-local-data --force --ignore-daemonsets
# 封鎖k8s-node2這個node節點,排干該node節點上的pod資源
$ kubectl delete node k8s-node2
# 刪除k8s-node2這個節點
二、在被刪除的node節點情況集群信息
$ kubeadm reset -f
$ ifconfig cni0 down && ip link delete cni0
$ ifconfig flannel.1 down && ip link delete flannel.1
$ rm -rf /var/lib/cni/
三、在master節點查看集群的token值
查看token值,重點查看token的TTL值
$ kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
8g8yh7.cb1kumg8yzv0umsn 23h 2021-02-05T15:11:41+08:00 authentication,signing <none>
如果token過期,使用如下命令重新生成:
$ kubeadm token create
m9rrtc.2cm48k5w6ymsprwt
獲取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/^.* //'
7a9a8c79acac93c85d9f52351a0f251249a4ae6fcb48c801cce1c159bb095ebe
也可以重新生產token並獲取hash值,使用如下命令:
$ kubeadm token create --print-join-command
kubeadm join 192.168.54.128:6443 --token mg4o13.4ilr1oi605tj850w --discovery-token-ca-cert-hash sha256:363b5b8525ddb86f4dc157f059e40c864223add26ef53d0cfc9becc3cbae8ad3
四、將node節點重新添加到k8s集群中
$ kubeadm join 192.168.54.128:6443 --token mg4o13.4ilr1oi605tj850w --discovery-token-ca-cert-hash sha256:363b5b8525ddb86f4dc157f059e40c864223add26ef53d0cfc9becc3cbae8ad3
重新查看master節點信息
$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 179m v1.19.3
k8s-node1 Ready <none> 175m v1.19.3
k8s-node2 Ready <none> 29m v1.19.3