為 VM 建立及套用分散式配置政策

本文說明如何建立並套用分散式配置政策,提高虛擬機器 (VM) 執行個體的可靠性。如要進一步瞭解刊登位置政策,包括相關限制和價格,請參閱刊登位置政策總覽

分散式配置方式政策會指定執行個體應分散在不同的可用性網域。這項分配作業有助於減輕特定位置的干擾 (例如硬體錯誤),並在執行大規模、分散式和複製的工作負載 (例如 Hadoop 分散式檔案系統 (HDFS)、Cassandra 或 Kafka) 時相當實用。

事前準備

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

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

    Console

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

    gcloud

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

      gcloud init

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

    2. Set a default region and zone.

    REST

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

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

      gcloud init

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

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

必要的角色

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

這個預先定義的角色具備建立及將擴散配置政策套用至執行個體所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立並將擴散配置政策套用至執行個體,必須具備下列權限:

  • 如要建立刊登位置政策,請對專案具備 compute.resourcePolicies.create 權限。
  • 如要將配置政策套用至現有執行個體: compute.instances.addResourcePolicies 專案
  • 如何建立執行個體:
    • 專案的 compute.instances.create 權限
    • 如要使用自訂映像檔建立 VM,請按一下映像檔上的 compute.images.useReadOnly
    • 如要使用快照建立 VM,請按一下快照上的 compute.snapshots.useReadOnly
    • 如要使用執行個體範本建立 VM,請按一下執行個體範本上的 compute.instanceTemplates.useReadOnly
    • 如要將舊版網路指派給 VM:專案的 compute.networks.use 權限
    • 如要為 VM 指定靜態 IP 位址:專案的 compute.addresses.use 權限
    • 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中啟用 compute.networks.useExternalIp
    • 為 VM 指定子網路:專案或所選子網路的 compute.subnetworks.use
    • 使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM,請在專案或所選子網路上擁有 compute.subnetworks.useExternalIp 權限
    • 如要為專案中的 VM 設定 VM 執行個體中繼資料,請執行下列指令:compute.instances.setMetadata
    • 如要為 VM 設定標記,請在 VM 上執行 compute.instances.setTags
    • 如要為 VM 設定標籤,請在 VM 上執行下列步驟:compute.instances.setLabels
    • 如要設定 VM 使用的服務帳戶,請在 VM 上執行 compute.instances.setServiceAccount
    • 如要為 VM 建立新磁碟,請取得專案的 compute.disks.create 權限
    • 如要以唯讀或讀寫模式連結現有磁碟:磁碟的 compute.disks.use 權限
    • 如要以唯讀模式連接現有磁碟,請對磁碟擁有 compute.disks.useReadOnly 權限
  • 如要建立執行個體範本: 按一下專案的 compute.instanceTemplates.create
  • 如要建立代管執行個體群組 (MIG): 按一下專案上的 compute.instanceGroupManagers.create

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

建立分散配置政策

除非您想測試將分散式刊登位置政策套用至執行個體,否則建議建立含有兩個以上可用性網域的分散式刊登位置政策。 Google Cloud 這樣可降低單一硬體錯誤影響所有執行個體的風險。詳情請參閱「關於散布刊登位置政策」。

如要建立分散式配置政策,請選取下列任一選項:

gcloud

如要建立擴散放置政策,請使用 gcloud compute resource-policies create group-placement 指令,並加上 --availability-domain-count 旗標。

gcloud compute resource-policies create group-placement POLICY_NAME \
    --availability-domain-count=DOMAIN_COUNT \
    --region=REGION

更改下列內容:

  • POLICY_NAME:擴展刊登位置政策的名稱。

  • DOMAIN_COUNT:放置執行個體的可用性網域數量。此值的長度須介於 18 個半形字元。

  • REGION:要建立放置群組政策的區域。

REST

如要建立擴散配置政策,請對 resourcePolicies.insert 方法發出 POST 要求。在要求主體中,請納入 availabilityDomainCount 欄位。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
  "name": "POLICY_NAME",
  "groupPlacementPolicy": {
    "availabilityDomainCount": DOMAIN_COUNT
  }
}

更改下列內容:

  • PROJECT_ID:要在其中建立刊登位置政策的專案 ID。

  • REGION:要建立放置群組政策的區域。

  • POLICY_NAME:擴展刊登位置政策的名稱。

  • DOMAIN_COUNT:放置執行個體的可用性網域數量。此值的長度須介於 18 個半形字元。

套用分散配置政策

您可以將分散式放置政策套用至現有的 VM 或 MIG,也可以在建立執行個體、執行個體範本或 MIG 時套用。

如要將分散式配置政策套用至 Compute Engine 資源,請選取下列其中一種方法:

將分散式放置群組政策套用至 VM 後,您可以查看 VM 詳細資料,並檢查 availabilityDomain 欄位的值,確認 VM 所在的可用性網域。

將政策套用至現有 VM

將分散式放置群組政策套用至現有 VM 前,請考慮下列事項:

  • 如果分散式配置政策指定多個可用性網域,您可以將政策套用至 VM,不必停止 VM。不過,虛擬機器可能需要遷移至其他可用性網域。在此程序中,Compute Engine 會根據 VM 的主機維護政策停止或即時遷移 VM。

  • VM 和分散式配置政策必須位於相同區域。 舉例來說,如果配置方式政策位於 us-central1 地區,則 VM 必須位於 us-central1 地區的可用區。如要將 VM 遷移至其他地區,請參閱「在區域或地區之間移動 VM」。

如要指定放置 VM 的可用性網域,請更新 VM 的屬性,將放置政策套用至 VM。更新 VM 屬性時,請務必加入 resourcePoliciesscheduling.availabilityDomain 欄位。

如要將分散式放置政策套用至現有 VM,請選取下列任一選項:

gcloud

如要將分散式放置政策套用至現有 VM,請使用 gcloud compute instances add-resource-policies 指令

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

更改下列內容:

  • VM_NAME:現有 VM 的名稱。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

  • ZONE:VM 所在的可用區。

REST

如要將分散式放置政策套用至現有 VM,請對 instances.addResourcePolicies 方法發出 POST 要求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

更改下列內容:

  • PROJECT_ID:擴散放置群組政策和 VM 所在的專案 ID。

  • ZONE:VM 所在的可用區。

  • VM_NAME:現有 VM 的名稱。

  • REGION:散布位置政策所在的區域。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

在建立 VM 時套用政策

您只能在與放置政策相同的區域中,建立指定分散式放置政策的 VM。

如要建立指定分散式配置政策的 VM,請選取下列其中一個選項:

gcloud

如要建立指定分散式放置政策的 VM,請使用 gcloud compute instances create 指令搭配 --resource-policies 旗標。

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

更改下列內容:

  • VM_NAME:要建立的 VM 名稱。

  • MACHINE_TYPE:VM 的機器類型。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

  • ZONE:要建立 VM 的可用區。

如要指定建立 VM 的可用性網域,請加入 --availability-domain 旗標。

gcloud compute instances create VM_NAME \
    --availability-domain=DOMAIN_NUMBER \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

DOMAIN_NUMBER 替換為要放置 VM 的可用性網域編號。這個值必須介於 1 和試算表刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

REST

如要建立指定分散式放置政策的 VM,請對 instances.insert 方法發出 POST 要求。在要求主體中,請納入 resourcePolicies 欄位。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

更改下列內容:

  • PROJECT_ID:散布位置政策所在的專案 ID。

  • ZONE:要在哪個可用區建立 VM,以及機器類型所在的可用區。您只能在擴散刊登位置政策的區域內指定可用區。

  • VM_NAME:要建立的 VM 名稱。

  • MACHINE_TYPE:VM 的機器類型。

  • IMAGE_PROJECT:包含映像檔的映像檔專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • REGION:散布位置政策所在的區域。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

如要指定建立 VM 的可用性網域,請在要求主體中加入 availabilityDomain 欄位。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ],
  "scheduling": {
    "availabilityDomain": DOMAIN_NUMBER
  }
}

DOMAIN_NUMBER 替換為要放置 VM 的可用性網域編號。這個值必須介於 1 和試算表刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

如要進一步瞭解如何設定 VM 建立選項,請參閱「建立及啟動 VM 執行個體」一文。

大量建立執行個體時套用政策

大量建立指定分散式放置政策的執行個體前,請確認下列事項:

  • 您只能在與刊登位置政策相同的地區,大量建立指定分散式刊登位置政策的執行個體。

  • 使用分散式放置政策大量建立執行個體時,您可以選擇指定要建立執行個體的可用性網域。請避免在單一網域中建立所有執行個體。否則,單一硬體錯誤可能會影響所有執行個體,您無法降低這類風險。

如要大量建立執行個體,並指定分散式配置政策,請選取下列任一選項:

gcloud

如要大量建立執行個體並指定分散式放置政策,請使用 gcloud compute instances bulk create 指令搭配 --resource-policies 旗標。

舉例來說,如要在單一區域中大量建立執行個體,並指定執行個體的名稱模式,請執行下列指令:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

更改下列內容:

  • COUNT:要建立的執行個體數量。

  • MACHINE_TYPE:執行個體的機器類型。

  • NAME_PATTERN:執行個體的名稱模式。如要取代 VM 名稱中的一連串數字,請使用一連串井字號 (#) 字元。舉例來說,如果名稱模式為 vm-#,就會產生名稱開頭為 vm-1vm-2 的執行個體,並持續產生執行個體,直到達到 COUNT 指定的執行個體數量為止。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

  • ZONE:要大量建立執行個體的可用區。

如要指定大量建立執行個體時所在的可用性網域,請加入 --availability-domain 旗標。

gcloud compute instances bulk create \
    --availability-domain=DOMAIN_NUMBER \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern=NAME_PATTERN \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

DOMAIN_NUMBER 替換為要放置 VM 的可用性網域編號。這個值必須介於 1 和試算表刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

REST

如要大量建立執行個體並指定分散式配置政策,請對 instances.bulkInsert 方法發出 POST 要求。在要求主體中,請納入 resourcePolicies 欄位。

舉例來說,如要在單一可用區中大量建立執行個體,並指定執行個體的名稱模式,請發出下列 POST 要求:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

更改下列內容:

  • PROJECT_ID:散布位置政策所在的專案 ID。

  • ZONE:要大量建立執行個體的可用區。

  • COUNT:要建立的執行個體數量。

  • NAME_PATTERN:執行個體的名稱模式。如要取代 VM 名稱中的一連串數字,請使用一連串井字號 (#) 字元。舉例來說,如果名稱模式為 vm-#,就會產生名稱開頭為 vm-1vm-2 的執行個體,並持續產生執行個體,直到達到 COUNT 指定的執行個體數量為止。

  • MACHINE_TYPE:執行個體的機器類型。

  • IMAGE_PROJECT:包含映像檔的映像檔專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

如要指定大量建立執行個體時所在的可用性網域,請在要求主體中加入 availabilityDomain 欄位。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert

{
  "count": "COUNT",
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

DOMAIN_NUMBER 替換為要放置 VM 的可用性網域編號。這個值必須介於 1 和試算表刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

如要進一步瞭解如何設定選項來大量建立執行個體,請參閱「大量建立執行個體」。

在建立執行個體範本時套用政策

建立指定分散式放置策略的執行個體範本前,請先考量下列事項:

  • 如要建立區域執行個體範本,範本和分散式放置政策必須位於相同區域。否則,系統會無法建立執行個體範本。

  • 請避免在單一可用性網域中建立所有執行個體。否則,單一硬體錯誤可能會影響所有執行個體,您也無法降低這類風險。

建立指定分散式放置策略的執行個體範本後,您可以使用該範本執行下列操作:

如要建立地區執行個體範本和新的分散式放置政策,並使用八個可用性網域,請使用 Google Cloud 控制台。如要建立全域或區域執行個體範本,並指定現有的分散式放置政策,請使用 gcloud CLI 或 REST API:

控制台

  1. 前往 Google Cloud 控制台的「Instance templates」(執行個體範本) 頁面。

    前往「Instance templates」(執行個體範本)

  2. 按一下「建立執行個體範本」。「建立執行個體範本」頁面隨即顯示。

  3. 在「Region」(區域) 欄位中,指定要建立分散式放置群組政策和執行個體範本的區域。

  4. 在「機器設定」部分,指定機器系列和類型。

  5. 在「Placement policy」(放置政策) 部分的「Placement policy」(放置政策) 清單中,選取「Spread」(分散)

  6. 點選「建立」

gcloud

如要建立指定分散式配置政策的執行個體範本,請使用 gcloud compute instance-templates create 指令搭配 --resource-policies 旗標。

舉例來說,如要建立全域執行個體範本,並指定分散式放置政策,請執行下列指令:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

更改下列內容:

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。

  • MACHINE_TYPE:使用執行個體範本建立的執行個體所用機型。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

如要指定建立執行個體的可用性網域,請選擇性地加入 --availability-domain 旗標。

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --availability-domain=DOMAIN_NUMBER  \
    --machine-type=MACHINE_TYPE \
    --resource-policies=POLICY_NAME

DOMAIN_NUMBER 替換為要建立執行個體的可用性網域編號。這個值必須介於 1 和刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

REST

如要建立指定分散式放置政策的執行個體範本,請對下列其中一種方法發出 POST 要求:

在要求主體中,指定 resourcePolicies 欄位。

舉例來說,如要建立指定分散式放置群組政策的全域執行個體範本,請發出下列 POST 要求:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ]
  }
}

更改下列內容:

  • PROJECT_ID:散布位置政策所在的專案 ID。

  • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。

  • IMAGE_PROJECT:包含映像檔的映像檔專案,例如 debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。

  • IMAGE:指定下列其中一項:

    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20240617

    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

  • MACHINE_TYPE:使用執行個體範本建立的執行個體所用機器類型。

  • POLICY_NAME:現有擴展刊登位置政策的名稱。

如要指定建立執行個體的可用性網域,請在要求主體中加入 availabilityDomain 欄位。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "resourcePolicies": [
      "POLICY_NAME"
    ],
    "scheduling": {
      "availabilityDomain": DOMAIN_NUMBER
    }
  }
}

DOMAIN_NUMBER 替換為要建立執行個體的可用性網域編號。這個值必須介於 1 和刊登位置政策中指定的網域數量之間。如要驗證放送位置政策中的網域數量,請查看放送位置政策的詳細資料

如要進一步瞭解如何設定選項來建立執行個體範本,請參閱「建立執行個體範本」。

將政策套用至 MIG 中的執行個體

建立執行個體範本並指定分散式放置政策後,您可以使用該範本執行下列操作:

在建立 MIG 時套用政策

只有在執行個體與刊登位置政策位於相同區域時,您才能建立指定分散式刊登位置政策的執行個體。

如要使用指定分散式放置政策的執行個體範本建立 MIG,請選取下列任一選項:

gcloud

如要使用指定分散式放置政策的執行個體範本建立 MIG,請使用 gcloud compute instance-groups managed create 指令

舉例來說,如要使用指定分散式放置策略的全域執行個體範本建立區域 MIG,請執行下列指令:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size=SIZE \
    --template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_GROUP_NAME:要建立的 MIG 名稱。

  • SIZE:MIG 的大小。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,該範本指定了分散式配置政策。

  • ZONE:要建立 MIG 的可用區,必須位於分散式放置群組政策所在的區域。

REST

如要使用指定分散式放置政策的執行個體範本建立 MIG,請向下列其中一種方法發出 POST 要求:

舉例來說,如要使用指定分散式放置政策的全域執行個體範本建立區域 MIG,請發出 POST 要求,如下所示:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": SIZE,
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
    }
  ]
}

更改下列內容:

  • PROJECT_ID:試算表放置政策和指定放置政策的執行個體範本所在的專案 ID。

  • ZONE:要建立 MIG 的可用區,必須位於分散式放置群組政策所在的區域。

  • INSTANCE_GROUP_NAME:要建立的 MIG 名稱。

  • SIZE:MIG 的大小。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,該範本指定了分散式配置政策。

如要進一步瞭解建立 MIG 的設定選項,請參閱「建立 MIG 的基本情境」。

將政策套用至現有 MIG

只有當現有 MIG 與放置政策位於同一區域,或當區域 MIG 與放置政策位於同一區域的可用區時,您才能將分散式放置政策套用至現有 MIG。

如要更新 MIG,以使用指定分散式放置政策的執行個體範本,請選取下列其中一個選項:

gcloud

如要更新 MIG,以使用指定分散式放置政策的執行個體範本,請使用 gcloud compute instance-groups managed rolling-action start-update 指令

舉例來說,如要更新區域代管執行個體群組,以使用指定分散式放置政策的執行個體範本,並將代管執行個體群組中的現有執行個體,替換為指定範本屬性的新執行個體,請執行下列指令:

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --version=template=INSTANCE_TEMPLATE_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_GROUP_NAME:現有 MIG 的名稱。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,該範本指定了分散式配置政策。

  • ZONE:MIG 所在的可用區。您只能將分散配置政策套用至與配置政策位於同一區域的 MIG。

REST

如要更新 MIG,使其使用指定分散式放置政策的執行個體範本,並自動將範本和放置政策的屬性套用至 MIG 中的現有執行個體,請對下列其中一種方法提出 PATCH 要求:

舉例來說,如要更新區域 MIG,使其使用指定分散式放置政策的全球執行個體範本,並將 MIG 中的現有執行個體替換為指定範本屬性的新執行個體,請發出下列 PATCH 要求:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
}

更改下列內容:

  • PROJECT_ID:您用來建立現有 MIG、分散式配置政策,以及指定分散式配置政策的執行個體範本的專案 ID。

  • ZONE:MIG 所在的可用區。您只能將分散配置政策套用至與配置政策位於同一區域的 MIG。

  • INSTANCE_GROUP_NAME:現有 MIG 的名稱。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,該範本指定了分散式配置政策。

如要進一步瞭解更新 MIG 中執行個體的設定選項,請參閱「更新 MIG 中執行個體的設定並套用新設定」。

後續步驟