自動調度執行個體群組資源

代管執行個體群組提供自動調度資源功能,可根據負載的增減,自動在代管的執行個體群組中新增或刪除執行個體。自動調度資源服務可協助應用程式緩解流量增加的問題,並在資源需求降低時節省成本。您只需要定義自動調度資源政策,自動配置器就會根據測得的負載自動調整資源配置。

自動調度資源功能會在負載增加時,在執行個體群組中新增其他執行個體 (擴充規模),並在執行個體需求減少時移除執行個體 (縮減規模)。

基礎知識

自動調度資源功能牽涉到下列基本概念和服務。

代管執行個體群組

自動調度資源是代管執行個體群組提供的功能。代管執行個體群組是透過通用執行個體範本建立的一組性質相同的執行個體。自動配置器會在代管的執行個體群組中新增或刪除執行個體。雖然 Compute Engine 有代管和非代管的執行個體群組,但只有代管的執行個體群組可以與自動配置器搭配使用。

如要瞭解代管執行個體群組與非代管執行個體群組之間的差異,請參閱執行個體群組一文。

自動調度資源政策和目標使用率

如要建立自動配置器,您必須指定自動調度資源政策和目標使用率,以供自動配置器用來決定調度群組資源的時機。您可以使用下列政策來調度資源:

  • 平均 CPU 使用率。
  • HTTP 負載平衡服務規模 (可根據使用率或每秒要求數設定)。
  • Stackdriver Monitoring 指標。

自動配置器會根據政策持續收集使用率資訊,並將實際使用率與您想要的目標使用率進行比較,以判斷群組資源需要擴充或縮減。

目標使用率是指您想讓虛擬機器 (VM) 執行個體維持的等級。舉例來說,如果您要根據 CPU 使用率調度資源,可以將目標使用率設為 75%,這樣自動配置器就會將指定執行個體群組的 CPU 使用率維持在 75% 或 75% 附近。每項指標的使用率解讀方式會因自動調度資源政策而有所不同。

如需各項政策的簡短摘要,請參閱政策一節。如需各項政策的詳細討論,請參閱:

等待期

設定自動調度資源功能時,請指定等待期,讓執行個體先完成初始化程序,之後自動配置器才開始從執行個體收集資訊。執行個體啟動期間的資訊可能不適合提供給自動配置器做決定,因此建議您省略這項資料。預設的等待期為 60 秒。

穩定期

為了縮小規模,自動配置器會根據最近 10 分鐘的尖峰負載來計算群組的建議目標大小。最近 10 分鐘稱為穩定期

這個 10 分鐘的穩定期看似是縮減規模時發生延遲,但實際上是自動調度資源的內建功能。延遲可確保較小的群組大小足以支援最近 10 分鐘的尖峰負載。

自動調度資源模式

如需在不受自動配置器作業干擾的情況下加以調查或設定群組,可暫時關閉或限制自動調度資源活動。即使關閉或限制自動配置器,系統也會保留自動配置器的設定,且會在再次開啟自動配置器或解除限制時,繼續進行所有自動調度資源活動。

規格

  • 自動調度資源功能僅適用於代管執行個體群組,而不支援非代管執行個體群組。
  • 如果主動式執行個體重新分配功能已停用,自動調度資源功能將不適用於代管執行個體群組。
  • 開啟自動調度資源功能時,無法建立具有特定名稱的執行個體。不過您可以在建立具有特定名稱的執行個體後,再開啟自動配置器。
  • 請勿將 Compute Engine 自動調度資源功能用於 Google Kubernetes Engine 擁有的代管執行個體群組。針對 Google Kubernetes Engine 群組,請改為使用叢集自動調度資源功能。

    如果不確定您的群組是否屬於 GKE 叢集,請在代管執行個體群組名稱中尋找 gke 前置字串,例如:gke-test-1-3-default-pool-eadji9ah

  • 自動配置器可根據多個指標做出資源調度決策,但只能為每種指標處理一項政策。不過,Stackdriver Monitoring 指標為例外狀況;自動配置器可根據 Monitoring 指標處理最多五項政策。自動配置器會為每項政策計算建議的虛擬機器數,然後根據在群組中提供最多虛擬機器的政策調度資源。

  • 自動調度資源的運作方式與自動修復無關。如果您為群組設定了自動修復功能,且執行個體未通過健康狀態檢查,則自動修復程式會嘗試重新建立執行個體。重新建立執行個體可能導致群組中的執行個體數量低於您指定的自動調度資源門檻 (minNumReplicas)。

事前準備

  1. 瞭解代管執行個體群組

    由於自動配置器是代管執行個體群組提供的功能,因此在使用自動調度資源功能之前,請先瞭解代管執行個體群組的運作方式。

  2. 取得代管執行個體群組名稱或網址

    您必須為所有自動調度資源要求提供代管執行個體群組名稱,或代管執行個體群組網址。您可以在 gcloud 指令列工具中使用代管執行個體名稱,但在 API 中,則需提供完整網址。

    如要取得現有代管執行個體群組的網址,則可使用 instance-groups managed list --uriinstance-groups managed list [INSTANCE_GROUP] --uri 指令。舉例來說,下列指令會提供 us-central1-f 區域中某個代管執行個體群組的網址:

    gcloud compute instance-groups managed list example-group --uri --filter="zone:(us-central1-f)"
    

    gcloud 工具會傳回代管執行個體群組的網址:

    https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-group
    

    如果您目前沒有代管執行個體群組,請檢閱如何建立代管執行個體群組的相關說明。

後續步驟

當您準備就緒時,請建立自動配置器,並讓該配置器根據 CPU 或負載平衡服務規模或是 Stackdriver Monitoring 指標調度資源。