溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Kubernetes集群如何更換節(jié)點(diǎn)名稱

發(fā)布時(shí)間:2021-10-12 11:51:49 來(lái)源:億速云 閱讀:304 作者:柒染 欄目:云計(jì)算

本篇文章給大家分享的是有關(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)單的方法,步驟如下:

  1. 刪除pod

  2. 刪除節(jié)點(diǎn)

  3. 清理etcd

  4. 創(chuàng)建token

  5. 重新加入集群

具體操作如下:

1、刪除任務(wù)

對(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ù)重啟為止。

2、刪除節(jié)點(diǎn)

刪除該節(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ú)法完成。

3、手動(dòng)刪除etcd node

查看并手動(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)地址。

4、創(chuàng)建token

在當(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

5、重新加入集群

  • 增加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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI