當您不再需要某Worker節點繼續工作時,可以在Container Service管理主控台將節點從節點池或叢集中移除。請參見本文的注意事項和功能說明,在業務低峰期執行標準化操作。
適用情境
節點池功能推出前建立的老叢集中,存在未被節點池管理的游離Worker節點。期望從叢集中移除該節點。當後續仍需使用時,期望將其添加到已有節點池,便於節點批量營運。
購買新ECS執行個體後,需要替換節點池中老ECS執行個體,期望將新執行個體添加到節點池中運行,將老執行個體移除。
節點池開啟了手動擴容或自動擴容,期望縮容指定的ECS執行個體,節省資源成本。
需要將一個節點池中的節點遷移到另一個節點池,期望從原節點池中移除對應節點,然後添加到新節點池中。
ECS執行個體需升降配資源,期望移除對應節點,在ECS控制台升降配後再將其添加到節點池中。
ECS執行個體需轉換付費類型(例如隨用隨付轉訂用帳戶),期望移除對應節點,在ECS控制台轉換後再將其添加到節點池中。
節點異常時,期望通過移除節點再添加到叢集中的方式完成節點初始化。
此操作會通過替盤重設節點(替換節點系統硬碟)完成,請務必備份系統硬碟中的重要資料。
注意事項
移除節點時,請在Container Service管理主控台執行標準化操作。請勿使用
kubectl delete node方式手動移除節點。請勿直接在ECS或者ESS控制台(或通過相關API)主動釋放節點、移除執行個體,或因訂用帳戶執行個體到期而被動釋放節點。這些情況下,節點會直接停機,自動從Container Service管理主控台中移除。
如果節點池設定了期望節點數,為了將節點個數始終維持在期望節點數,節點池會根據相應配置自動擴容其他執行個體。
移除節點涉及Pod的遷移,可能會影響業務,請在業務低峰期操作。操作過程中可能存在非預期風險,請提前做好相關的資料備份。
移除節點時,ACK會執行排水操作,請確保叢集其他節點的資源充足,以避免業務Pod無法調度。
需檢查待移除節點上的Pod的節點親和性規則和調度策略,確保Pod不會因為節點移除而無法調度到其他節點。
節點系統硬碟和資料盤的生命週期與節點綁定。當節點因移除被釋放時,雲端硬碟會隨之釋放,盤內的所有資料將永久丟失且無法恢複。對於需要持久化儲存的資料,請使用持久化儲存卷(PersistentVolume, PV) 進行管理,實現儲存資料與節點生命週期的解耦,保障資料安全。
功能說明
移除節點是指將某個或某些Worker節點從節點池或叢集中移除。如果您的節點池開啟了期望節點數(節點池應該維持的總節點數量),節點池會自動調整該數值。
如移除後仍需將執行個體添加到叢集中,請參見操作步驟。
移除前,支援按需選擇是否自動排空節點(將節點上的Pod安全驅逐到其他節點)以及是否同時釋放ECS(釋放ECS執行個體及其資料盤)。
自動排空節點(drain)
節點移除前,對節點進行排水,將節點上的Pod安全地驅逐到其他節點,避免服務中斷。執行操作前,請確保叢集其他節點的資源充足,以避免業務Pod無法調度。同時關注以下注意事項。
優雅退出時間配置:移除節點時,系統預設的 Pod 優雅退出逾時時間為 30 分鐘。 即使 Pod 自身配置了更長的terminationGracePeriodSeconds優雅退出時間(例如 40 分鐘),系統也會優先遵循 30 分鐘的逾時時間。 超過 30 分鐘後,即使 Pod 尚未完成優雅退出,系統會強制中斷並判定排水失敗,停止後續的節點移除操作,需要手動重試。
如業務Pod對優雅退出時間要求較高,建議先通過
kubectl drain <nodeName> [options]手動排水再驅逐節點。待節點上沒有業務Pod運行後,取消勾選自動排空節點(drain),再對節點進行移除操作。Pod Disruption Budget(PDB)配置:節點排水操作會在遵循PDB的前提下將節點上的Pod驅逐至其他可用節點。請檢查並調整或刪除PDB規則,避免排水異常。
同時釋放 ECS
節點移除後同時釋放ECS執行個體及其資料盤。請提前做好資料備份。 若不選擇,對應的ECS執行個體仍會繼續計費,其生命週期由您自行管理。
僅釋放隨用隨付類型的ECS執行個體及其資料盤,不被釋放的ECS執行個體會繼續收費。
訂用帳戶的ECS執行個體會在計費周期到期後自動釋放。您可以在ECS執行個體到期前申請退款,提前釋放執行個體,或將訂用帳戶執行個體轉隨用隨付執行個體後釋放。
在開啟了智能託管模式的節點池中,系統負責節點生命週期的自動化管理,會根據工作負載需求自動增減節點,並在節點移除時徹底清理其底層ECS資源。
操作步驟
從節點池中移除
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊目標節點池名稱,在節點管理頁面移除節點。
單個節點移除:定位目標節點,在該節點右側操作列,選擇。

批量節點移除:選中目標節點,單擊頁面下方的大量移除。

選擇是否需要自動排空節點(drain)和同時釋放 ECS,仔細閱讀頁面注意事項後按照頁面提示完成操作。
關於自動排空節點(drain)和同時釋放 ECS的注意事項,請參見上文的功能說明。

從叢集中移除
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在節點頁面移除節點。
單個節點移除:定位目標節點,在該節點右側操作列,選擇。

批量節點移除:選中目標節點,單擊頁面下方的大量移除。

選擇是否需要自動排空節點(drain)和同時釋放 ECS,仔細閱讀頁面注意事項後按照頁面提示完成操作。
關於自動排空節點(drain)和同時釋放 ECS的注意事項,請參見上文的功能說明。

常見問題
節點移除失敗如何處理?
節點可能會因為優雅退出時間、PDB配置等原因移除失敗,請參見前文的功能說明。此時,建議先通過kubectl drain <nodeName> [options]手動排水再驅逐節點。待節點上沒有業務Pod運行後,再對節點進行移除操作。
<nodeName>:節點的名稱。例如cn-hangzhou.10.126.XX.XX。[options]:可選配置參數。例如,可配置為--force --ignore-daemonsets --delete-local-data。更多方式,可執行命令kubectl drain --help查看。
相關文檔
您也可以通過OpenAPI移除節點,請參見RemoveNodePoolNodes - 移除節點池節點、DeleteClusterNodes - 移除叢集節點。
如需將游離節點納入節點池進行管理,請參見遷移游離節點至節點池。
ACK支援通過調整節點池的期望節點數手動實現節點池擴縮容,將節點數目維持在期望數量,請參見手動擴縮容節點池。
如果購買ECS執行個體後需將該雲端服務器添加到ACK叢集中作為Worker節點,或移除Worker節點後需將節點執行個體重新加入節點池,您可以在Container Service管理主控台自動添加或手動添加節點,請參見添加已有節點。
如需重設ECS執行個體或清除系統硬碟的資料,請參見重新初始化系統硬碟(重設作業系統)。