Kubernetes 高可用集群修改 Master IP 地址的正確姿勢


經過實際驗證的修改 master IP 地址的操作步驟,千真萬確,錯一罰十,kubernetes 版本是 v1.20.2。

折騰過程中所走的彎路是有4個ssl證書(apiserver, apiserver-kubelet-client, front-proxy-client)沒有重新生成,造成修改 IP 后 kubectl 命令可以正常執行但 master 總是處於 NotReady 狀態。

操作步驟如下:

1)替換 /etc/kubernetes 中與 IP 地址關聯的配置

oldip=10.0.9.171
newip=172.16.16.102
cd /etc/kubernetes

find . -type f | xargs grep $oldip
find . -type f | xargs sed -i "s/$oldip/$newip/"
find . -type f | xargs grep $newip

2)修改 /etc/hosts 中涉及舊 IP 地址的解析(如果有)

vim /etc/hosts
%s/10.0.9.171/172.16.16.102

3)修改集群配置與舊 IP 地址相關的配置(advertiseAddress)

kubectl -n kube-system edit cm kubeadm-config 
%s/10.0.1.81/10.0.9.171

4)重新相關 ssl 證書

4.1)重新生成 etcd-server 證書

cd /etc/kubernetes/pki/etcd
rm server.crt server.key
kubeadm init phase certs etcd-server

4.2)重新生成 apiserver 證書

rm apiserver.crt apiserver.key
kubeadm init phase certs apiserver --control-plane-endpoint "k8s-api:6443"

4.3)重新生成 apiserver-kubelet-client 證書

rm apiserver-kubelet-client.crt apiserver-kubelet-client.key
kubeadm init phase certs apiserver-kubelet-client

4.4)重新生成 front-proxy-client 證書

rm front-proxy-client.crt front-proxy-client.key
kubeadm init phase certs front-proxy-client

5)重啟 k8s 相關服務

systemctl daemon-reload && systemctl restart kubelet && systemctl restart docker

搞定!

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM