建立 MIG,供 HPC 工作負載使用預留項目


本教學課程說明如何建立使用 H4D 機器類型的代管執行個體群組 (MIG)。MIG 會使用取決於預留項目的佈建模式,取得運算資源。

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

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

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

如要建立代管執行個體群組,但不需要建立執行個體的密集部署,請參閱建立代管執行個體群組 (MIG) 的基本情境

目標

  • 為 VM 執行個體預留容量區塊。
  • 選用:建立虛擬私有雲 (VPC) 網路。
  • 選用:建立工作負載政策。
  • 建立執行個體範本。
  • 使用下列任一方法建立 MIG:
    • 建立具有目標大小的 MIG。
    • 建立 MIG 和大小調整要求。
  • 清除您建立的資源。

費用

在本文件中,您會使用下列 Google Cloud的計費元件:

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

初次使用 Google Cloud 的使用者可能符合免費試用資格。

完成本文所述工作後,您可以刪除已建立的資源,避免繼續計費。詳情請參閱清除所用資源一節。

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

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

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

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

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

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

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

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. 預留容量

    如要使用本教學課程中的指令,您必須預留容量,才能在 MIG 中建立執行個體。

    為容量區塊建立未來預留項目

    這項動作可讓您預留特定時間範圍的容量,從您選擇的特定日期和時間開始。預留項目會預留區塊叢集中的容量子區塊,因此可密集部署 VM 執行個體。

    如要為密集部署建立未來預留項目,請按照下列步驟操作:

    1. 請按照 AI Hypercomputer 文件中的程序,與帳戶團隊聯絡以預留容量。日後提出預訂要求時,請提供文件所載資訊,但下列情況除外:

      • 機器類型:指定 H4D 機器類型 h4d-highmem-192-lssd
      • 區域:指定 H4D 執行個體可用的其中一個區域,如「可用地區和區域」 表格所示。如要只顯示 H4D 適用的可用區,請在「選取機器系列」清單中選取「H4D」。
      • 維護作業排程類型:如果是 H4D 執行個體,您可以指定 GROUPEDINDEPENDENT
      • 預訂作業模式:針對 H4D 執行個體,請指定值 HIGHLY_AVAILABLE_CAPACITY
    2. 系統會在容量交付前自動增加配額。你無須採取任何行動。

    3. 建立執行個體範本時,請指定「取決於預留項目」的佈建模式。MIG 中的 VM 執行個體是從預留容量佈建。

    無論您是否在整個預訂期間使用預訂資源,系統都會收取整個預訂期間的費用。詳情請參閱「預留項目計費」。

    在日曆模式中建立未來預留項目

    如果需要使用預留容量的時間少於 90 天,可以使用 Dynamic Workload Scheduler 在日曆模式中建立未來預留項目。如要取得未來的預留資源,請按照下列步驟操作:

    1. 搜尋可用容量並預留資源:使用 Google Cloud 控制台、gcloud CLI 或 Compute Engine API。
    2. 系統不會收取配額費用,您也不需要採取任何行動。
    3. 建立執行個體範本時,請指定「取決於預留項目」的佈建模式。MIG 中的 VM 執行個體是從預留容量佈建。

    無論您是否在整個預訂期間使用預訂資源,系統都會收取整個預訂期間的費用。詳情請參閱Dynamic Workload Scheduler 定價

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

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

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

    在本教學課程中,您將:

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

    啟用 RDMA 的執行個體至少需要兩個網路介面 (NIC):

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

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

    如要設定 Falcon VPC 網路供執行個體使用,您可以按照文件中的操作說明,或使用提供的指令碼。

    操作指南

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

    指令碼

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

    1. 選用:執行指令碼前,請列出 RDMA 網路設定檔,確認是否有可用的設定檔。
        gcloud beta 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 standard 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 network for the RDMA over Falcon network interface
        gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
            --network-profile=ZONE-vpc-falcon \
            --subnet-mode custom
      
        # Create a subnet for the RDMA network
        gcloud beta 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:要建立網路的區域。建立 RDMA 網路時,這必須對應至為 --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 中的每個執行個體指定執行個體和耗用屬性,請使用下列其中一種方法建立執行個體範本:

    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=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

    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":"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

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

    建立 MIG

    您可以根據工作負載需求,在下列任一設定中建立 MIG:

    建立具有目標大小的 MIG

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

    如要建立具有目標大小的 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:選用:工作負載政策的網址。如果不想使用工作負載政策,可以移除 --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:選用:工作負載政策的網址。如果不想使用工作負載政策,可以移除 resourcePolicies.workloadPolicy 欄位。

    建立 MIG 和大小調整要求

    如要同時建立所有要求的執行個體,請建立不含任何執行個體的 MIG。建立空白 MIG 後,請在 MIG 中建立大小調整要求。如果資源充足,可一次建立所有執行個體,規模調整要求就會將執行個體新增至 MIG。

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

    gcloud

    在這個步驟中,建立 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 \
            POPULATION_METHOD \
            --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 \
            POPULATION_METHOD \
            --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:選用:工作負載政策的網址。如果不想使用工作負載政策,可以移除 --workload-policy 旗標。
    • ZONE:要建立 MIG 的可用區。您也必須為區域 MIG 指定可用區。這個區域必須是包含虛擬私有雲網路設定檔的區域,且必須是提供機型的區域。詳情請參閱「限制」一節。
    • RESIZE_REQUEST_NAME:規模調整要求名稱,在指定 MIG 中不得重複。否則建立大小調整要求就會失敗。
    • POPULATION_METHOD:將執行個體新增至 MIG 的方法。請使用下列其中一種方法:

      • --resize-by=COUNT:一次將指定數量的執行個體新增至 MIG。執行個體名稱會自動產生。
      • --instances=INSTANCE_NAME_LIST:一次將指定名稱的執行個體新增至 MIG。將 INSTANCE_NAME_LIST 替換為以半形逗號分隔的執行個體名稱清單。您提供的名稱數量決定了要透過這項調整大小要求建立的執行個體數量。
    • REGION:MIG 所在的地區。

    REST

    在這個步驟中,建立 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",
          POPULATION_METHOD
        }
        
    • 如要在區域 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",
          POPULATION_METHOD
        }
        

    更改下列內容:

    • 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:選用:工作負載政策的網址。如果不想使用工作負載政策,可以移除 resourcePolicies.workloadPolicy 欄位。
    • RESIZE_REQUEST_NAME:規模調整要求名稱,在指定 MIG 中不得重複。否則建立大小調整要求就會失敗。
    • POPULATION_METHOD:將執行個體新增至 MIG 的方法。請使用下列其中一種方法:

      • "resizeBy":COUNT:將 COUNT 替換為要一次新增至 MIG 的執行個體數量。系統會自動產生執行個體名稱。
      • "instanceNames":INSTANCE_NAME_LIST:一次將指定名稱的執行個體新增至 MIG。將 INSTANCE_NAME_LIST 替換為以半形逗號分隔的執行個體名稱清單。您提供的名稱數量,決定了要透過這項調整大小要求建立的執行個體數量。

    清除所用資源

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

    刪除專案

    Delete a Google Cloud project:

    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. 刪除執行個體範本

    後續步驟