1.需求情景:機房網絡調整,忽然要回收我k8s集羣上一臺node節點機器的ip,並調予新的ip到這臺機器上,因此有了k8s集羣節點更換ip一說;同時,k8s集羣節點更換ip也至關於k8s集羣添加新節點,他們的操做流程是同樣的。node
2.機器更換ip後發生的現象:網絡
(1)查看節點狀態,kubectl get node ,仍是原來的節點名稱和Ready狀態,但事實上它已經不工做了;app
(2)查看集羣pods,運行在已更換ip node節點的pod已處於Terminating,已沒法正常工做spa
3.修復node節點可用性rest
(1)生成新的證書,本節點涉及的變動進程有:etcd,flanneld,kubelet,kube-proxy,因此所有證書須要從新生成,執行腳本:sh k8s_ssl_create_only_one.shserver
(2)拷貝新的證書到各節點的ssl目錄下blog
(3)修改配置文件,把涉及到變動節點ip的配置文件都要修改:sed -i 's/old_ip/new_ip/g' *token
(4)刪除變動節點下ssl證書目錄的kubelet-client-*文件:rm -rf kubelet-client-*進程
(5)從新生成cfg下的*.kubeconfig文件,注意environment.sh下的token是否有所改變:sh environment.sh 【只要證書變動,都要執行一下sh environment.sh】ip
(6)重啓集羣各服務:
sh k8s_master_server_restart.sh restart
sh k8s_node_server_restart.sh restart
(7)master審批node節點加入集羣:
kubectl get csr
/usr/local/k8s/kubernetes/bin/kubectl certificate approve XXXXID 【審批加入】
(8)查看節點:kubectl get nodes
可見舊的節點還在記錄中
(9)刪除棄用node節點:kubectl delete node NODE_NAME
4.完畢