如果您的叢集規模較大或對資源交付速度有更高要求,節點自動調整可能無法滿足您的需求。此時,推薦您使用節點即時彈性功能,以提高資源彈性效率,並降低營運成本。
閱讀前提示
為了讓您更好地使用節點即時彈性功能,建議您在閱讀本文檔前,已閱讀節點伸縮並瞭解以下內容:
節點即時彈性的工作原理
節點即時彈性的功能優勢,適合在哪些業務情境下使用
使用節點即時彈性前需要瞭解的注意事項
縮容時,訂用帳戶執行個體會被移除但不會被釋放。為避免額外成本,啟用本功能時請使用隨用隨付執行個體。
使用說明
僅支援1.24版本及以上的ACK託管叢集、ACK專有叢集。如需升級叢集,請參見手動升級叢集。
請確保開啟節點即時彈性的節點池中所配置的交換器有充足的可用IP,以避免節點建立失敗。您可以調用DescribeVSwitchAttributes介面查看當前交換器的可用IP數量。
如當前可用IP數量不足,請參見使用VPC附加網段擴充叢集的可用網段處理。
如叢集節點池已開啟自動Auto Scaling且節點池的伸縮模式為非極速模式,節點即時彈性可相容原彈性節點池的語義與行為,並支援所有類型的應用無縫開啟與使用。但針對伸縮模式為極速模式的節點池,節點即時彈性無法相容。
節點即時彈性組件為v0.5.3 以下版本時,需手動刪除離線節點,詳情請參見常見問題。
本功能涉及以下流程:
步驟一:開啟節點即時彈性功能:先基於叢集維度開啟節點自動調整功能後,節點池設定的自動擴縮容策略才會生效。
步驟二:配置開啟彈性的節點池:節點自動調整功能僅對設定了自動擴縮容的節點池生效,因此,還需要將指定節點池的擴縮容模式配置為自動模式。
步驟一:開啟節點即時彈性功能
使用節點即時彈性功能前,您需要在節點池頁面開啟並配置叢集自動Auto Scaling,使節點具備伸縮能力。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在節點池頁面,單擊節點伸縮後方的去配置。
首次使用叢集自動Auto Scaling功能時,按照頁面提示,開通ESS服務並完成授權(如已開通並授權,請跳過)。
ACK託管叢集:完成AliyunCSManagedAutoScalerRole角色授權。
ACK專有叢集:完成KubernetesWorkerRole角色授權和AliyunCSManagedAutoScalerRolePolicy系統策略的授權,入口如下所示。

在節點伸縮配置頁面,選擇節點伸縮方案為即時彈性,配置伸縮配置項,然後單擊確定。
實施Auto Scaling時,彈性組件會基於調度情況自動觸發擴容。
節點伸縮方案選擇後支援切換。如需切換,您可以在此處變更為節點自動調整,仔細閱讀頁面提示並按照頁面指引完成操作。本功能白名單開放中,如需使用,請提交工單。
配置項
說明
縮容閾值
啟用節點自動調整的節點池中,單個節點的請求資源(Request)與單個節點資源容量的比值。
僅當該比值低於配置的閾值時,即節點的CPU和記憶體資源使用率均低於縮容閾值時,節點才有可能被縮容。
GPU 縮容閾值
GPU執行個體的縮容閾值。
僅當該比值低於配置的閾值時,即節點的CPU、記憶體和GPU資源使用率均低於GPU 縮容閾值時,GPU節點才有可能被縮容。
縮容觸發時延
從檢測到有縮容需求到實際執行縮容操作之間的時間間隔。單位:分鐘。預設值:10分鐘。
重要僅當滿足縮容閾值配置,且達到縮容觸發時延後,彈性組件才有可能執行節點縮容。
步驟二:配置開啟彈性的節點池
節點即時彈性的擴縮對象為開啟自動調整節點池的節點。因此,配置節點即時彈性後,您還需要配置至少一個開啟了彈性的節點池。
推薦您擴大節點池執行個體規格的可選範圍,例如為節點池配置多個可選的執行個體規格、使用指定執行個體屬性配置,或為節點池配置多個可用性區域,以進一步保障執行個體規格庫存充足,節點伸縮活動執行成功。
(可選)步驟三:結果驗證
完成如上操作後,您便可以使用節點即時彈性功能。此時,節點池將顯示已開啟自動調整且叢集已自動安裝節點即時彈性組件。
節點池已開啟自動調整
在節點池頁面,節點池列表將顯示已開啟自動調整的節點池。

已安裝節點即時彈性組件
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
在組件管理頁面,定位ACK GOATScaler組件,顯示已安裝。
節點即時彈性關鍵事件介紹
節點即時彈性涉及到以下關鍵事件(Event),以便查看節點即時彈性發生時內部的狀態資訊。
事件名稱 | 事件對象 | 說明 |
ProvisionNode | pod | 節點即時彈性觸發節點擴容成功。 |
ProvisionNodeFailed | pod | 節點即時彈性觸發節點擴容失敗。 |
ResetPod | pod | 節點即時彈性將滿足條件的、已觸發過擴容的、但仍不可調度的Pod重新納入可觸發擴容的範圍。 |
InstanceInventoryStatusChanged | ACKNodePool | 某個可用性區域的某個執行個體規格供給狀態發生變化。格式為 詳細資料,請參見查看節點即時彈性健康度。 |
節點即時彈性標識介紹
節點即時彈性維護了以下標識。請勿手動操作,以免引發異常。
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重新納入可觸發擴容的範圍。 |
常見問題
分類 | 二級分類 | 跳轉連結 |
節點即時彈性的擴縮容行為 | ||
自訂的擴縮容行為 | ||
相關操作
查看節點即時彈性健康度
節點即時彈性功能支援根據ECS執行個體的庫存情況來動態選擇規格和可用性區域。如需感知並監控執行個體規格庫存健康情況,擷取節點池的執行個體配置最佳化建議,從而進一步保障節點伸縮活動執行成功,您可以查看節點池庫存健康度的ConfigMap,評估當前節點池庫存是否健康,提前對執行個體規格配置進行分析和調整。
詳細資料,請參見查看節點即時彈性健康度。
開啟節點即時彈性日誌收集
如果您的叢集為ACK託管叢集,您可以在控制面組件日誌頁面收集節點即時彈性的組件日誌。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊控制面組件日誌頁簽,然後在頁面右上方單擊更新群組件,按照頁面提示勾選節點即時彈性組件。

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

升級節點即時彈性組件
請及時升級節點即時彈性組件,以便享用最新的功能改進和特性最佳化。具體操作,請參見管理組件。
使用私人池供給資源時跳過庫存檢查
當使用了私人池保障資產庫存時,需開啟 SkipInventoryCheck,讓節點即時彈性組件在擴容時跳過對非私人池資源的庫存檢查步驟,直接使用預留的私人池資源。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
在核心組件地區,定位ACK GOATScaler組件,單擊組件卡片的配置。
SkipInventoryCheck僅支援v0.3.0-582e405-aliyun及以上的組件版本。不滿足時,請提前在組件卡片地區完成組件升級。
按照頁面提示,配置SkipInventoryCheck為true。