全部產品
Search
文件中心

Container Service for Kubernetes:啟用節點即時彈性

更新時間:Jan 09, 2026

如果您的叢集規模較大或對資源交付速度有更高要求,節點自動調整可能無法滿足您的需求。此時,推薦您使用節點即時彈性功能,以提高資源彈性效率,並降低營運成本。

閱讀前提示

為了讓您更好地使用節點即時彈性功能,建議您在閱讀本文檔前,已閱讀節點伸縮並瞭解以下內容:

  • 節點即時彈性的工作原理

  • 節點即時彈性的功能優勢,適合在哪些業務情境下使用

  • 使用節點即時彈性前需要瞭解的注意事項

  • 縮容時,訂用帳戶執行個體會被移除但不會被釋放。為避免額外成本,啟用本功能時請使用隨用隨付執行個體。

使用說明

  • 僅支援1.24版本及以上的ACK託管叢集ACK專有叢集。如需升級叢集,請參見手動升級叢集

  • 已開通Auto Scaling服務

  • 請確保開啟節點即時彈性的節點池中所配置的交換器有充足的可用IP,以避免節點建立失敗。您可以調用DescribeVSwitchAttributes介面查看當前交換器的可用IP數量。

    如當前可用IP數量不足,請參見使用VPC附加網段擴充叢集的可用網段處理。

  • 如叢集節點池已開啟自動Auto Scaling且節點池的伸縮模式非極速模式節點即時彈性可相容原彈性節點池的語義與行為,並支援所有類型的應用無縫開啟與使用。但針對伸縮模式極速模式的節點池,節點即時彈性無法相容。

  • 節點即時彈性組件為v0.5.3 以下版本時,需手動刪除離線節點,詳情請參見常見問題

本功能涉及以下流程:

  1. 步驟一:開啟節點即時彈性功能:先基於叢集維度開啟節點自動調整功能後,節點池設定的自動擴縮容策略才會生效。

  2. 步驟二:配置開啟彈性的節點池節點自動調整功能僅對設定了自動擴縮容的節點池生效,因此,還需要將指定節點池的擴縮容模式配置為自動模式。

步驟一:開啟節點即時彈性功能

使用節點即時彈性功能前,您需要在節點池頁面開啟並配置叢集自動Auto Scaling,使節點具備伸縮能力。

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

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

  3. 節點池頁面,單擊節點伸縮後方的去配置

  4. 首次使用叢集自動Auto Scaling功能時,按照頁面提示,開通ESS服務並完成授權(如已開通並授權,請跳過)。

    • ACK託管叢集:完成AliyunCSManagedAutoScalerRole角色授權

    • ACK專有叢集:完成KubernetesWorkerRole角色授權和AliyunCSManagedAutoScalerRolePolicy系統策略的授權,入口如下所示。

      image

  5. 節點伸縮配置頁面,選擇節點伸縮方案即時彈性,配置伸縮配置項,然後單擊確定

    實施Auto Scaling時,彈性組件會基於調度情況自動觸發擴容。

    節點伸縮方案選擇後支援切換。如需切換,您可以在此處變更為節點自動調整,仔細閱讀頁面提示並按照頁面指引完成操作。本功能白名單開放中,如需使用,請提交工單

    配置項

    說明

    縮容閾值

    啟用節點自動調整的節點池中,單個節點的請求資源(Request)與單個節點資源容量的比值。

    僅當該比值低於配置的閾值時,即節點的CPU和記憶體資源使用率均低於縮容閾值時,節點才有可能被縮容。

    GPU 縮容閾值

    GPU執行個體的縮容閾值。

    僅當該比值低於配置的閾值時,即節點的CPU、記憶體和GPU資源使用率均低於GPU 縮容閾值時,GPU節點才有可能被縮容。

    縮容觸發時延

    從檢測到有縮容需求到實際執行縮容操作之間的時間間隔。單位:分鐘。預設值:10分鐘。

    重要

    僅當滿足縮容閾值配置,且達到縮容觸發時延後,彈性組件才有可能執行節點縮容。

    查看進階配置的配置項說明

    配置項

    說明

    Pod 終止逾時時間

    縮容節點時等待節點上Pod終止的最長時間。單位:秒。

    Pod 最小副本數

    為由 ReplicationController 或 ReplicaSet 管理的應用設定一個縮容保護閾值。當這類應用的當前實際副本數小於此值時,運行其 Pod 的節點將不會被縮容。

    參數僅對由 ReplicationController 或 ReplicaSet 管理的 Pod 生效,對於 StatefulSetDaemonSet 等其他控制器管理的 Pod 不生效。

    開啟 DaemonSet Pod 排水

    開啟DaemonSet Pod排水後,節點縮容時會驅逐節點上的DaemonSet Pod。

    跳過有 kube-system 命名空間下 Pod 所在節點

    開啟後,當叢集執行節點自動縮容操作時,可以忽略運行在kube-system命名空間下的Pod所在的節點,確保這些節點不受縮容的影響。

    說明

    此功能對DaemonSet Pod和Mirror Pod不生效。

步驟二:配置開啟彈性的節點池

節點即時彈性的擴縮對象為開啟自動調整節點池的節點。因此,配置節點即時彈性後,您還需要配置至少一個開啟了彈性的節點池。

  • 建立一個開啟自動Auto Scaling的節點池。具體操作,請參見建立節點池

  • 配置已有節點池,為其開啟自動Auto Scaling功能。具體操作,請參見編輯節點池

推薦您擴大節點池執行個體規格的可選範圍,例如為節點池配置多個可選的執行個體規格、使用指定執行個體屬性配置,或為節點池配置多個可用性區域,以進一步保障執行個體規格庫存充足,節點伸縮活動執行成功。

(可選)步驟三:結果驗證

完成如上操作後,您便可以使用節點即時彈性功能。此時,節點池將顯示已開啟自動調整且叢集已自動安裝節點即時彈性組件。

節點池已開啟自動調整

節點池頁面,節點池列表將顯示已開啟自動調整的節點池。

image

已安裝節點即時彈性組件

  1. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理

  2. 組件管理頁面,定位ACK GOATScaler組件,顯示已安裝

節點即時彈性關鍵事件介紹

節點即時彈性涉及到以下關鍵事件(Event),以便查看節點即時彈性發生時內部的狀態資訊。

事件名稱

事件對象

說明

ProvisionNode

pod

節點即時彈性觸發節點擴容成功。

ProvisionNodeFailed

pod

節點即時彈性觸發節點擴容失敗。

ResetPod

pod

節點即時彈性將滿足條件的、已觸發過擴容的、但仍不可調度的Pod重新納入可觸發擴容的範圍。

InstanceInventoryStatusChanged

ACKNodePool

某個可用性區域的某個執行個體規格供給狀態發生變化。格式為{執行個體規格}/{可用性區域} inventory status changed from {舊庫存狀態} to {新庫存狀態}

詳細資料,請參見查看節點即時彈性健康度

節點即時彈性標識介紹

節點即時彈性維護了以下標識。請勿手動操作,以免引發異常。

Node Label

node label

說明

goatscaler.io/managed:true

用於標識被節點即時彈性管理的節點。針對帶此標籤的節點,節點即時彈性會周期性檢查是否滿足縮容條件。

k8s.aliyun.com: true

用於標識被節點即時彈性管理的節點的標識,針對帶此標籤的節點,節點即時彈性會周期性檢查是否滿足縮容條件。

goatscaler.io/provision-task-id:{task-id}

用於標識節點即時彈性擴容節點的任務Task ID,以便您追蹤建立節點的觸發源。

Node Taint

Node Taint

說明

goatscaler.io/node-terminating

打上此汙點的節點會被節點即時彈性執行縮容。

Pod Annotation

Pod Annotation

說明

goatscaler.io/provision-task-id

用於標識節點即時彈性為此Pod擴容後節點的Task ID。針對有此Annotation的Pod,節點即時彈性會等待節點啟動,暫不重複擴容。

goatscaler.io/reschedule-deadline

用於標識節點即時彈性等待Pod未被調度到節點上的時間。超出此時間後,若Pod仍然不可調度,節點即時彈性會將Pod重新納入可觸發擴容的範圍。

常見問題

分類

二級分類

跳轉連結

節點即時彈性的擴縮容行為

已知限制

擴容行為相關

縮容行為相關

自訂的擴縮容行為

通過Pod控制擴縮容行為

如何通過Pod控制節點即時彈性的節點縮容?

通過節點控制擴縮容行為

節點即時彈性組件相關

相關操作

查看節點即時彈性健康度

節點即時彈性功能支援根據ECS執行個體的庫存情況來動態選擇規格和可用性區域。如需感知並監控執行個體規格庫存健康情況,擷取節點池的執行個體配置最佳化建議,從而進一步保障節點伸縮活動執行成功,您可以查看節點池庫存健康度的ConfigMap,評估當前節點池庫存是否健康,提前對執行個體規格配置進行分析和調整。

詳細資料,請參見查看節點即時彈性健康度

開啟節點即時彈性日誌收集

如果您的叢集為ACK託管叢集,您可以在控制面組件日誌頁面收集節點即時彈性的組件日誌。

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 日誌中心

  3. 單擊控制面組件日誌頁簽,然後在頁面右上方單擊更新群組件,按照頁面提示勾選節點即時彈性組件。

    image

    等待組件的更新。更新完成後,可在組件下拉式清單中勾選節點即時彈性組件,查看其日誌。

    image

升級節點即時彈性組件

請及時升級節點即時彈性組件,以便享用最新的功能改進和特性最佳化。具體操作,請參見管理組件

使用私人池供給資源時跳過庫存檢查

當使用了私人池保障資產庫存時,需開啟 SkipInventoryCheck,讓節點即時彈性組件在擴容時跳過對非私人池資源的庫存檢查步驟,直接使用預留的私人池資源。

  1. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理

  2. 核心組件地區,定位ACK GOATScaler組件,單擊組件卡片的配置

    SkipInventoryCheck僅支援v0.3.0-582e405-aliyun及以上的組件版本。不滿足時,請提前在組件卡片地區完成組件升級。
  3. 按照頁面提示,配置SkipInventoryCheck為true。