使用 H4D 機器系列建立 HPC MIG

本文說明如何建立使用 H4D 機器類型的代管執行個體群組 (MIG)。

建立 MIG 後,您就能將多部虛擬機器 (VM) 視為單一實體進行管理。MIG 中的每個 VM 都是以執行個體範本為基礎。MIG 會自動管理群組中的 VM,因此可提供高可用性和擴充性。如要進一步瞭解 MIG,請參閱代管執行個體群組

如要瞭解 HPC VM 和 HPC 叢集建立選項,請參閱「HPC 叢集建立總覽」。

如要建立 MIG,但未使用 H4D 機型,或不需要建立密集部署的執行個體,請參閱「建立代管執行個體群組 (MIG) 的基本情境」。

事前準備

  • 選擇用量選項:如要大量建立運算執行個體,並啟用進階叢集管理功能,您可以選擇「日曆」模式中的「未來預訂」或搶占型 VM

    如果您選擇使用 Spot VM,VM 可能不會緊密共置。此外,系統會視需要先占 Spot VM,且 Spot VM 不符合管理 VM 群組主機維護事件的資格。

  • 取得容量:取得容量的程序會因每個用量選項而異。

    詳情請參閱「選擇消耗選項並取得容量」。

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init

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

    2. Set a default region and zone.

    REST

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

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

      gcloud init

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

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

總覽

使用 H4D 機器類型建立 MIG 的步驟如下:

  1. 建立虛擬私有雲網路
  2. 選用: 建立工作負載政策
  3. 建立執行個體範本
  4. 建立 MIG

限制

使用 H4D VM 建立 MIG 時,須遵守下列限制:

  • 如果 MIG 要使用的執行個體範本指定彈性啟動佈建模式,則適用下列限制:

    • 您只能使用大小調整要求,將 VM 新增至 MIG。

    • 您無法將工作負載政策套用至 MIG。

    • 您必須在 MIG 中關閉修復功能。

  • 如果您建立區域性 MIG,則 MIG 只能在包含虛擬私有雲網路設定檔的可用區中建立 VM。

  • 您無法在 MIG 中設定執行個體彈性

  • 如果將工作負載政策套用至 MIG,且群組內有 VM,就無法變更 MIG 中的政策。如要變更含有 VM 的 MIG 政策,請先將 MIG調整為零。

  • 您無法使用指定配置政策的執行個體範本,建立使用工作負載政策的 MIG。

  • 建立 MIG 調整大小要求時,須遵守下列限制:

    • 在區域性 MIG 中,您只能使用ANY_SINGLE_ZONE 目標分配型態 (預覽版)。不支援其他分配形狀。

    • 您只能將 MIG 的待命集區模式設為 manual (預設值)。

    • 您無法設定自動調度資源

    • 如果 MIG 包含已接受的規模調整要求,您就無法執行下列操作:

    • 您無法刪除或捨棄 MIG 為規模調整要求建立的 CREATING 狀態代管執行個體。如要刪除這些受管理執行個體,請取消大小調整要求

選用:建立虛擬私有雲網路

建立運算執行個體時,您可以指定虛擬私有雲網路和子網路。如果省略這項設定,系統會使用預設的網路和子網路。

如要設定 MIG 中的 H4D 執行個體使用 Cloud RDMA,請完成本節中的步驟;否則,您可以略過本節,改用預設網路。

如要在 H4D 執行個體上使用 Cloud RDMA,您必須設定至少兩個網路,每個網路各對應一種網路介面 (NIC):

  • NIC 類型 GVNIC:使用 gve 驅動程式處理 TCP/IP 和網際網路流量,以進行一般的 VM 對 VM 和 VM 對網際網路通訊。
  • NIC 類型 IRDMA:使用 IDPF/iRDMA 驅動程式,在執行個體之間建立 Cloud RDMA 網路。

使用 Cloud RDMA 的執行個體只能有一個 IRDMA 介面。您最多可以新增八個額外的 GVNIC 網路介面,每個執行個體總共可有 10 個 vNIC。

如要設定與執行個體搭配使用的 Falcon 虛擬私有雲網路,您可以按照文件中的操作說明,或使用提供的指令碼。

操作指南

如要建立網路,請按照下列操作說明進行:

指令碼

每個執行個體最多可建立九個 gVNIC 網路介面和一個 IRDMA 網路介面。每個網路介面都必須連接到不同的網路。如要建立網路,可以使用下列指令碼,為 gVNIC 建立兩個網路,並為 IRDMA 建立一個網路。

  1. 選用:執行指令碼前,請列出 Falcon VPC 網路設定檔,確認有可用的設定檔。
      gcloud compute network-profiles list
      
  2. 複製下列程式碼,並在 Linux 殼層視窗中執行。

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 1))); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
              --subnet-mode=custom
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --region=REGION \
              --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --action=ALLOW \
              --rules=tcp:0-65535,udp:0-65535,icmp \
              --source-ranges=10.0.0.0/8
      done
    
      # Create SSH firewall rules
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
      # Optional: Create a firewall rule for the external IP address for the
      #  first GVNIC network interface
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      # Create a Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
          --network=RDMA_NAME_PREFIX-irdma \
          --region=REGION \
          --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
      

    更改下列內容:

    • NUMBER_OF_GVNIC:要建立的 gVNIC 介面數量。請指定介於 1 到 9 之間的數字。
    • GVNIC_NAME_PREFIX:用於一般虛擬私有雲網路和子網路的名稱前置字元,這些網路和子網路使用 GVNIC NIC 類型。
    • REGION:要建立網路的區域。建立 Falcon 虛擬私有雲網路時,這必須對應至為 --network-profile 旗標指定的可用區。舉例來說,如果您將區域指定為 europe-west4-b,則您的地區為 europe-west4
    • IP_RANGE:虛擬私有雲網路外部的 IP 位址範圍,用於 SSH 防火牆規則。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。請勿使用 0.0.0.0/0::/0 做為來源範圍,因為這樣會允許來自所有 IPv4 或 IPv6 來源的流量,包括 Google Cloud以外的來源。
    • RDMA_NAME_PREFIX:用於虛擬私有雲網路和子網路的名稱前置字元,這些網路和子網路使用 IRDMA NIC 類型。
    • ZONE:要建立網路和運算執行個體的區域。使用 us-central1-aeurope-west4-b
  3. 選用:如要確認虛擬私有雲網路資源是否建立成功,請在 Google Cloud 控制台中檢查網路設定:

    1. 前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。

      前往「VPC networks」(虛擬私有雲網路)

    2. 在清單中搜尋您在上一個步驟中建立的網路。
    3. 如要查看子網路、防火牆規則和其他網路設定,請按一下網路名稱。

選用:建立工作負載政策

如要讓 Compute Engine 將 VM 執行個體放在單一或相鄰的區塊中,請建立工作負載政策,指定執行個體放置位置。不過,如果希望 Compute Engine 將執行個體放在特定區塊,請略過這個步驟,並在建立執行個體範本時,於預留項目親和性中提供區塊名稱。

如果您已有工作負載政策,可以重複使用。將工作負載政策套用至 MIG 時,Compute Engine 會盡量建立彼此靠近的執行個體。如果您的應用程式對延遲時間很敏感,且希望執行個體盡可能靠近 (最大緊密度),請在建立工作負載政策時指定 maxTopologyDistance 欄位。

工作負載政策建立後即無法更新。如要變更工作負載政策,請建立新的政策。

如要建立工作負載政策,請選取下列任一選項:

gcloud

如要建立工作負載政策,請使用 gcloud compute resource-policies create workload-policy 指令

  • 如要盡量配置 VM,請只在指令中指定 --type=high-throughput 標記:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --region=REGION
    
  • 如要嚴格共置 VM,請在指令中指定 --max-topology-distance 標記:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --max-topology-distance=TOPOLOGY_DISTANCE \
        --region=REGION
    

更改下列內容:

  • WORKLOAD_POLICY_NAME:工作負載政策的名稱。
  • REGION:要建立工作負載政策的區域。指定要建立 MIG 的區域,以及可用的機器類型。如要瞭解地區和區域,請參閱可用地區和區域

REST

如要建立工作負載政策,請對 resourcePolicies.insert 方法發出 POST 要求。

  • 如要盡量配置 VM,請在要求中只指定 type 欄位,如下所示:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT"
        }
      }
    
  • 如要嚴格共置 VM,請在要求中指定 maxTopologyDistance 欄位,如下所示:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT",
          "maxTopologyDistance": "TOPOLOGY_DISTANCE"
        }
      }
    

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:要建立工作負載政策的區域。指定要建立 MIG 的區域,以及要使用的機器類型。如要瞭解地區和區域,請參閱「可用地區和區域」。
  • WORKLOAD_POLICY_NAME:工作負載政策的名稱。

建立執行個體範本

如要為 MIG 中的每個執行個體指定執行個體和耗用屬性,請使用下列其中一種方法建立執行個體範本。

下列指令也會設定執行個體的存取範圍。為簡化權限管理,Google 建議您將執行個體的存取權範圍設為 cloud-platform 存取權,然後使用 IAM 角色定義執行個體可存取的服務。詳情請參閱「範圍最佳做法」。

gcloud

您需要指定的參數取決於這項部署作業使用的耗用量選項。選取與用量選項和佈建模式對應的分頁。

彈性啟動

如要建立區域執行個體範本,請使用 gcloud compute instance-templates create 指令

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-0, \
      subnet=GVNIC_NAME_PREFIX-sub-0, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    
    --reservation-affinity=none \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的 H4D 機器類型。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型所在的區域。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • STACK_TYPE:選用:用於 gVNIC 介面的堆疊類型。 指定 IPV4_ONLYIPV4_IPV6。如未指定值,系統會預設使用 IPV4_ONLY
  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址。 執行下列其中一個步驟:

    • 從子網路指定有效的 IPv4 位址。
    • 如不希望網路介面有外部 IP 位址,請使用 no-address 旗標。
    • 如要讓網路介面接收暫時外部 IP 位址,請指定 address=''

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • RUN_DURATION:您希望所要求執行個體執行的時間長度。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上 dhms。例如,指定 30m 代表 30 分鐘,或指定 1d2h3m4s 代表 1 天 2 小時 3 分 4 秒。這個值必須介於 10 分鐘至七天之間。

取決於預留項目

如要建立區域執行個體範本,請使用 gcloud compute instance-templates create 指令

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-0, \
      subnet=GVNIC_NAME_PREFIX-sub-0, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的 H4D 機器類型。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型所在的區域。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • STACK_TYPE:選用:用於 gVNIC 介面的堆疊類型。 指定 IPV4_ONLYIPV4_IPV6。如未指定值,系統會預設使用 IPV4_ONLY
  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址。 執行下列其中一個步驟:

    • 從子網路指定有效的 IPv4 位址。
    • 如不希望網路介面有外部 IP 位址,請使用 no-address 旗標。
    • 如要讓網路介面接收暫時外部 IP 位址,請指定 address=''

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • RESERVATION:要使用的預留項目名稱。

    RESERVATION:保留項目名稱,或保留項目內的特定區塊。如要取得預留名稱或可用區塊,請參閱「查看預留容量」。根據執行個體放置位置的需求,選擇下列其中一個選項:
    • 如要在區塊之間或單一區塊上建立執行個體,請按照下列步驟操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      此外, 如要建立單一區塊,請套用指定區塊共置 (maxTopologyDistance=BLOCK) 的工作負載政策, 建立 MIG。 Compute Engine 隨後會將政策套用至預訂項目,並在相同區塊中建立執行個體。

    • 如要在特定區塊上建立執行個體,請按照下列步驟操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

如要建立區域執行個體範本,請使用 gcloud compute instance-templates create 指令

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-0, \
      subnet=GVNIC_NAME_PREFIX-sub-0, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的 H4D 機器類型。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型所在的區域。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • STACK_TYPE:選用:用於 gVNIC 介面的堆疊類型。 指定 IPV4_ONLYIPV4_IPV6。如未指定值,系統會預設使用 IPV4_ONLY
  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址。 執行下列其中一個步驟:

    • 從子網路指定有效的 IPv4 位址。
    • 如不希望網路介面有外部 IP 位址,請使用 no-address 旗標。
    • 如要讓網路介面接收暫時外部 IP 位址,請指定 address=''

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • TERMINATION_ACTION:Compute Engine 在先占時停止 (STOP) 或刪除 (DELETE) Spot VM。

REST

您需要指定的參數取決於這項部署作業使用的耗用量選項。選取與用量選項和佈建模型對應的分頁。

彈性啟動

如要建立區域執行個體範本,請對 regionInstanceTemplates.insert 方法發出 POST 要求

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的機器類型。指定 H4D 機器類型。詳情請參閱 H4D 機器類型
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如要瞭解區域,請參閱「區域和可用區」。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • RUN_DURATION:您希望所要求執行個體執行的時間長度 (以秒為單位)。這個值必須介於 600 (600 秒,也就是 10 分鐘) 和 604800 (604,800 秒,也就是七天) 之間。

取決於預留項目

如要建立區域執行個體範本,請對 regionInstanceTemplates.insert 方法發出 POST 要求

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的機器類型。指定 H4D 機器類型。詳情請參閱 H4D 機器類型
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如要瞭解區域,請參閱「區域和可用區」。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • RESERVATION:要使用的預留項目名稱。

    RESERVATION:保留項目名稱,或保留項目內的特定區塊。如要取得預留名稱或可用區塊,請參閱「查看預留容量」。根據執行個體放置位置的需求,選擇下列其中一個選項:
    • 如要在區塊之間或單一區塊上建立執行個體,請按照下列步驟操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      此外, 如要建立單一區塊,請套用指定區塊共置 (maxTopologyDistance=BLOCK) 的工作負載政策, 建立 MIG。 Compute Engine 隨後會將政策套用至預訂項目,並在相同區塊中建立執行個體。

    • 如要在特定區塊上建立執行個體,請按照下列步驟操作:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

如要建立區域執行個體範本,請對 regionInstanceTemplates.insert 方法發出 POST 要求

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION"
    }
  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:執行個體使用的機器類型。指定 H4D 機器類型。詳情請參閱 H4D 機器類型
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如要瞭解區域,請參閱「區域和可用區」。
  • DISK_SIZE:開機磁碟的大小 (以 GiB 為單位)。
  • GVNIC_NAME_PREFIX:您為 gVNIC 介面建立標準 VPC 網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --network-interface 欄位,並將 nic-type 欄位設為 GVNIC。此外,請省略這個網路介面的 networksubnetwork 設定。

  • EXTERNAL_IPV4_ADDRESS:選用:要搭配 gVNIC 網路介面使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址

    如要為 GVNIC 網路介面指定外部 IPv6 位址,請改用 --external-ipv6-address 標記。

  • RDMA_NAME_PREFIX:建立 IRDMA 網路介面專用的虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果 H4D 執行個體未使用 Cloud RDMA,請省略 IRDMA 介面的 --network-interface 欄位。

  • TERMINATION_ACTION:Compute Engine 在先占時停止 (STOP) 或刪除 (DELETE) Spot VM。

建立執行個體範本後,您可以查看範本,瞭解範本 ID 並檢查執行個體屬性。

建立 MIG

完成所有前置步驟後,請根據您的情境建立 MIG,如下所示:

情境 在 MIG 中建立 VM 的方法 範例
您有多項或並行工作,可使用任意數量的 VM 啟動。 建立 MIG,並使用目標大小指定要在群組中的 VM 數量。

請參閱「建立具有目標大小的 MIG」。

機器學習推論工作
您有工作需要分配到特定數量的 VM。 建立不含任何 VM 的 MIG,然後在 MIG 中建立規模調整要求。 您可透過大小調整要求一次取得所有 VM。

請參閱建立 MIG 和調整大小要求

分散式機器學習訓練和微調工作

建立具有目標大小的 MIG

如果不需要一次建立所有 VM 就能啟動工作,請建立具有目標大小的 MIG。目標大小會決定 MIG 中的 VM 數量。MIG 會根據目前的資源可用性開始建立 VM。如果任何資源暫時無法使用,MIG 會持續嘗試建立 VM,以達到目標大小。

如要建立具有目標大小的 MIG,請選取下列任一選項:

gcloud

如要建立指定目標大小的 MIG,請使用 instance-groups managed create 指令

建立 MIG 的指令會使用工作負載政策來指定 VM 配置。如不想使用工作負載政策,請移除 --workload-policy 旗標。

請按照下列步驟建立可用區或區域性 MIG:

  • 如要建立可用區 MIG,請使用下列指令:
    gcloud compute instance-groups managed create MIG_NAME \
      --template=INSTANCE_TEMPLATE_URL \
      --size=TARGET_SIZE \
      --workload-policy=WORKLOAD_POLICY_URL \
      --zone=ZONE
    
  • 如要建立區域性 MIG,請使用下列指令:
    gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --region=REGION
    
取代下列項目:
  • MIG_NAME:MIG 的名稱。
  • INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:
    • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 全域執行個體範本:INSTANCE_TEMPLATE_ID
  • TARGET_SIZE:MIG 中所需的 VM 數量。
  • WORKLOAD_POLICY_URL:選用: 工作負載政策的網址。例如:projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。如果不想使用工作負載政策,可以移除 --workload-policy 旗標。
  • ZONE:要建立 MIG 的可用區。如果您使用工作負載政策,請在政策的地區內指定區域。
  • REGION:要建立 MIG 的區域。如果您使用工作負載政策,請指定與政策相同的區域。 如果是區域性 MIG,您可以使用 --zones 標記指定該區域中的可用區,而非區域。

REST

如要建立具有指定目標大小的 MIG,請發出 POST 要求。

建立 MIG 的要求會使用工作負載政策來指定 VM 配置。如果不想使用工作負載政策,請移除 resourcePolicies.workloadPolicy 欄位。

請按照下列步驟建立可用區或區域性 MIG:

  • 如要建立區域 MIG,請向 instanceGroupManagers.insert 方法發出 POST 要求。
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "MIG_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "targetSize": "TARGET_SIZE",
      "resourcePolicies": {
        "workloadPolicy": WORKLOAD_POLICY_URL
      }
    }
    
  • 如要建立區域 MIG,請向 regionInstanceGroupManagers.insert 方法發出 POST 要求。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": "TARGET_SIZE",
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
    
取代下列項目:
  • PROJECT_ID:專案 ID。
  • ZONE:要建立 MIG 的可用區。 如果您使用工作負載政策,請在政策的地區內指定區域。
  • REGION:要建立 MIG 的區域。如果您使用工作負載政策,請指定與政策相同的區域。
  • INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:
    • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 全域執行個體範本:INSTANCE_TEMPLATE_ID
  • MIG_NAME:MIG 的名稱。
  • TARGET_SIZE:您要在 MIG 中使用的 VM 數量。
  • WORKLOAD_POLICY_URL:選用: 工作負載政策的網址。例如: projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果不想使用工作負載政策,可以移除 resourcePolicies.workloadPolicy 欄位。

建立 MIG 和大小調整要求

如要一次啟動多個 VM 來執行工作,請建立 MIG,然後按照本節說明,在 MIG 中建立調整大小要求

如要在 MIG 中建立規模調整要求,請選取下列任一選項。

gcloud

您需要指定的參數取決於此部署作業使用的耗用選項。選取與用量選項的佈建模式對應的分頁。

彈性啟動

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令 建立可用區 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zone=ZONE
      
    2. 使用 instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令建立區域性 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. 使用 beta instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

取決於預留項目

建立 MIG 的指令會使用工作負載政策來指定 VM 配置。如不想使用工作負載政策,請移除 --workload-policy 旗標。

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令 建立可用區 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. 使用 instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令建立區域性 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. 使用 beta instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

Spot

建立 MIG 的指令會使用工作負載政策來指定 VM 配置。如不想使用工作負載政策,請移除 --workload-policy 旗標。

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令 建立可用區 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. 使用 instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:

    1. 使用 instance-groups managed create 指令建立區域性 MIG,如下所示。

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. 使用 beta instance-groups managed resize-requests create 指令,在區域 MIG 中建立調整大小要求,如下所示:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      
取代下列項目:
  • MIG_NAME:MIG 的名稱。
  • INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:
    • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 全域執行個體範本:INSTANCE_TEMPLATE_ID
  • WORKLOAD_POLICY_URL:選填:工作負載政策的網址。 例如: projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果不想使用工作負載政策,可以移除 --workload-policy 旗標。
  • ZONE:要建立 MIG 的可用區。您也必須為區域 MIG 指定可用區。這個區域必須是包含虛擬私有雲網路設定檔的區域,且必須是可使用機器類型的區域。詳情請參閱「限制」一節。
  • RESIZE_REQUEST_NAME:規模調整要求名稱,在指定的 MIG 中不得重複。否則建立大小調整要求就會失敗。
  • COUNT:一次要新增至 MIG 的 VM 數量。
  • REGION:MIG 所在的地區。

如果工作負載需要特定 VM 名稱,您可以使用 beta instance-groups managed resize-requests create 指令,指定要建立的 VM 名稱清單。在指令中,將 --resize-request 旗標替換為 --instances 旗標

REST

您需要指定的參數取決於此部署作業使用的耗用選項。選取與用量選項的佈建模式對應的分頁。

彈性啟動

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. instanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. 如要在區域 MIG 中建立調整大小要求,請向 instanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. regionInstanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. 在區域 MIG 中建立規模調整要求,方法是向 beta.regionInstanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

取決於預留項目

建立 MIG 的要求會使用工作負載政策來指定 VM 配置。如果不想使用工作負載政策,請移除 resourcePolicies.workloadPolicy 欄位。

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. instanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. 如要在區域 MIG 中建立調整大小要求,請向 instanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. regionInstanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. 在區域 MIG 中建立規模調整要求,方法是向 beta.regionInstanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Spot

建立 MIG 的要求會使用工作負載政策來指定 VM 配置。如果不想使用工作負載政策,請移除 resourcePolicies.workloadPolicy 欄位。

請按照下列步驟建立可用區或區域 MIG,以及規模調整要求:

  • 如要在可用區 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. instanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. 如要在區域 MIG 中建立調整大小要求,請向 instanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • 如要在區域 MIG 中建立規模調整要求,請按照下列步驟操作:
    1. regionInstanceGroupManagers.insert 方法發出 POST 要求,建立區域 MIG,如下所示。
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. 在區域 MIG 中建立規模調整要求,方法是向 beta.regionInstanceGroupManagerResizeRequests.insert 方法發出 POST 要求,如下所示:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
取代下列項目:
  • PROJECT_ID:專案 ID。
  • ZONE:要建立 MIG 的可用區。您也必須為區域 MIG 指定可用區。這個區域必須是包含虛擬私有雲網路設定檔的區域,且必須是可使用機器類型的區域。詳情請參閱「限制」一節。
  • REGION:要建立 MIG 的區域。
  • INSTANCE_TEMPLATE_URL:您要用來在 MIG 中建立 VM 的執行個體範本網址。網址可以包含執行個體範本的 ID 或名稱。指定下列其中一個值:
    • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • 全域執行個體範本:INSTANCE_TEMPLATE_ID
  • MIG_NAME:MIG 的名稱。
  • WORKLOAD_POLICY_URL:選填:工作負載政策的網址。 例如: projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。 如果不想使用工作負載政策,可以移除 resourcePolicies.workloadPolicy 欄位。
  • RESIZE_REQUEST_NAME:規模調整要求名稱,在指定的 MIG 中不得重複。否則建立大小調整要求就會失敗。
  • COUNT:要一次新增至 MIG 的 VM 數量

如果工作負載需要特定 VM 名稱,您可以指定要建立的 VM 名稱清單。如要執行這項操作,請向區域 MIG 的 beta.regionInstanceGroupManagerResizeRequests.insert 方法發出 POST 要求,或是向區域 MIG 的 beta.instanceGroupManagerResizeRequests.insert 方法發出要求。在要求主體中,將 resizeBy 欄位替換為 instanceNames 欄位

後續步驟