建立 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. 登入 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,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色

    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,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色

    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 執行個體。

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

  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,可以略過本節,改用預設網路。

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

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

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

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

操作指南

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

指令碼

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

  1. 選用:執行指令碼前,請列出 Falcon 虛擬私有雲網路設定檔,確認是否有可用的設定檔。
      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
    注意:如果縮短最大距離,虛擬機器可用性的機率可能會降低。詳情請參閱「 拓撲距離上限屬性」。
  • 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 中的每個執行個體指定執行個體和耗用量屬性,請使用下列其中一種方法建立執行個體範本:

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 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的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 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的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 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的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 所在的區域。

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

REST

在這個步驟中,建立 MIG 的要求會使用工作負載政策指定 VM 放置位置。如果不想使用工作負載政策,請從要求主體中移除 resourcePolicies.workloadPolicy 欄位。

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

  • 如要在可用區 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 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的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 替換為以半形逗號分隔的執行個體名稱清單。您提供的名稱數量,決定了要透過這項調整大小要求建立的執行個體數量。

如要將工作負載政策套用至 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. 刪除執行個體範本

後續步驟