1. 程式人生 > 其它 >K8S叢集刪除與新增節點(含報錯解決方法)

K8S叢集刪除與新增節點(含報錯解決方法)

一、刪除node節點

1、先檢視一下這個node節點上的pod資訊

2、驅逐這個node節點上的pod

# kubectl drain node06 --delete-local-data --force --ignore-daemonsets

3、刪除這個node節點

# kubectl delete nodes node06

4、然後在node06這個節點上執行如下命令:

kubeadmreset

systemctlstopkubelet

systemctlstopdocker

rm-rf/var/lib/cni/

rm-rf/var/lib/kubelet/*

rm-rf/etc/cni/

ifconfigcni0down

ifconfigflannel.1down

ifconfigdocker0down

iplinkdeletecni0

iplinkdeleteflannel.1

systemctlstartdocker

systemctlstartkubelet

如果不做上面的操作的話會導致這個節點上的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==>kubeadmtokencreate 

  #1.檢視當前的token列表

   #kubeadmtokenlist

  #2.重新生成新的token

   #kubeadmtokencreate

  #3.再次檢視當前的token列表

   #kubeadmtokenlist

  #4.獲取ca證書sha256編碼hash值

  #opensslx509-pubkey-in/etc/kubernetes/pki/ca.crt|opensslrsa-pubin-outformder2>/dev/null|openssldgst-sha256-hex|sed's/^.*//'

  #5.節點加入叢集

   #kubeadmjoin172.16.40.2:58443--token369tcl.oe4punpoj9gaijh7(新的token)--discovery-token-ca-cert-hashsha256:7ae10591aa593c2c36fb965d58964a84561e9ccd416ffe7432550a0d0b7e4f90(ca證書sha256編碼hash值)

  再次在master節點檢視node發現已經加入到叢集了。