使用 H4D 機器類型和彈性啟動功能建立 MIG

本教學課程說明如何建立使用 H4D 機型的代管執行個體群組 (MIG)。MIG 會建立彈性啟動 VM,也就是以折扣價運作最多七天的虛擬機器 (VM) 執行個體。以這種方式建立 VM 時,Compute Engine 會將 VM 放在鄰近位置,盡量縮短網路延遲時間,因此非常適合執行 HPC 工作負載。

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

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

本教學課程適用於 HPC 工程師、平台管理員和作業人員,以及有興趣為短期工作負載建立互連 HPC 執行個體群組的資料和 MPI 專家。產生的執行個體不會使用自動調度管理工具來管理執行個體或排定工作時間。

目標

  1. 選用:要求搶占配額。
  2. 選用:建立虛擬私有雲網路。
  3. 選用:建立工作負載政策。
  4. 建立執行個體範本。
  5. 建立 MIG 和大小調整要求。
  6. 清除所用資源。

費用

本教學課程使用 Google Cloud的計費元件,包括:

如要根據預測用量估算費用,請使用 Pricing Calculator

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

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

  4. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  5. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要「專案建立者」角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  6. 確認專案已啟用計費功能 Google Cloud

  7. 啟用必要的 API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable compute.googleapis.com
  8. 安裝 Google Cloud CLI。

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

  10. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  11. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要「專案建立者」角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  12. 確認專案已啟用計費功能 Google Cloud

  13. 啟用必要的 API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable compute.googleapis.com
  14. 將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。

選用:要求搶占型配額

新增至 MIG 的 VM 執行個體會耗用區域配額。 VM 執行個體、執行個體群組、CPU 和磁碟的配額可供所屬區域中的任何 VM 執行個體使用,無論所在可用區為何。

使用彈性啟動時,配額可以是標準配額或可搶占配額。

  • 標準配額:如果專案沒有先占配額,且您從未要求先占配額,則執行個體資源會消耗標準配額。
  • 先占配額:要求先占配額可為臨時資源提供獨立配額,有助於提高配額取得率。不過,當 Compute Engine 授予您某個區域的先占配額後,所有適用資源只會消耗先占配額。如果這項配額用盡,您必須為 VM 資源申請額外的搶占型配額。

如要申請搶占型配額,請按照「申請調整配額」一文中的步驟操作。

需要的配額類型

如要使用執行個體群組,您必須確保該群組會使用的所有資源仍有配額 (例如 CPU 配額),群組資源本身的配額也充足無虞。視執行個體使用的機型而定,H4D 執行個體可能會使用下列配額類型:

資源 標準配額 先占配額
CPU CPUS_PER_VM_FAMILY Preemptible CPUs
本機 SSD Local SSD per machine family (GB) Preemptible Local SSDs (GB)

如要在本教學課程中建立資源,可能需要下列額外的區域配額:

  • 區域性 (單一區域) 代管執行個體群組:Instance group managersInstance groups
  • Google Cloud Hyperdisk:

    • Hyperdisk Balanced Capacity (GB)
    • Hyperdisk Balanced Throughput (MB/s)
    • Hyperdisk Balanced IOPS

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

除非選擇停用,否則每個專案都會具備預設網路,可用於為執行個體提供網路連線。建立 VM 時,您可以指定虛擬私有雲網路和子網路。如果省略這項設定,系統會使用預設的網路和子網路。

您可以設定 H4D 執行個體使用 Cloud RDMA。Cloud RDMA 採用 IRDMA 網路驅動程式,支援 Compute Engine 執行個體之間的遠端直接記憶體存取 (RDMA),可提供低延遲的可靠訊息傳遞功能。

在本教學課程中,您將:

  • 如要將 H4D 執行個體設為使用 Cloud RDMA,請完成本節中的步驟。
  • 如果不想使用 Cloud RDMA,可以略過本節,改用預設網路。

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

操作指南

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

指令碼

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

  1. 選用:執行指令碼前,請列出 Falcon 虛擬私有雲網路設定檔,確認有可用的設定檔。
      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 將執行個體放在特定區塊,請略過這個步驟,並在建立執行個體範本時,於預留項目親和性中提供區塊名稱。

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

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--type=high-throughput 旗標:

    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 放置在同一個子區塊中,請按照下列步驟操作:SUBBLOCK
    • 如要將 VM 放在同一個區塊,請按照下列步驟操作:BLOCK
    • 如要將 VM 放在同一個叢集中: CLUSTER
    注意:縮短最大距離可能會降低 VM 可用性。詳情請參閱「 拓撲距離上限屬性」。
  • 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,請在要求中指定 maxTopologyDistancetype 欄位,如下所示:

    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:工作負載政策的名稱。
  • TOPOLOGY_DISTANCE:拓撲距離上限。請指定下列其中一個值:
    • 如要將 VM 放置在同一個子區塊中,請按照下列步驟操作:SUBBLOCK
    • 如要將 VM 放在同一個區塊,請按照下列步驟操作:BLOCK
    • 如要將 VM 放在同一個叢集中,請按照下列步驟操作:CLUSTER
    注意:縮短最大距離可能會降低 VM 可用性。詳情請參閱「拓撲距離上限屬性」。

建立執行個體範本

如要使用「彈性啟動」消耗量選項,請建立空白 MIG,然後為該 MIG 建立規模調整要求。當您要求的容量可用時,Compute Engine 會佈建該容量,並在 MIG 中建立執行個體。取得最多七天的資源。

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

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 介面的標準虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --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 分鐘至 7 天之間。

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 介面的標準虛擬私有雲網路和子網路時使用的名稱前置字元。

    如果使用預設網路,請只加入一個 --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 秒,即七天) 之間。

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

建立含有大小調整要求的 MIG

如要同時建立所有要求的彈性啟動執行個體,請建立 MIG,然後在 MIG 中建立規模調整要求,如本節所述。

建立 MIG

如要建立 MIG,請選取下列任一選項:

gcloud

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

  • 如要建立可用區 MIG,請使用下列 instance-groups managed create 指令

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --default-action-on-vm-failure=do-nothing \
            --workload-policy=WORKLOAD_POLICY_URL \
            --zone=ZONE
        
  • 如要建立地區 MIG,請使用下列 instance-groups managed create 指令

        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
        

如要將工作負載政策套用至 MIG,請在指令中加入 --workload-policy 旗標

REST

請按照下列步驟建立可用區或區域性 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",
            "targetSize": 0,
            "instanceLifecyclePolicy": {
                "defaultActionOnFailure": "DO_NOTHING"
            },
            "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",
            "targetSize": 0,
            "distributionPolicy": {
              "targetShape": "ANY_SINGLE_ZONE",
              "zones": [
                {
                "zone": "projects/PROJECT_ID/zones/ZONE"
                }
              ]
            },
            "updatePolicy": {
              "instanceRedistributionType": "NONE"
            },
            "instanceLifecyclePolicy": {
              "defaultActionOnFailure": "DO_NOTHING"
            },
            "resourcePolicies": {
              "workloadPolicy": "WORKLOAD_POLICY_URL"
            }
          }
         

如要將工作負載政策套用至 MIG,請在要求內容中加入 resourcePolicies.workloadPolicy 欄位

建立大小調整要求

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

gcloud

建立大小調整要求,步驟如下:

  • 如要在區域 MIG 中建立調整大小要求,請使用 instance-groups managed resize-requests create 指令,如下所示:

        gcloud compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --zone=ZONE
        
  • 如要在區域 MIG 中建立調整大小要求,請使用 beta instance-groups managed resize-requests create 指令,如下所示:

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

如要將工作負載政策套用至 MIG,請在指令中加入 --workload-policy 旗標

REST

在可用區或區域 MIG 中建立規模調整要求,方法如下:

如要將工作負載政策套用至 MIG,請在要求內容中加入 resourcePolicies.workloadPolicy 欄位

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

刪除 Google Cloud 專案:

gcloud projects delete PROJECT_ID

刪除資源

  1. 刪除 MIG 中的大小調整要求

  2. 刪除 MIG 和執行個體

  3. 如果執行個體範本中磁碟的自動刪除狀態設為 False,刪除 VM 執行個體時,系統不會自動刪除磁碟。你可以透過下列任一方式刪除磁碟:

    控制台

    1. 前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。

    前往「Disks」(磁碟) 頁面

    1. 選取包含您在本教學課程中建立磁碟的資料列。確認每個磁碟的「In use by」(使用者) 欄都是空白。

    2. 依序點選 「Delete」(刪除) 和「Delete」(刪除) 確認操作。

    gcloud

    使用 gcloud compute disks delete指令

    gcloud compute disks delete DISK_NAME \
        --project PROJECT_ID --zone ZONE
    

    更改下列內容:

    • DISK_NAME :要刪除的磁碟名稱
    • PROJECT_ID:磁碟所在專案的 ID
    • ZONE:磁碟的可用區

    REST

    使用 disks.delete 方法刪除磁碟。

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME 
    

    更改下列內容:

    • PROJECT_ID:磁碟所在專案的 ID
    • ZONE:磁碟的可用區
    • DISK_NAME :要刪除的磁碟名稱
  4. 刪除網路

  5. 刪除執行個體範本

後續步驟