當您不再需要某Worker節點繼續工作時,可以在Container Service管理主控台將節點從節點池或叢集中移除。請參見本文的注意事項和功能說明,在業務低峰期執行標準化操作。
移除節點操作僅限於雲上節點池內的節點,不包括本機資料中心自建Kubernetes叢集的工作節點。
前提條件
已建立ACK One註冊叢集,並已將本機資料中心自建Kubernetes叢集接入ACK One註冊叢集。具體操作,請參見建立ACK One註冊叢集。
已配置節點池自訂指令碼並建立節點池,具體操作,請參見建立節點池。
注意事項
移除節點時,請在Container Service管理主控台執行標準化操作。請勿使用
kubectl delete node方式手動移除節點。請勿直接在ECS或者ESS控制台(或通過相關API)主動釋放節點、移除執行個體,或因訂用帳戶執行個體到期而被動釋放節點。這些情況下,節點會直接停機,自動從Container Service管理主控台中移除。
如果節點池設定了期望節點數,為了將節點個數始終維持在期望節點數,節點池會根據相應配置自動擴容其他執行個體。
移除節點涉及Pod的遷移,可能會影響業務,請在業務低峰期操作。操作過程中可能存在非預期風險,請提前做好相關的資料備份。
移除節點時,ACK會執行排水操作,請確保叢集其他節點的資源充足,以避免業務Pod無法調度。
需檢查待移除節點上的Pod的節點親和性規則和調度策略,確保Pod不會因為節點移除而無法調度到其他節點。
功能說明
移除節點是指將某個或某些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執行個體到期前申請退款,提前釋放執行個體,或將訂用帳戶執行個體轉隨用隨付執行個體後釋放。
操作步驟
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊目標節點池名稱,在節點管理頁面選中目標節點,單擊頁面下方的大量移除。
選擇是否需要自動排空節點(drain)和同時釋放 ECS,仔細閱讀頁面注意事項後按照頁面提示完成操作。