自動調度節點群組

如果工作負載使用單一租戶節點,您可以使用節點群組自動調度器,自動管理節點群組的大小。您可以在建立節點群組時或之後設定自動調度資源。

自動配置器可透過下列方式,協助您自動管理單一租戶節點群組的大小:

  • 如果節點群組的容量不足,無法容納另一個虛擬機器 (VM) 執行個體,則可以增加節點群組的大小。自動配置器擴充節點群組大小後,系統會以透明方式排定 VM。

  • 如果節點群組中有閒置節點,則縮減節點群組大小,避免為未使用的單一租戶節點付費。

自動配置器在擴充節點群組時,會考量排定 VM 的必要容量、目標節點的可用容量,以及節點群組的自動調度資源政策。所需容量僅以 VM 大小為準。系統會根據節點大小、已排定的 VM,以及選用的 CPU 超量配置比例,估算可用容量。

下圖顯示:

  1. 節點群組自動調度資源功能會擴大調度資源,在沒有空節點的節點群組中部署 VM 時,會將新節點新增至節點群組。

  2. 節點群組自動配置器會從單一租戶節點群組中移除空白節點,藉此進行資源調度。

節點群組自動配置器會管理節點群組的大小。

自動配置器模式

節點群組預設不會啟用自動調整功能。如果未啟用自動配置器,您必須手動管理節點群組的大小。在節點群組上啟用自動配置器後,您可以指定自動配置器同時增加及減少節點群組的大小 (向外擴充及向內擴充),或只增加群組的大小 (只向外擴充)。

水平擴展和水平縮減

在這個模式下,節點群組自動配置器會增加 (水平擴展) 和減少 (水平縮減) 節點群組的大小。如要使用這個模式,您必須為節點群組指定大小上限和下限。自動配置器不會將節點群組大小調度至指定上限以上或指定下限以下。

如果 VM 的排程因容量不足而失敗,系統就會觸發擴充作業。如要解決這個問題,請將新節點新增至群組,然後再次嘗試作業。

如果節點在一段時間內保持空白,就會觸發縮減作業。如果 VM 遭到刪除或移出節點群組,就會產生空白節點。如果節點群組的自動調度資源政策允許,系統會在穩定期過後,排定移除空節點。穩定期可確保節點在您需要使用時仍可運作。

僅向外擴充

在這個模式下,自動配置器會因應排程 VM 的要求,增加節點群組的大小,但不會從節點群組中移除空白節點。如果工作負載單調遞增,或需要實體伺服器親和性 (例如BYOL 工作負載,這類工作負載需要授權位於同一部實體伺服器),Google 建議使用這個模式。

如果節點群組設定了「在節點群組內遷移」維護政策,就必須使用這個模式。

節點群組的大小範圍

啟用自動配置器時,您可以指定節點群組大小的最小值和最大值,設定節點群組的大小範圍。

如果未指定大小下限,自動配置器會將大小下限設為零 (0)。如要指定大小下限值,該值必須為大於或等於 0 的整數,且必須小於或等於大小上限。

您必須為節點群組的大小上限指定值。這個值必須是大於或等於 0 且小於或等於 100 的整數,這是單一租戶節點群組允許的最大大小,且這個值必須大於或等於指定的最小值。

如要處理可能超過節點群組大小上限 (100 個) 的工作負載,請建立多個具有相符相依性標籤的節點群組,例如 workload:in:my-autoscaled-node-groups。然後使用該親和性標籤排定 VM,並在每個群組中啟用自動調度資源功能,建立動態調度資源的節點群組群組。

可用性

您只能在支援單一租戶節點的區域使用單一租戶節點自動調度器。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

啟用節點群組自動調度器

在新節點群組中設定自動調度資源功能。

gcloud

以下範例說明如何使用 node-groups create 指令,在建立節點群組時啟用自動配置器。如要為現有節點群組新增自動配置器,請使用 node-groups update 指令。

gcloud compute sole-tenancy node-groups create group-name \
    --node-template template-name \
    --target-size size \
    --maintenance-policy maintenance-policy \
    --zone zone \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

更改下列內容:

  • group-name:要建立的節點群組名稱。
  • template-name:要用來建立節點群組的節點範本名稱。
  • size:節點群組的目標初始節點數量。
  • maintenance-policy:指定 VM 是否會在主機維護事件期間遷移及重新啟動。將其設為下列任一值:
    • default:VM 即時遷移至新節點。
    • migrate-within-node-group:VM 會即時遷移至節點群組中的另一個節點。
    • restart-in-place:VM 因維護事件而終止後,會在同一節點上重新啟動。
  • zone:要建立節點群組的可用區。
  • mode:這個節點群組的自動配置器模式。設為下列其中一個值:
    • off:停用自動配置器。
    • on:啟用擴充和縮減功能。
    • only-scale-out:僅啟用向外擴充功能。如果節點群組已設為在最少部伺服器上重新啟動代管 VM,您就必須使用這個模式。
  • max-nodes:節點群組的大小上限。設為小於或等於 100 且大於或等於 min-nodes 的值。
  • min-nodes:節點群組的最小大小,且必須是小於或等於 max-nodes 的整數值。預設值為 0。

REST

以下範例說明如何使用 nodeGroups.insert 指令,在建立節點群組時啟用自動配置器。如要為現有節點群組新增自動配置器,請使用 nodeGroups.patch 指令。

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

更改下列內容:

  • project-id:要新增具有自動調整程式節點群組的專案 ID。
  • zone:用來建立新節點群組的區域。
  • initial-node-count:建立節點群組時必須提供這項資訊。這會指定節點群組中的初始節點數量。如果 min-nodes 的值大於初始節點計數,節點群組的大小會擴展至 min-nodes 的值。
  • group-name:新節點群組的名稱。
  • template-name:要用來建立節點群組的節點範本名稱。
  • mode:這個節點群組的自動配置器模式。設為下列其中一項:
    • OFF:停用自動配置器。
    • ON:啟用擴充和縮減功能。
    • ONLY_SCALE_OUT:僅啟用向外擴充功能。如果節點群組已設為在最少部伺服器上重新啟動代管 VM,您就必須使用這個模式。
  • max-nodes:節點群組的大小上限。設為小於或等於 100 且大於或等於 min-nodes 的值。
  • min-nodes:節點群組的最小大小,且必須是小於或等於 max-nodes 的整數值。預設值為 0。
  • maintenance-policy:指定 VM 是否會在主機維護事件期間遷移及重新啟動。請將這個值設為下列其中一個值:
    • DEFAULT:VM 即時遷移至新節點。
    • MIGRATE_WITHIN_NODE_GROUP:VM 會即時遷移至節點群組中的另一個節點。
    • RESTART_IN_PLACE:VM 因維護事件而終止後,會在同一節點上重新啟動。

更新自動調度資源設定

如要變更節點群組的自動調度資源設定,請更新自動調度資源模式,或更新節點群組的大小下限和上限。

gcloud

下列範例說明如何使用 node-groups update 指令,變更節點群組自動配置器的模式。

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

更改下列內容:

  • name:要變更自動調度資源模式的節點群組名稱。
  • mode:這個節點群組的自動配置器模式。設為下列其中一項:
    • off:停用自動配置器。
    • on:啟用擴充和縮減功能。
    • only-scale-out:僅啟用向外擴充功能。如果節點群組已設定為在最少台伺服器上重新啟動代管的 VM,就必須使用這個模式。
  • max-nodes:節點群組的大小上限。設為小於或等於 100 且大於或等於 min-nodes 的值。
  • min-nodes:節點群組的最小大小,且必須是小於或等於 max-nodes 的整數值。預設值為 0。

REST

下列範例說明如何使用 nodeGroups.patch 指令,變更節點群組自動調度資源的模式。

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

更改下列內容:

  • project-id:包含節點群組的專案 ID,您要為該節點群組變更自動調整模式。
  • group-zone:包含要變更自動配置器模式的節點群組的可用區。
  • group-name:要變更自動調度資源模式的節點群組名稱。
  • template-name:節點群組的建立依據節點範本名稱。
  • mode:這個節點群組的自動配置器模式。請設為下列其中一個值:

    • OFF:停用自動配置器。
    • ON:啟用擴充和縮減功能。

    • ONLY_SCALE_OUT:僅啟用向外擴充功能。如果節點群組設定了「在節點群組內遷移」維護政策,就必須使用這個模式。

  • max-nodes:節點群組的大小上限。設為小於或等於 100 且大於或等於 min-nodes 的值。

  • min-nodes:節點群組的最小大小,且必須是小於或等於 max-nodes 的整數值。預設值為 0。

手動更新自動調度資源的節點群組大小

啟用自動配置器後,系統會自動管理節點群組大小,但您可以在該節點群組上排定或移除 VM,有效手動更新群組大小。

如要手動縮減自動調度資源的節點群組大小,請從節點中刪除 VM,直到節點為空為止。節點為空時,自動配置器會移除空節點,縮減節點群組大小。

如要手動增加自動調度資源節點群組的大小,請將群組的最小大小設為大於目前大小的值。如果群組的大小下限設為大於目前大小的值,自動配置器會將群組大小水平擴展至新指定的大小下限。

如果節點群組設為僅向外擴充,自動調度器會自動管理群組大小的增量,並停用手動增加群組大小的功能。使用這項設定,您可以從節點中移除 VM,直到節點為空,然後移除空節點,藉此縮減群組大小。

停用自動調度器

如果不再需要自動配置器自動管理節點群組大小,或是需要手動管理節點群組大小,請停用自動配置器。

gcloud

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode OFF

name 替換為要移除自動調度資源政策的節點群組名稱。

REST

下列範例說明如何使用 nodeGroups.patch 指令,關閉節點群組的自動調度器。

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

更改下列內容:

  • project-id:包含節點群組的專案 ID,您要為該節點群組變更自動調整模式。
  • group-zone:包含要變更自動配置器模式的節點群組的可用區。
  • group-name:要變更自動調度資源模式的節點群組名稱。
  • template-name:節點群組的建立依據節點範本名稱。
  • mode:這個節點群組的自動配置器模式。設為 OFF 即可停用這個節點群組的自動配置器。

查看自動調度資源活動

在 Google Cloud 控制台中,查看自動配置器如何調整節點群組的大小。 Google Cloud 控制台會顯示節點群組的目前大小,如果自動配置器正在調整群組大小,您也可以看到節點群組的目標大小。

控制台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下「節點群組」

  3. 查看每個節點群組中的節點數量。如果 Compute Engine 正在調度節點群組資源,您也可以查看目標節點數量。

後續步驟