您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Kubernetes集群如何更換節(jié)點(diǎn)名稱,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
Kubernetes集群節(jié)點(diǎn)會(huì)使用/etc/hostname的機(jī)器名稱或者DNS,最好在創(chuàng)建集群之前設(shè)置妥當(dāng)域名和機(jī)器名。如果在集群設(shè)置之后修改節(jié)點(diǎn)名稱,將會(huì)比較麻煩。尤其是如果需要修改第一個(gè)節(jié)點(diǎn)的名稱,會(huì)出現(xiàn)創(chuàng)建key和token失敗,集群中無(wú)法再加入master節(jié)點(diǎn),就需要全部重建集群或者手工修改所有相關(guān)的配置文件的參數(shù)。
Kubernetes集群更換節(jié)點(diǎn)名稱目前沒(méi)有簡(jiǎn)單的方法,步驟如下:
刪除pod
刪除節(jié)點(diǎn)
清理etcd
創(chuàng)建token
重新加入集群
具體操作如下:
對(duì)節(jié)點(diǎn)執(zhí)行維護(hù)操作之前(例如:內(nèi)核升級(jí),硬件維護(hù)等),您可以使用 kubectl drain
安全驅(qū)逐節(jié)點(diǎn)上面所有的 pod。安全驅(qū)逐的方式將會(huì)允許 pod 里面的容器遵循指定的 PodDisruptionBudgets
執(zhí)行優(yōu)雅的中止。
首先,需要確定希望移除的節(jié)點(diǎn)的名稱。您可以通過(guò)下面命令列出集群里面所有的節(jié)點(diǎn):
kubectl get nodes
接下來(lái),告知 Kubernetes 移除節(jié)點(diǎn):
kubectl drain <node name>
執(zhí)行完成后,如果沒(méi)有任何錯(cuò)誤返回,您可以關(guān)閉節(jié)點(diǎn)(如果是在云平臺(tái)上,可以刪除支持該節(jié)點(diǎn)的虛擬機(jī))。如果在維護(hù)操作期間想要將節(jié)點(diǎn)留在集群,那么您需要運(yùn)行下面命令:
kubectl uncordon <node name>
然后,它將告知 Kubernetes 允許調(diào)度新的 pod 到該節(jié)點(diǎn)。
參考:
驅(qū)逐節(jié)點(diǎn)上的任務(wù)pod,https://www.cnblogs.com/weifeng1463/p/10359581.html
??注意:如果未使用drain驅(qū)逐所有的待刪除節(jié)點(diǎn)上的pod,即使node被刪除,該pod將一直運(yùn)行到節(jié)點(diǎn)服務(wù)重啟為止。
刪除該節(jié)點(diǎn):
kubectl delete node podc01
然后問(wèn)題仍然存在。經(jīng)查,被刪除節(jié)點(diǎn)的etcd服務(wù)地址仍然在集群中,而且不可訪問(wèn),升級(jí)無(wú)法完成。
根據(jù)網(wǎng)上的kubeadm說(shuō)明,使用kubeadm reset將會(huì)自動(dòng)刪除etcd的節(jié)點(diǎn)信息。
但是,kubeadm reset后,經(jīng)查,被刪除節(jié)點(diǎn)的etcd服務(wù)地址仍然在集群中,而且不可訪問(wèn),升級(jí)無(wú)法完成。
查看并手動(dòng)刪除 etcd node信息:
alias etcdv3="ETCDCTL_API=3 etcdctl --endpoints=https://[10.1.1.202]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key"
因?yàn)閑tcd的命令較長(zhǎng),先用個(gè)別名簡(jiǎn)化一下。
將上面的10.1.1.202改為自己的可用master節(jié)點(diǎn)IP地址。
更多etcd使用指南,可參考:
Kubernetes的etcd多節(jié)點(diǎn)擴(kuò)容實(shí)戰(zhàn)技巧
Kubernetes探秘-etcd節(jié)點(diǎn)和實(shí)例擴(kuò)容
Kubernetes的etcd數(shù)據(jù)查看和遷移
Kubernetes探秘—etcd狀態(tài)數(shù)據(jù)及其備份
然后,運(yùn)行:
#查看etcd集群的成員:etcdv3 member list#刪除etcd集群的不可訪問(wèn)的成員:etcdv3 member remove XXXXXXXXXX#再次查看etcd集群的成員:etcdv3 member list
kubernetes高可用集群升級(jí)的etcd錯(cuò)誤
修改/etc/kubernetes下所有配置文件中的server地址為可用節(jié)點(diǎn)地址。
在當(dāng)前的集群中新增節(jié)點(diǎn):
第一步,重新創(chuàng)建certificate key和token:
sudo kubeadm init phase upload-certs --upload-certs### Got:# [upload-certs] Using certificate key:# 2ffe5bbf7d2e670d5bcfb03dac194e2f21eb9715f2099c5f8574e4ba7679ff78# Add certificate-key for Multi Master Node.kubeadm token create --print-join-command --certificate-key 2ffe5bbf7d2e670d5bcfb03dac194e2f21eb9715f2099c5f8574e4ba7679ff78
增加Worker節(jié)點(diǎn):
kubeadm join 192.168.199.173:6443 --token rlxvkn.2ine1loolri50tzt --discovery-token-ca-cert-hash sha256:86e68de8febb844ab8f015f6af4526d78a980d9cdcf7863eebb05b17c24b9383
增加master節(jié)點(diǎn):
kubeadm join 192.168.199.173:6443 --token rlxvkn.2ine1loolri50tzt --discovery-token-ca-cert-hash sha256:86e68de8febb844ab8f015f6af4526d78a980d9cdcf7863eebb05b17c24b9383 --control-plane --certificate-key 440a880086e7e9cbbcebbd7924e6a9562d77ee8de7e0ec63511436f2467f7dde
查看新的節(jié)點(diǎn)列表:
kubectl get node -o wide
如果服務(wù)沒(méi)有起來(lái),測(cè)試一下:
查看服務(wù)版本,kubectl version
查看集群信息,kubectl cluster-info
查看服務(wù)狀態(tài),sudo systemctl status kubelet
查看服務(wù)日志,journalctl -xefu kubelet
以上就是Kubernetes集群如何更換節(jié)點(diǎn)名稱,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。