全部產品
Search
文件中心

Container Service for Kubernetes:將節點從叢集或節點池中移除

更新時間:Jan 25, 2025

當您不再需要某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不會因為節點移除而無法調度到其他節點。

功能說明

移除節點是指將某個或某些Worker節點從節點池或叢集中移除。如果您的節點池開啟了期望節點數(節點池應該維持的總節點數量),節點池會自動調整該數值。

如移除後仍需將執行個體添加到叢集中,請參見自動或手動添加節點

移除前,支援按需選擇是否自動排空節點(將節點上的Pod安全驅逐到其他節點)以及是否同時釋放ECS(釋放ECS執行個體及其資料盤)。

自動排空節點(drain)

節點移除前,對節點進行排水,將節點上的Pod安全地驅逐到其他節點,避免服務中斷。執行操作前,請確保叢集其他節點的資源充足,以避免業務Pod無法調度。同時關注以下注意事項。

  • 優雅退出時間配置:移除節點時,系統預設的 Pod 優雅退出逾時時間為 30 分鐘。 即使 Pod 自身配置了更長的terminationGracePeriodSeconds優雅退出時間(例如 40 分鐘),系統也會優先遵循 30 分鐘的逾時時間。 超過 30 分鐘後,即使 Pod 尚未完成優雅退出,系統會強制中斷並判定排水失敗,停止後續的節點移除操作,需要手動重試。

    如業務Pod對優雅退出時間要求較高,建議先通過kubectl drain <nodeName> [options]手動排水再驅逐節點。待節點上沒有業務Pod運行後,取消勾選自動排空節點(drain),再對節點進行移除操作。

    展開查看命令說明

    • <nodeName>格式為<your-region-name>.<node-id>

      <your-region-name>:您叢集所在的地區名稱;<node-id>:待移除節點所在的ECS執行個體ID。例如,cn-hangzhou.i-i-bp1asavedmte377c3**** 。

    • options:可選配置參數。例如,可配置為--force --ignore-daemonsets --delete-local-data。更多方式,可執行命令kubectl drain --help查看。

  • Pod Disruption Budget(PDB)配置:節點排水操作會在遵循PDB的前提下將節點上的Pod驅逐至其他可用節點。請檢查並調整或刪除PDB規則,避免排水異常。

同時釋放 ECS

節點移除後同時釋放ECS執行個體及其資料盤。請提前做好資料備份。 若不選擇,對應的ECS執行個體仍會繼續計費。

  • 僅釋放隨用隨付類型的ECS執行個體及其資料盤,不被釋放的ECS執行個體會繼續收費。

  • 訂用帳戶的ECS執行個體會在計費周期到期後自動釋放。您可以在ECS執行個體到期前申請退款,提前釋放執行個體,或將訂用帳戶執行個體轉隨用隨付執行個體後釋放。

操作步驟

從節點池中移除

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點池

  3. 單擊目標節點池名稱,在節點管理頁面選中目標節點,單擊頁面下方的大量移除

  4. 選擇是否需要自動排空節點(drain)同時釋放 ECS,仔細閱讀頁面注意事項後按照頁面提示完成操作。

    關於自動排空節點(drain)同時釋放 ECS的注意事項,請參見上文的功能說明

從叢集中移除

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇節點管理 > 節點

  3. 選中目標節點,單擊頁面下方的大量移除

  4. 選擇是否需要自動排空節點(drain)同時釋放 ECS,仔細閱讀頁面注意事項後按照頁面提示完成操作。

    關於自動排空節點(drain)同時釋放 ECS的注意事項,請參見上文的功能說明

常見問題

節點移除失敗如何處理?

節點可能會因為優雅退出時間、PDB配置等原因移除失敗,請參見前文的功能說明。此時,建議先通過kubectl drain <nodeName> [options]手動排水再驅逐節點。待節點上沒有業務Pod運行後,再對節點進行移除操作。

  • <nodeName>格式為<your-region-name>.<node-id>

    <your-region-name>:您叢集所在的地區名稱;<node-id>:待移除節點所在的ECS執行個體ID。例如,cn-hangzhou.i-i-bp1asavedmte377c3**** 。

  • options:可選配置參數。例如,可配置為--force --ignore-daemonsets --delete-local-data。更多方式,可執行命令kubectl drain --help查看。

相關文檔