代管執行個體群組 (MIG) 提供自動調度資源功能,可根據負載的增減,自動新增或刪除 MIG 中的虛擬機器 (VM) 執行個體。自動調度資源功能可協助應用程式妥善處理流量增加的問題,並在資源需求降低時節省成本。您只需要定義自動調度資源政策,自動配置器就會根據測得的負載量和您設定的選項,自動調整資源配置。
自動調度資源功能會在負載增加時,在 MIG 中新增更多 VM (擴充規模),並在 VM 需求降低時刪除 VM (縮減規模)。
事前準備
自動配置器會使用 Compute Engine 服務代理程式,在群組中新增及移除執行個體。 Google Cloud 在啟用 Compute Engine API 時,會自動建立這個服務帳戶,以及將其 IAM 政策繫結至 Compute Engine 服務代理程式角色。
如果專案缺少這個帳戶 (例如您已將其移除),可以手動新增:
主控台
前往 Google Cloud 控制台的「IAM」IAM(身分與存取權管理) 頁面。
點選「授予存取權」。
在「New principals」(新增主體) 欄位中輸入
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
。選取「Compute Engine 服務代理人」角色。
按一下 [儲存]。
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
基礎知識
自動調度資源功能牽涉到下列基本概念和服務。
代管執行個體群組
自動調度資源是代管執行個體群組 (MIG)的功能。代管執行個體群組是透過常用執行個體範本建立的虛擬機器 (VM) 執行個體集合。自動配置器會根據群組的自動調度資源政策,在代管執行個體群組中新增或刪除執行個體。雖然 Compute Engine 有代管和非代管的執行個體群組,但只有代管的執行個體群組可以與自動配置器搭配使用。
如要瞭解代管執行個體群組與非代管執行個體群組之間的差異,請參閱執行個體群組一文。
如要瞭解如何建立代管執行個體群組,請參閱「建立 MIG」。
自動調度資源政策
為群組定義自動調度資源政策時,您必須指定一或多個信號,供自動配置器用來調度群組資源。在政策中設定多個信號時,自動配置器會為每個信號計算建議的 VM 數量,並將群組的建議大小設為最大值。
自動調度資源政策必須至少包含一個調節信號。在 MIG 中啟用自動調度資源功能時,自動配置器會預設新增 CPU 使用率信號。您可以編輯這個預設信號,或是在政策中移除及新增其他信號。
以下各節將概述以目標使用率指標為依據的信號,以及以時間表為依據的信號。
目標使用率指標
您可以根據下列一或多個反映執行個體群組負載的指標,自動調度資源:
- 平均 CPU 使用率
- HTTP 負載平衡服務規模
- Cloud Monitoring 指標
自動配置器會根據所選使用率指標持續收集使用率資訊,並將實際使用率與您想要的目標使用率進行比較,然後根據這項資訊判斷群組是否需要移除執行個體 (縮減) 或新增執行個體 (擴增)。
目標使用率是指您想讓虛擬機器 (VM) 執行個體維持的等級。舉例來說,如果您要根據 CPU 使用率調度資源,可以將目標使用率設為 75%,這樣自動配置器就會將指定執行個體群組的 CPU 使用率維持在 75% 或 75% 附近。每項指標的使用率解讀方式會因自動調度資源政策而有所不同。
如要進一步瞭解如何根據目標使用率指標進行調度,請參閱下列頁面:
排程
您可以使用以時間表為準的自動調度資源功能,為預期負載分配容量。每個執行個體群組最多可設定 128 個調度時間表。針對每個調整大小時間表,請指定下列項目:
- 容量:所需 VM 執行個體的最低數量
- 排程:開始時間、持續時間和重複週期 (例如一次、每日、每週或每月)
每個調整大小排程都會在開始時間起,並在設定的時間長度內處於啟用狀態。在此期間,自動配置器會將群組縮放至至少有排程所定義的執行個體數量。
詳情請參閱「根據時間表執行資源調度」一文。
初始化期間
初始化期間 (舊稱等待期) 是指應用程式在 VM 執行個體上初始化所需的時間。應用程式在執行個體上初始化時,執行個體的用量資料可能不會反映正常情況。因此,自動配置器會以以下方式使用初始化期間進行資源調度決策:
- 在決定是否要調降資源時,自動配置器會考量所有執行個體的使用率資料,甚至是仍處於初始化期間的執行個體。如果所有執行個體的平均使用率低於目標使用率,自動配置器會建議移除執行個體。
- 針對向外擴充的決定,自動配置器會忽略仍處於初始化期間的執行個體的用量資料。
- 如果您啟用預測模式,初始化期間會通知預測式自動配置器,在預期負載出現前進一步擴充,以便在負載到達時初始化應用程式。舉例來說,如果您將初始化期間設為 300 秒,預測式自動調度資源功能就會在預測負載出現前 5 分鐘建立 VM。
根據預設,初始化週期為 60 秒。實際的初始化時間會因多種因素而異,建議您測試應用程式初始化所需的時間。如要執行這項操作,請建立執行個體,並在執行個體變成 RUNNING
到應用程式就緒之間,計時測量啟動程序。
如果您設定的初始化期間值遠遠超過執行個體初始化所需的時間,自動配置器可能會忽略合法的使用率資料,並低估群組所需的大小,導致向外擴充延遲。
穩定期
CPU 使用率等自動調度資源信號不太穩定,可能會快速變動。隨著負載上升和下降,自動配置器需要穩定信號,以免持續刪除及建立 VM。自動配置器會維持足夠的 VM 容量,以便在穩定期期間提供所觀察到的峰值負載,進而穩定信號。
穩定期等於 10 分鐘,或等於您設定的初始化期間 (以較長者為準)。當自動配置器必須刪除 VM 時,穩定期只會用於決定是否要調高資源。
負載降低時,自動調度器不會立即刪除 VM。自動調度資源功能會在穩定期內持續監控所需的容量,並只在有足夠容量可滿足峰值負載時刪除 VM。這可能看起來像是縮放時發生延遲,但實際上是自動調度資源的內建功能。
如果應用程式在新的 VM 上初始化所需的時間超過 10 分鐘,自動配置器會使用初始化期間,而非預設的 10 分鐘穩定時間,等待 VM 可供刪除。這可確保自動配置器決定刪除 VM 時,會考量恢復服務容量所需的時間。
負載增加時,自動配置器不會使用穩定期,而是立即建立足以滿足需求的 VM 數量。
自動調度資源模式
如需在不受自動配置器作業干擾的情況下加以調查或設定群組,可暫時關閉或限制自動調度資源活動。即使關閉或限制自動配置器,系統也會保留自動配置器的設定,且會在再次開啟自動配置器或解除限制時,繼續進行所有自動調度資源活動。
預測式自動調度資源
如果您啟用預測式自動調度資源功能,以便針對可用性最佳化 MIG,自動配置器會根據歷來資料預測未來的負載,並在預測負載前調度 MIG,以便在負載到達時,有新的執行個體可供使用。
工作負載符合下列條件時,預測式自動調度資源功能的效果最佳:
- 應用程式初始化需要很長的時間,例如如果您設定的初始化期間超過 2 分鐘。
- 工作負載會隨著每日或每週週期而變化。
詳情請參閱「根據預測值調整資源調度」。
向內縮減控制項
如果您的工作負載需要數分鐘才能啟動 (例如因安裝作業耗時過長),您可以設定縮減資源配置的控制功能,降低資源配置驟降事件引發的回應延遲風險。具體來說,如果您預期負載會在下降後很快就出現尖峰,可以限制縮放率,以免自動調度資源功能將 MIG 的大小縮減至工作負載無法容許的 VM 執行個體數量。
如果應用程式啟動速度足夠快,可在外推時偵測到負載尖峰,就不需要設定縮減資源配置的控制項。
如要設定縮減控制項,請在自動調度資源政策中設定下列屬性。
允許的最大縮減幅度。在指定的後續時間範圍內,工作負載可承受的 VM 執行個體數量 (從其最高峰值開始)。使用這個參數限制群組可縮放的程度,以便在更多執行個體開始提供服務前,仍能提供可能的負載尖峰服務。設定的最大允許縮減值越小,群組縮減所需的時間就會越長。
尾隨時間視窗。自動配置器監控工作負載所需的峰值大小時,會使用的歷史資料。自動配置器不會將大小調整為低於從這段期間觀察到的最高值中減去最大允許縮減值的值。您可以使用這個參數,定義自動配置器在移除執行個體前應等待多久,這項設定取決於允許的最大減少數量。隨著追溯時間視窗變長,自動調整器會考量更多歷來尖峰,讓縮放作業更為保守且穩定。
詳情請參閱「設定縮減控制項」和「瞭解自動調度資源決策」。
建議大小
建議的群組大小是自動配置器建議的 VM 數量,也就是代管執行個體群組應維持的 VM 數量,取決於過去 10 分鐘觀察到的尖峰負載。最近 10 分鐘稱為穩定期。系統會持續重新計算建議的大小。如果您設定的自動調度資源政策含有縮減控制項,則建議的大小會受到縮減控制項的限制。
限制
您無法將自動調度資源功能與下列執行個體群組搭配使用,因為這些群組不允許自動配置器根據需求建立或刪除 VM:
- 非代管執行個體群組
- 有狀態設定的 MIG
- VM 修復功能已關閉的 MIG
- 目標分配型態為
ANY
或ANY_SINGLE_ZONE
的區域性 MIG
開啟自動調度資源功能時,無法建立具有特定名稱的 VM 執行個體。
請勿將 Compute Engine 自動調度資源功能用於 Google Kubernetes Engine 擁有的 MIG。針對 Google Kubernetes Engine 群組,請改為使用叢集自動調度資源功能。如果不確定 MIG 是否屬於 GKE 叢集,請在 MIG 名稱中尋找
gke
前置字串,例如:gke-test-1-3-default-pool-eadji9ah
。
自動修復期間會發生什麼事
自動調度資源的運作方式與自動修復無關。如果您為群組設定了自動修復功能,但有某個執行個體未通過健康狀態檢查,則 MIG 會嘗試重新建立執行個體。當 MIG 重新建立執行個體時,群組中執行中的執行個體數量可能會低於為群組指定的執行個體數量下限 (autoscalingPolicy.minNumReplicas
)。
定價
設定自動調度資源政策不會產生額外費用。自動調度資源會動態新增或刪除 VM 執行個體,因此您只需為 MIG 使用的資源付費。您可以在自動調度資源政策中設定執行個體數量下限和上限,藉此控管資源成本。 如需 Compute Engine 定價資訊,請參閱「定價」。
後續步驟
- 瞭解地區 MIG 中的自動調度資源機制運作方式。
- 如果您目前沒有 MIG,請參閱這篇文章,瞭解如何建立代管執行個體群組。
建立可根據下列項目進行調整的自動配置器:
管理自動配置器,例如取得自動配置器相關資訊、設定縮減控制項,或暫時限制自動配置器。