使用 A3 High 或 A3 Mega 機型建立 AI 適用的 MIG

本文說明如何建立代管執行個體群組 (MIG),並使用 A3 High 或 A3 Mega 加速器最佳化機型。如要進一步瞭解機器類型,請參閱 Compute Engine 說明文件中的「A3 High」和「A3 Mega」。

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

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

限制

視 MIG 中 VM 使用的機器系列而定,適用下列限制:

A3 Mega

A3 High

事前準備

建立 MIG 前,請先完成下列步驟 (如尚未完成):

  1. 選擇使用選項:您選擇的使用選項會決定取得及使用 GPU 資源的方式。

    詳情請參閱「選擇消耗量選項」。

  2. 取得容量:取得容量的程序因消費選項而異。

    如要瞭解如何取得所選用量方案的容量,請參閱容量總覽

必要的角色

如要取得建立 MIG 所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立 MIG 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立 MIG,必須具備下列權限:

  • 如要建立 MIG,請在專案上按一下 compute.instanceGroupManagers.create

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

總覽

使用 A3 Mega 或 A3 High (8 個 GPU) 機器類型建立 MIG 時,請按照下列步驟操作:

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

建立虛擬私有雲網路

如要為 GPU VM 啟用有效率的通訊功能,您需要建立管理網路和一或多個資料網路。管理網路用於外部存取 (例如 SSH) 和大多數一般網路通訊。資料網路用於不同 VM 上的 GPU 之間的高效能通訊,例如遠端直接記憶體存取 (RDMA) 流量。

對於這些虛擬私有雲網路,建議您將最大傳輸單元 (MTU) 設為較大的值。MTU 值越高,封包大小就越大,封包標頭的負擔也越小,因此有效負載資料的總處理量會增加。如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立及驗證巨型封包 MTU 網路」。

建立管理網路、子網路和防火牆規則

如要設定管理網路,請完成下列步驟:

  1. 使用 networks create 指令建立管理網路:

    gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
  2. 使用 networks subnets create 指令建立管理子網路:

    gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-mgmt-net \
        --region=REGION \
        --range=192.168.0.0/24
    
  3. 使用 firewall-rules create 指令建立防火牆規則。

    1. 為管理網路建立防火牆規則。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:0-65535,udp:0-65535,icmp \
          --source-ranges=192.168.0.0/16
      
    2. 建立 tcp:22 防火牆規則,限制哪些來源 IP 位址可透過 SSH 連線至 VM。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=SSH_SOURCE_IP_RANGE
      
    3. 建立 icmp 防火牆規則,可用於檢查網路中的資料傳輸問題。

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=0.0.0.0/0
      

更改下列內容:

  • NETWORK_NAME_PREFIX:用於虛擬私有雲網路和子網路的名稱前置字串。
  • PROJECT_ID:您的專案 ID。
  • REGION:要建立網路的區域。
  • SSH_SOURCE_IP_RANGE:CIDR 格式的 IP 範圍。這會指定哪些來源 IP 位址可使用 SSH 連線至 VM。

建立資料網路、子網路和防火牆規則

資料網路數量取決於您建立的 GPU 機型類型。

A3 Mega

A3 Mega 需要八個資料網路。如要建立八個資料網路,每個網路都有子網路和防火牆規則,請使用下列指令。

for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

A3 High

A3 High 需要四個資料網路。使用下列指令建立四個資料網路,每個網路都有子網路和防火牆規則。

for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

選用:建立工作負載政策

如果是彈性啟動用量方案,請略過這個部分,並繼續建立執行個體範本。 由於限制,彈性啟動佈建模式不支援工作負載政策。

您可以建立工作負載政策,指定 VM 配置。如果您已有工作負載政策,可以重複使用。將工作負載政策套用至 MIG 時,Compute Engine 會盡可能建立彼此靠近的 VM。如果應用程式對延遲時間很敏感,且您希望 VM 之間的位置更接近 (達到最大密集度),請在建立工作負載政策時指定 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:工作負載政策的名稱。
  • TOPOLOGY_DISTANCE:拓撲距離上限。指定下列其中一個值:
    • 如要將 VM 放在同一個叢集中,請按照下列步驟操作:CLUSTER
    • 如要將 VM 放在同一個區塊,請按照下列步驟操作:BLOCK
    • 如要將 VM 放置在同一個子區塊中,請按照下列步驟操作:SUBBLOCK
    注意:縮短最大距離可能會降低 VM 可用性。
  • REGION:要建立工作負載政策的區域。指定要建立 MIG 的區域,以及可用的機器類型。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。

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 的區域,以及要使用的機器類型。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • WORKLOAD_POLICY_NAME:工作負載政策的名稱。
  • TOPOLOGY_DISTANCE:拓撲距離上限。指定下列其中一個值:
    • 如要將 VM 放在同一個區塊,請按照下列步驟操作:BLOCK
    • 如要將 VM 放在同一個叢集中,請按照下列步驟操作:CLUSTER
    注意:縮短最大距離可能會降低 VM 可用性。

建立執行個體範本

建立執行個體範本,指定 MIG 的 VM 屬性。

如要建立執行個體範本,請選取下列任一選項。

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

A3 Mega

如要為 A3 Mega VM 建立執行個體範本,您必須為 GPUDirect-TCPXO 流量指定八個額外的網路介面。如果尚未建立虛擬私有雲網路,請按照「建立虛擬私有雲網路」一文的說明,建立八個虛擬私有雲網路。

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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,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:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • RUN_DURATION:要求的 VM 執行時長。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上 dhms。舉例來說,指定 30m 代表 30 分鐘,指定 1d2h3m4s 則代表 1 天 2 小時 3 分 4 秒。值必須介於 10 分鐘至 7 天之間。

取決於預留項目

如要建立區域執行個體範本,請使用 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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • 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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • TERMINATION_ACTION:Compute Engine 預先終止執行個體時採取的動作,可以是 STOP (預設) 或 DELETE

REST

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

彈性啟動

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • RUN_DURATION:要求的 VM 執行時間長度 (以秒為單位)。值必須介於 600 (600 秒,即 10 分鐘) 和 604800 (604,800 秒,即 7 天) 之間。

取決於預留項目

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "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:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • 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":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • TERMINATION_ACTION:Compute Engine 預先終止執行個體時採取的動作,可以是 STOP (預設) 或 DELETE

A3 High

如要為 A3 High VM 建立執行個體範本,您必須為 GPUDirect-TCPX 流量指定四個額外的網路介面。如果尚未建立虛擬私有雲網路,請按照「建立虛擬私有雲網路」一文的說明,建立四個虛擬私有雲網路。

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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,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:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • RUN_DURATION:要求的 VM 執行時長。您必須將值格式化為天數、時數、分鐘數或秒數,並分別加上 dhms。舉例來說,指定 30m 代表 30 分鐘,指定 1d2h3m4s 則代表 1 天 2 小時 3 分 4 秒。值必須介於 10 分鐘至 7 天之間。

取決於預留項目

如要建立區域執行個體範本,請使用 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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • 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 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。指定您要使用的機器類型適用的地區。如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • TERMINATION_ACTION:Compute Engine 預先終止執行個體時採取的動作,可以是 STOP (預設) 或 DELETE

REST

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

彈性啟動

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • RUN_DURATION:要求的 VM 執行時間長度 (以秒為單位)。值必須介於 600 (600 秒,即 10 分鐘) 和 604800 (604,800 秒,即 7 天) 之間。

取決於預留項目

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "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:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • 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":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
  • MACHINE_TYPE:VM 要使用的機器類型。請指定 A4 或 A3 Ultra 機型。詳情請參閱「GPU 機器類型」。
  • IMAGE_FAMILY:您要使用的 OS 映像檔映像檔系列。 如需支援的作業系統清單,請參閱「支援的作業系統」。
  • IMAGE_PROJECT:OS 映像檔的專案 ID。
  • REGION:要建立執行個體範本的區域。 指定您要使用的機器類型適用的區域。 如需地區相關資訊,請參閱「各區域和可用區的 GPU 供應情形」。
  • DISK_SIZE:開機磁碟的大小,單位為 GB。
  • NETWORK_PROJECT_ID:網路的專案 ID。
  • GVNIC_NAME_PREFIX:建立使用 gVNIC NIC 的標準 VPC 網路和子網路時指定的名稱前置字元。
  • REGION:子網路的區域。
  • TERMINATION_ACTION:Compute Engine 預先終止執行個體時採取的動作,可以是 STOP (預設) 或 DELETE

建立執行個體範本後,您可以查看範本,瞭解其 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 欄位

後續步驟