全部產品
Search
文件中心

Container Service for Kubernetes:移除節點

更新時間:Jun 19, 2024

當您不再需要該節點繼續工作時,請您在Container Service管理主控台的節點池頁面進行移除節點的標準化操作,以免帶來不符合預期的效果。移除節點會涉及Pod遷移,可能會影響業務,請在業務低峰期操作。

前提條件

工作原理

節點池移除節點是指將叢集中的節點移出叢集,ACK會自動調整期望節點數,調整後期望節點數為原期望節點數減去移除節點數。修改期望節點數,請參見修改期望節點數

您可以通過勾選:

  • 同時釋放ECS:節點移出叢集後釋放執行個體。

    重要

    訂用帳戶執行個體不會被釋放。

  • 自動排空節點:節點移出叢集前對節點進行排水。

    說明

    移除節點任務的逾時時間為30min。如果您的Pod中配置了較大的terminationGracePeriodSeconds(優雅退出時間),比如40min。因為逾時時間的優先順序高於優雅退出時間,所以優先生效的是30min,而不是40min。排水任務在等待30min後會中斷流程,並判定排水失敗,需要自行重試。

    排水失敗後移除節點任務將會立即暫停並退出,不會執行後續的移除步驟。因此如果您的業務Pod對優雅退出時間要求較高,您可以先通過執行命令kubectl drain [node-name] [options]手動排水再驅逐節點,待節點上沒有業務Pod運行後,取消勾選自動排空節點選項,對節點進行移除操作。

節點池移除節點將依次執行以下步驟:

  1. 如果勾選了自動排空節點,則會優先對節點進行排水。如果排水失敗,移除節點任務將立即暫停並退出。因此請您在做移除節點操作前,確保其他節點資源充足,避免業務無法調度的問題。您也可以通過執行kubectl drain [node-name] [options]命令,在移除節點前自行對節點進行排水,並在移除節點時不勾選自動排空節點。

  2. 將節點從APIServer移除。

  3. 將節點從ESS伸縮組移除並釋放(是否會釋放取決於是否勾選同時釋放ECS)。如果節點是訂用帳戶的節點,即使勾選了同時釋放ECS,也不會釋放。需要您在移除節點完成後通過ECS控制台或介面手動處理。如果節點是隨用隨付節點,且您在移除節點時,勾選了同時釋放ECS,則會立即釋放ECS節點,請您提前做好資料備份。

使用說明

  • 移除節點會涉及Pod遷移,可能會影響業務,請在業務低峰期操作。

  • 操作過程中可能存在非預期風險,請提前做好相關的資料備份。

  • 操作過程中,後台會將當前節點設定為不可調度狀態。

  • 移除節點僅移除Worker節點,不會移除Master節點。

  • 移除節點請通過控制台進行操作,如果使用kubectl delete node方式手動移除節點,則:

    • 移除後的節點無法再添加到其他叢集上。

    • 刪除叢集時,該節點所在的ECS執行個體會被釋放。

  • 如果您沒有通過Container Service控制台,而是直接在ECS或者ESS控制台(或相關API)主動釋放節點、移除執行個體,或者因訂用帳戶到期而被動釋放節點,那麼節點或執行個體就會直接停機,自動從Container Service控制台中移出。如果節點池設定了期望節點數,那麼節點池為了能夠將節點個數維持在期望節點數,會根據相應節點池配置自動擴容其他執行個體至節點池,以達到期望節點數。

操作步驟

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

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

  3. 節點池頁面,單擊目標節點池名稱。在節點管理頁簽中,選中目標節點,並單擊移除節點

  4. 可選:移除節點對話方塊中,可選中同時釋放ECS自動排空節點(drain)

    • 同時釋放ECS

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

      • 對於預付費ECS執行個體,計費周期到期後,ECS執行個體會自動釋放。

      • 若不選擇同時釋放ECS,該節點所在的ECS執行個體會繼續計費。

    • 自動排空節點(drain):將待移除節點上的Pod轉移到其他節點。請確保叢集其他節點的資源充足。

      您還可以通過執行命令kubectl drain node-name [options]的方式將待移除節點上的Pod轉移到其他節點。

      說明
      • node-name格式為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查看。

  5. 選中我已瞭解上述說明,確認移除節點,單擊確定

    說明

    如果提示節點移除失敗,取消勾選同時釋放ECS自動排空節點(drain)後重新移除。

常見問題

為什麼節點池的節點管理頁簽中沒有目標節點,但目標節點屬於叢集?

您可以通過以下方式移除節點。

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

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

  3. 節點頁面,選中所有要移除的節點,單擊大量移除

  4. 在彈出頁面確認相關資訊,單擊確定

相關文檔

  • Container ServiceACK通過調整節點池的期望節點數實現節點池擴縮容,將節點數目維持在期望數量。擴容節點池保證節點數量足夠支撐業務運行,縮容節省成本。詳細資料,請參見擴縮容節點池

  • 如果購買ECS執行個體後需將該雲端服務器添加到ACK叢集中作為Worker節點,或移除Worker節點後需將節點執行個體重新加入節點池,您可以在Container Service管理主控台自動添加或手動添加節點。詳細資料,請參見添加已有節點

  • 如何在不影響資料盤的情況下進行節點池升級,請參見節點池升級