使用密集配置政策來縮短延遲時間

本文說明如何建立及套用密集配置政策,減少 Compute Engine 執行個體之間的網路延遲時間。如要進一步瞭解配置政策,包括支援的機器系列、限制和定價,請參閱「配置政策總覽」。

密集配置政策會指定 Compute Engine 實際將執行個體放置在更靠近彼此的位置。執行高效能運算 (HPC)、機器學習 (ML) 或資料庫伺服器工作負載時,這項功能有助於提升效能,並減少執行個體之間的網路延遲。

事前準備

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

    請根據您打算如何使用本頁範例,選取對應的分頁標籤:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。

    gcloud

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

      gcloud init

      如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。

  • 設定預設區域和可用區。
  • REST

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

      安裝 Google Cloud CLI。

      如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。

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

必要的角色

如要取得建立密集配置政策並套用至運算執行個體所需的權限,請要求管理員授予您專案的下列 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
    • 如要在使用舊版網路時,為 VM 指派外部 IP 位址,請在專案上執行 compute.networks.useExternalIp
    • 如要為 VM 指定子網路:compute.subnetworks.use 專案或所選子網路
    • 如要在使用虛擬私有雲網路時,為 VM 指派外部 IP 位址,請在專案或所選子網路上,指派 compute.subnetworks.useExternalIp 角色
    • 如要為專案中的 VM compute.instances.setMetadata 設定 VM 執行個體中繼資料,請按照下列步驟操作:
    • 如要設定 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.reservations.create
  • 如要建立執行個體範本,請在專案中執行 compute.instanceTemplates.create
  • 如要建立 MIG: compute.instanceGroupManagers.create 專案
  • 如要查看運算執行個體的詳細資料,請在專案中執行 compute.instances.get

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

建立密集配置政策

建立密集配置政策前,請先考量以下事項:

  • 如要將密集配置政策套用至 M3、M2、M1、N2D 或 N2 以外的運算執行個體,請根據機型執行下列任一操作:

    • 如果是獨立式 A4X Max 或 A4X 執行個體,您必須指定在同一個子區塊中建立運算執行個體,才能使用 NVLink 網域,詳情請參閱本節。

    • 對於支援密集配置政策的其他運算執行個體,您可以視需要指定距離上限值。

  • 如要將密集配置政策套用至 2025 年 10 月 1 日前建立的 A3 Mega、A3 High 或 A3 Edge 執行個體,請與帳戶團隊聯絡。

如要建立密集配置政策,請選取下列其中一個選項:

gcloud

  • 如要將密集配置政策套用至 M3、M2、M1、N2D 或 N2 執行個體,或建立未指定距離上限值的政策,請使用 gcloud compute resource-policies create group-placement 指令和 --collocation=collocated 旗標。

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --region=REGION
    

    更改下列內容:

    • POLICY_NAME:密集配置政策的名稱。

    • REGION:要建立配置政策的區域。

  • 如要將密集配置政策套用至獨立 A4X Max 或 A4X 執行個體,請使用 gcloud compute resource-policies create group-placement 指令,並加上 --collocation=collocated 和 --gpu-topology=1x72 旗標。

    gcloud compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --gpu-topology=1x72 \
        --region=REGION
    
  • 如要將具有最大距離值的密集配置政策套用至支援的機器系列,請使用 gcloud beta compute resource-policies create group-placement 指令,並搭配 --collocation=collocated 和 --max-distance 旗標。

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
        --collocation=collocated \
        --max-distance=MAX_DISTANCE \
        --region=REGION
    

更改下列內容:

  • POLICY_NAME:密集配置政策的名稱。

  • MAX_DISTANCE:運算執行個體的距離設定上限。值必須介於 1 (指定將運算執行個體放在同一個子區塊,盡可能降低網路延遲) 和 3 (指定將運算執行個體放在同一個叢集) 之間。如要將密集配置政策套用至預留項目,則只能指定 3 或 2 的值。

  • REGION:要建立配置政策的區域。

REST

  • 如要將密集配置政策套用至 M3、M2、M1、N2D 或 N2 執行個體,或建立未指定距離上限值的政策,請向 resourcePolicies.insert 方法提出 POST 要求。在要求主體中,加入 collocation 欄位並設為 COLLOCATED。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED"
      }
    }
    
  • 如要將密集配置政策套用至獨立 A4X Max 或 A4X 執行個體,請向 resourcePolicies.insert 方法傳送 POST 要求。在要求主體中,將 collocation 欄位設為 COLLOCATED,並將 gpuTopology 欄位設為 1x72。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "gpuTopology": "1x72"
      }
    }
    
  • 如要將具有最大距離值的密集配置政策套用至支援的機器系列,請向 beta.resourcePolicies.insert 方法傳送 POST 要求。在要求主體中加入下列內容:

    • collocation 欄位設為 COLLOCATED。

    • maxDistance 欄位。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    
    {
      "name": "POLICY_NAME",
      "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": MAX_DISTANCE
      }
    }
    

更改下列內容:

  • PROJECT_ID:要建立配置政策的專案 ID。

  • REGION:要建立配置政策的區域。

  • MAX_DISTANCE:運算執行個體的距離設定上限。值必須介於 1 (指定將運算執行個體放在同一個子區塊,盡可能降低網路延遲時間) 和 3 (指定將運算執行個體放在同一個叢集) 之間。如要將密集配置政策套用至預留項目,則只能指定 3 或 2 的值。

套用密集配置政策

您可以將密集配置政策套用至現有的運算執行個體或代管執行個體群組 (MIG),或是在建立運算執行個體、執行個體範本、MIG 或運算執行個體預留項目時套用。

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

將密集配置政策套用至執行個體後,您可以驗證執行個體的實體位置,確認其與指定相同配置政策的其他執行個體之間的關係。

將政策套用至現有執行個體

將密集配置政策套用至現有運算執行個體前,請務必確認下列事項:

否則,將密集配置政策套用至運算執行個體時會失敗。如果運算執行個體已指定配置政策,而您想加以取代,請改為參閱「取代運算執行個體中的配置政策」。

如要將密集配置政策套用至現有運算執行個體,請選取下列其中一個選項:

gcloud

  1. 停止運算執行個體。

  2. 如要將密集配置政策套用至現有的運算執行個體,請使用 gcloud compute instances add-resource-policies 指令。

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

    更改下列內容:

    • INSTANCE_NAME:現有運算執行個體的名稱。

    • POLICY_NAME:現有密集配置政策的名稱。

    • ZONE:運算執行個體所在的可用區。

  3. 重新啟動執行個體。

REST

  1. 停止運算執行個體。

  2. 如要將密集配置政策套用至現有的運算執行個體,請向 instances.addResourcePolicies 方法傳送 POST 要求。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addResourcePolicies
    
    {
      "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
    }
    

    更改下列內容:

    • PROJECT_ID:密集配置政策和運算執行個體所在的專案 ID。

    • ZONE:運算執行個體所在的可用區。

    • INSTANCE_NAME:現有運算執行個體的名稱。

    • REGION:密集配置政策所在的區域。

    • POLICY_NAME:現有密集配置政策的名稱。

  3. 重新啟動運算執行個體。

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

建立運算執行個體時,只能指定與配置政策位於相同區域的密集配置政策。

如要建立指定密集配置政策的運算執行個體,請選取下列其中一個選項:

gcloud

如要建立指定密集配置政策的運算執行個體,請使用 gcloud compute instances create 指令,並搭配 --maintenance-policy 和 --resource-policies 旗標。

gcloud compute instances create INSTANCE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

更改下列內容:

  • INSTANCE_NAME:要建立的運算執行個體名稱。

  • MACHINE_TYPE:密集配置政策支援的機型。

  • MAINTENANCE_POLICY:運算執行個體的主機維護政策。如果您指定的密集配置政策使用的最大距離值為 1 或 2,或者您選擇的機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

  • POLICY_NAME:現有密集配置政策的名稱。

  • ZONE:要建立運算執行個體的可用區。

REST

如要建立指定密集配置政策的運算執行個體,請向 instances.insert 方法發出 POST 要求。在要求主體中,加入 onHostMaintenance 和 resourcePolicies 欄位。

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

{
  "name": "INSTANCE_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": {
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

更改下列內容:

  • PROJECT_ID:密集配置政策所在的專案 ID。

  • ZONE:要建立運算執行個體的可用區,以及機器類型所在的可用區。您只能指定密集配置政策所在區域中的可用區。

  • INSTANCE_NAME:要建立的運算執行個體名稱。

  • MACHINE_TYPE:密集配置政策支援的機型。

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

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

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

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

  • REGION:密集配置政策所在的區域。

  • POLICY_NAME:現有密集配置政策的名稱。

  • MAINTENANCE_POLICY:運算執行個體的主機維護政策。如果您指定的密集配置政策使用的最大距離值為 1 或 2,或者您選擇的機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

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

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

您只能在密集配置政策所在的區域,使用該政策大量建立運算執行個體。

如要大量建立指定密集配置政策的運算執行個體,請選取下列其中一個選項:

gcloud

如要大量建立指定密集配置政策的運算執行個體,請使用 gcloud compute instances bulk create 指令,並搭配 --maintenance-policy 和 --resource-policies 旗標。

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

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

更改下列內容:

  • COUNT:要建立的運算執行個體數量,不得超過指定密集配置政策支援的運算執行個體數量上限。

  • MACHINE_TYPE:密集配置政策支援的機型。

  • MAINTENANCE_POLICY:運算執行個體的主機維護政策。如果您指定的密集配置政策使用的最大距離值為 1 或 2,或者您選擇的機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

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

  • POLICY_NAME:現有密集配置政策的名稱。

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

REST

如要大量建立指定密集配置政策的運算執行個體,請向 instances.bulkInsert 方法發出 POST 要求。在要求主體中,加入 onHostMaintenance 和 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": [
      "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

更改下列內容:

  • PROJECT_ID:密集配置政策所在的專案 ID。

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

  • COUNT:要建立的運算執行個體數量,不得超過指定密集配置政策支援的執行個體數量上限。

  • NAME_PATTERN:運算執行個體的名稱模式。如要取代執行個體名稱中的數字序列,請使用井字號 (#) 字元序列。舉例來說,如果名稱模式使用 vm-#,系統會產生名稱開頭為 vm-1、vm-2 的運算執行個體,並持續產生到 COUNT 指定的運算執行個體數量。

  • MACHINE_TYPE:密集配置政策支援的機型。

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

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

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

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

  • REGION:密集配置政策所在的區域。

  • POLICY_NAME:現有密集配置政策的名稱。

  • MAINTENANCE_POLICY:執行個體的主機維護政策。如果您指定的密集配置政策使用 1 或 2 的最大距離值,或所選機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

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

在建立預留項目時套用政策

如要建立指定密集配置政策的隨選單一專案預留項目,則必須建立明確指定的預留項目。建立運算執行個體來使用預留項目時,請務必注意下列事項:

  • 運算執行個體必須指定套用至預留項目的相同密集配置政策。

  • 運算執行個體必須明確指定預留項目,才能使用該項目。詳情請參閱「使用特定預留項目的運算執行個體」。

如要建立採用密集配置政策的單一專案預留項目,請選取下列其中一種方法:

如要直接指定屬性,建立採用密集配置政策的單一專案預留項目,請選取下列其中一個選項:

控制台

  1. 前往 Google Cloud 控制台的「Reservations」(預留項目) 頁面。

    前往「Reservations」(預留項目) 頁面

  2. 按一下 「Create reservation」(建立預留項目)。「Create a reservation」(建立預留項目) 頁面隨即顯示。

  3. 在「Name」(名稱) 欄位中,輸入預留項目的名稱。

  4. 在「Region」(區域) 和「Zone」(可用區) 清單中,選取要預留資源的區域和可用區。

  5. 在「Use with VM instance」(用於 VM 執行個體) 區段中,選取「Select specific reservation」(選取特定預留項目)。

  6. 在「VM instances and GPUs」(VM 執行個體和 GPU) 部分,執行下列操作:

    1. 在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入要預留的 VM 數量。

    2. 指定支援密集配置政策的機器系列和類型。

  7. 在「Group placement policy」(群組配置政策) 區段中,按一下「Select or create a group placement policy」(選取或建立群組配置政策) 清單,然後執行下列任一操作:

    • 如要建立密集配置政策,請按照下列步驟操作:

      1. 按一下「Create group placement policy」(建立群組配置政策)。系統隨即會顯示「Create a group placement policy」(建立群組配置政策) 窗格。

      2. 在「Policy name」(政策名稱) 欄位中,輸入政策名稱。

      3. 點選「建立」。

    • 如要選取現有的密集配置政策,請選取與預留執行個體位於相同區域的政策。

  8. 如要建立預留項目,請點選「Create」(建立)。

gcloud

如要直接指定屬性,建立採用密集配置政策的單一專案預留項目,請使用 gcloud compute reservations create 指令,並搭配 --require-specific-reservation 和 --resource-policies=policy 旗標。

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --require-specific-reservation \
    --resource-policies=policy=POLICY_NAME \
    --vm-count=NUMBER_OF_INSTANCES \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:預留項目名稱。

  • MACHINE_TYPE:密集配置政策支援的機型。

  • POLICY_NAME:現有密集配置政策的名稱。

  • NUMBER_OF_INSTANCES:要預留的運算執行個體數量,不得高於指定密集配置政策支援的執行個體數量上限。

  • ZONE:要預留運算執行個體的可用區。您只能在指定密集配置政策的區域中,預留可用區內的運算執行個體。

REST

如要直接指定屬性,建立採用密集配置政策的單一專案預留項目,請向 reservations.insert 方法傳送 POST 要求。在要求主體中,加入 resourcePolicies 欄位,並將 specificReservationRequired 欄位設為 true。

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

{
  "name": "RESERVATION_NAME",
  "resourcePolicies": {
    "policy" : "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  },
  "specificReservation": {
    "count": "NUMBER_OF_INSTANCES",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

更改下列內容:

  • PROJECT_ID:密集配置政策所在的專案 ID。

  • ZONE:要預留運算執行個體的可用區。您只能在指定密集配置政策的區域中,預留可用區內的運算執行個體。

  • RESERVATION_NAME:預留項目名稱。

  • REGION:密集配置政策所在的區域。

  • POLICY_NAME:現有密集配置政策的名稱。

  • NUMBER_OF_INSTANCES:要預留的運算執行個體數量,不得超過指定密集配置政策支援的運算執行個體數量上限。

  • MACHINE_TYPE:密集配置政策支援的機型。

如要進一步瞭解建立單一專案預留項目的設定選項,請參閱「為單一專案建立預留項目」。

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

如要建立區域執行個體範本,範本和密集配置政策必須位於相同區域。否則,建立執行個體範本會失敗。

建立指定密集配置政策的執行個體範本後,您可以使用該範本執行下列操作:

如要建立指定密集配置政策的執行個體範本,請使用下列其中一種方法:

  • 如要使用新的密集配置政策建立區域性執行個體範本,請使用 Google Cloud 控制台。新政策未指定距離值上限,最多可套用至 22 個執行個體。

  • 如要建立全域或區域性執行個體範本,並指定現有的密集配置政策,請使用 gcloud CLI 或 REST API。

如要建立執行個體範本,請選取下列其中一個選項:

控制台

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

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

  2. 按一下「Create instance template」(建立執行個體範本)。「Create an instance template」(建立執行個體範本) 頁面隨即顯示。

  3. 在「Region」(區域) 欄位中,指定要建立密集配置政策和執行個體範本的區域。

  4. 在「Machine configuration」(機器設定) 部分,指定密集配置政策支援的機器系列和類型。

  5. 在「Placement policy」(配置政策) 區段中,從「Placement policy」(配置政策) 清單選取「Compact」(精簡)。選取這個選項後,Google Cloud 控制台會自動產生密集配置政策,不含距離上限值,且最多支援 22 個執行個體。

  6. 點選「建立」。

gcloud

如要建立指定密集配置政策的執行個體範本,請使用 gcloud compute instance-templates create 指令,並加上 --maintenance-policy 和 --resource-policies 旗標。

舉例來說,如要建立指定密集配置政策的全域執行個體範本,請執行下列指令:

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

更改下列內容:

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

  • MACHINE_TYPE:密集配置政策支援的機型。

  • MAINTENANCE_POLICY:主機維護政策。如果您指定的密集配置政策使用 1 或 2 的最大距離值,或所選機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

  • POLICY_NAME:現有密集配置政策的名稱。

REST

如要建立指定密集配置政策的執行個體範本,請向下列其中一種方法提出 POST 要求:

在要求主體中,加入 onHostMaintenance 和 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"
    ],
    "scheduling": {
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

更改下列內容:

  • 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:現有密集配置政策的名稱。

  • MAINTENANCE_POLICY:主機維護政策。如果您指定的密集配置政策使用 1 或 2 的最大距離值,或所選機型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATE 或 TERMINATE。

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

將政策套用至 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 名稱。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,用於指定密集配置政策。

  • SIZE:MIG 的大小。

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

將政策套用至現有的 MIG

如要將密集配置政策套用至現有 MIG,MIG 必須與配置政策位於相同區域,或者如果是可用區 MIG,則必須位於與配置政策相同區域的可用區。

如要更新 MIG,改用指定密集配置政策的執行個體範本,請選取下列其中一個選項:

gcloud

如要更新 MIG,改用指定密集配置政策的執行個體範本,請使用 gcloud compute instance-groups managed rolling-action start-update 指令。

舉例來說,如要更新可用區 MIG,以使用指定密集配置政策的執行個體範本,並將 MIG 中的現有運算執行個體,替換為指定範本屬性的新運算執行個體,請執行下列指令:

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

更改下列內容:

  • MIG_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/MIG_NAME

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

更改下列內容:

  • PROJECT_ID:MIG、密集配置政策,以及指定配置政策的執行個體範本所在的專案 ID。

  • ZONE:MIG 所在的可用區。密集配置政策只能套用至與政策位於相同區域的 MIG。

  • MIG_NAME:現有 MIG 的名稱。

  • INSTANCE_TEMPLATE_NAME:現有全域執行個體範本的名稱,用於指定密集配置政策。

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

後續步驟