移除節(jié)點(diǎn)
當(dāng)您不再需要該節(jié)點(diǎn)繼續(xù)工作時(shí),請(qǐng)您在容器服務(wù)管理控制臺(tái)的節(jié)點(diǎn)池頁(yè)面進(jìn)行移除節(jié)點(diǎn)的標(biāo)準(zhǔn)化操作,以免帶來(lái)不符合預(yù)期的效果。移除節(jié)點(diǎn)會(huì)涉及Pod遷移,可能會(huì)影響業(yè)務(wù),請(qǐng)?jiān)跇I(yè)務(wù)低峰期操作。
前提條件
已創(chuàng)建Kubernetes集群。具體操作,請(qǐng)參見(jiàn)創(chuàng)建ACK托管集群、創(chuàng)建ACK專(zhuān)有集群。
已通過(guò)kubectl連接Kubernetes集群。具體操作,請(qǐng)參見(jiàn)獲取集群KubeConfig并通過(guò)kubectl工具連接集群。
工作原理
節(jié)點(diǎn)池移除節(jié)點(diǎn)是指將集群中的節(jié)點(diǎn)移出集群,ACK會(huì)自動(dòng)調(diào)整期望節(jié)點(diǎn)數(shù),調(diào)整后期望節(jié)點(diǎn)數(shù)為原期望節(jié)點(diǎn)數(shù)減去移除節(jié)點(diǎn)數(shù)。修改期望節(jié)點(diǎn)數(shù),請(qǐng)參見(jiàn)修改期望節(jié)點(diǎn)數(shù)。
您可以通過(guò)勾選:
同時(shí)釋放ECS:節(jié)點(diǎn)移出集群后釋放實(shí)例。
重要包年包月實(shí)例不會(huì)被釋放。
自動(dòng)排空節(jié)點(diǎn):節(jié)點(diǎn)移出集群前對(duì)節(jié)點(diǎn)進(jìn)行排水。
說(shuō)明移除節(jié)點(diǎn)任務(wù)的超時(shí)時(shí)間為30min。如果您的Pod中配置了較大的terminationGracePeriodSeconds(優(yōu)雅退出時(shí)間),比如40min。因?yàn)槌瑫r(shí)時(shí)間的優(yōu)先級(jí)高于優(yōu)雅退出時(shí)間,所以?xún)?yōu)先生效的是30min,而不是40min。排水任務(wù)在等待30min后會(huì)中斷流程,并判定排水失敗,需要自行重試。
排水失敗后移除節(jié)點(diǎn)任務(wù)將會(huì)立即暫停并退出,不會(huì)執(zhí)行后續(xù)的移除步驟。因此如果您的業(yè)務(wù)Pod對(duì)優(yōu)雅退出時(shí)間要求較高,您可以先通過(guò)執(zhí)行命令
kubectl drain [node-name] [options]
手動(dòng)排水再驅(qū)逐節(jié)點(diǎn),待節(jié)點(diǎn)上沒(méi)有業(yè)務(wù)Pod運(yùn)行后,取消勾選自動(dòng)排空節(jié)點(diǎn)選項(xiàng),對(duì)節(jié)點(diǎn)進(jìn)行移除操作。
節(jié)點(diǎn)池移除節(jié)點(diǎn)將依次執(zhí)行以下步驟:
如果勾選了自動(dòng)排空節(jié)點(diǎn),則會(huì)優(yōu)先對(duì)節(jié)點(diǎn)進(jìn)行排水。如果排水失敗,移除節(jié)點(diǎn)任務(wù)將立即暫停并退出。因此請(qǐng)您在做移除節(jié)點(diǎn)操作前,確保其他節(jié)點(diǎn)資源充足,避免業(yè)務(wù)無(wú)法調(diào)度的問(wèn)題。您也可以通過(guò)執(zhí)行
kubectl drain [node-name] [options]
命令,在移除節(jié)點(diǎn)前自行對(duì)節(jié)點(diǎn)進(jìn)行排水,并在移除節(jié)點(diǎn)時(shí)不勾選自動(dòng)排空節(jié)點(diǎn)。將節(jié)點(diǎn)從APIServer移除。
將節(jié)點(diǎn)從ESS伸縮組移除并釋放(是否會(huì)釋放取決于是否勾選同時(shí)釋放ECS)。如果節(jié)點(diǎn)是包年包月的節(jié)點(diǎn),即使勾選了同時(shí)釋放ECS,也不會(huì)釋放。需要您在移除節(jié)點(diǎn)完成后通過(guò)ECS控制臺(tái)或接口手動(dòng)處理。如果節(jié)點(diǎn)是按量付費(fèi)節(jié)點(diǎn),且您在移除節(jié)點(diǎn)時(shí),勾選了同時(shí)釋放ECS,則會(huì)立即釋放ECS節(jié)點(diǎn),請(qǐng)您提前做好數(shù)據(jù)備份。
使用說(shuō)明
移除節(jié)點(diǎn)會(huì)涉及Pod遷移,可能會(huì)影響業(yè)務(wù),請(qǐng)?jiān)跇I(yè)務(wù)低峰期操作。
操作過(guò)程中可能存在非預(yù)期風(fēng)險(xiǎn),請(qǐng)?zhí)崆白龊孟嚓P(guān)的數(shù)據(jù)備份。
操作過(guò)程中,后臺(tái)會(huì)將當(dāng)前節(jié)點(diǎn)設(shè)置為不可調(diào)度狀態(tài)。
移除節(jié)點(diǎn)僅移除Worker節(jié)點(diǎn),不會(huì)移除Master節(jié)點(diǎn)。
移除節(jié)點(diǎn)請(qǐng)通過(guò)控制臺(tái)進(jìn)行操作,如果使用kubectl delete node方式手動(dòng)移除節(jié)點(diǎn),則:
移除后的節(jié)點(diǎn)無(wú)法再添加到其他集群中。
刪除集群時(shí),該節(jié)點(diǎn)所在的ECS實(shí)例會(huì)被釋放。
如果您沒(méi)有通過(guò)容器服務(wù)控制臺(tái),而是直接在ECS或者ESS控制臺(tái)(或相關(guān)API)主動(dòng)釋放節(jié)點(diǎn)、移除實(shí)例,或者因包年包月到期而被動(dòng)釋放節(jié)點(diǎn),那么節(jié)點(diǎn)或?qū)嵗蜁?huì)直接停機(jī),自動(dòng)從容器服務(wù)控制臺(tái)中移除。如果節(jié)點(diǎn)池設(shè)置了期望節(jié)點(diǎn)數(shù),那么節(jié)點(diǎn)池為了能夠?qū)⒐?jié)點(diǎn)個(gè)數(shù)維持在期望節(jié)點(diǎn)數(shù),會(huì)根據(jù)相應(yīng)節(jié)點(diǎn)池配置自動(dòng)擴(kuò)容其他實(shí)例至節(jié)點(diǎn)池,以達(dá)到期望節(jié)點(diǎn)數(shù)。
操作步驟
登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱(chēng),然后在左側(cè)導(dǎo)航欄,選擇 。
在節(jié)點(diǎn)池頁(yè)面,單擊目標(biāo)節(jié)點(diǎn)池名稱(chēng)。在節(jié)點(diǎn)管理頁(yè)簽中,選中目標(biāo)節(jié)點(diǎn),并單擊頁(yè)面下方的批量移除。
可選:在移除節(jié)點(diǎn)對(duì)話框中,可選中同時(shí)釋放 ECS和自動(dòng)排空節(jié)點(diǎn)(drain)。
同時(shí)釋放 ECS:
僅釋放按量付費(fèi)類(lèi)型的ECS實(shí)例及其數(shù)據(jù)盤(pán),不被釋放的ECS實(shí)例會(huì)繼續(xù)收費(fèi)。
對(duì)于預(yù)付費(fèi)ECS實(shí)例,計(jì)費(fèi)周期到期后,ECS實(shí)例會(huì)自動(dòng)釋放。
您也可以在ECS實(shí)例到期前:
申請(qǐng)退款,提前釋放實(shí)例,請(qǐng)參見(jiàn)退款規(guī)則及退款流程。
將計(jì)費(fèi)方式轉(zhuǎn)為按量付費(fèi)后釋放實(shí)例,請(qǐng)參見(jiàn)包年包月轉(zhuǎn)按量付費(fèi)。
若不選擇同時(shí)釋放 ECS,該節(jié)點(diǎn)所在的ECS實(shí)例會(huì)繼續(xù)計(jì)費(fèi)。
自動(dòng)排空節(jié)點(diǎn)(drain):將待移除節(jié)點(diǎn)上的Pod轉(zhuǎn)移到其他節(jié)點(diǎn)。請(qǐng)確保集群其他節(jié)點(diǎn)的資源充足。
您還可以通過(guò)執(zhí)行命令
kubectl drain node-name [options]
的方式將待移除節(jié)點(diǎn)上的Pod轉(zhuǎn)移到其他節(jié)點(diǎn)。說(shuō)明node-name格式為your-region-name.node-id。
your-region-name為您集群所在的地域名稱(chēng)。node-id為待移除節(jié)點(diǎn)所在的ECS實(shí)例ID。例如,cn-hangzhou.i-i-bp1asavedmte377c3**** 。
options
為該命令的可選配置參數(shù)。例如,可配置為--force --ignore-daemonsets --delete-local-data
。更多信息,請(qǐng)執(zhí)行命令kubectl drain --help
查看。
選中我已了解上述說(shuō)明,確認(rèn)移除節(jié)點(diǎn),單擊確定。
說(shuō)明如果提示節(jié)點(diǎn)移除失敗,取消勾選同時(shí)釋放ECS和自動(dòng)排空節(jié)點(diǎn)(drain)后重新移除。
常見(jiàn)問(wèn)題
為什么節(jié)點(diǎn)池的節(jié)點(diǎn)管理頁(yè)簽中沒(méi)有目標(biāo)節(jié)點(diǎn),但目標(biāo)節(jié)點(diǎn)屬于集群?
您可以通過(guò)以下方式移除節(jié)點(diǎn)。
登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱(chēng),然后在左側(cè)導(dǎo)航欄,選擇 。
在節(jié)點(diǎn)頁(yè)面,選中所有要移除的節(jié)點(diǎn),單擊批量移除。
在彈出頁(yè)面確認(rèn)相關(guān)信息,單擊確定。
相關(guān)文檔
容器服務(wù)ACK通過(guò)調(diào)整節(jié)點(diǎn)池的期望節(jié)點(diǎn)數(shù)實(shí)現(xiàn)節(jié)點(diǎn)池?cái)U(kuò)縮容,將節(jié)點(diǎn)數(shù)目維持在期望數(shù)量。擴(kuò)容節(jié)點(diǎn)池保證節(jié)點(diǎn)數(shù)量足夠支撐業(yè)務(wù)運(yùn)行,縮容節(jié)省成本。詳細(xì)信息,請(qǐng)參見(jiàn)擴(kuò)縮容節(jié)點(diǎn)池。
如果購(gòu)買(mǎi)ECS實(shí)例后需將該云服務(wù)器添加到ACK集群中作為Worker節(jié)點(diǎn),或移除Worker節(jié)點(diǎn)后需將節(jié)點(diǎn)實(shí)例重新加入節(jié)點(diǎn)池,您可以在容器服務(wù)管理控制臺(tái)自動(dòng)添加或手動(dòng)添加節(jié)點(diǎn)。詳細(xì)信息,請(qǐng)參見(jiàn)添加已有節(jié)點(diǎn)。
如何在不影響數(shù)據(jù)盤(pán)的情況下進(jìn)行節(jié)點(diǎn)池升級(jí),請(qǐng)參見(jiàn)升級(jí)節(jié)點(diǎn)池。