使用密集配置政策來減少延遲時間


本文件說明如何為虛擬機器 (VM) 執行個體建立並套用密集配置政策,藉此降低網路延遲時間。如要進一步瞭解放置政策,包括支援的機型系列、限制和價格,請參閱放置政策總覽

密集配置政策會指定 VM 應在實體上彼此靠近。例如,當您執行高效能運算 (HPC)、機器學習 (ML) 或資料庫伺服器工作負載時,這項功能可協助改善 VM 之間的效能,並減少網路延遲。

事前準備

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

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

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

必要的角色

如要取得建立並套用精簡放置政策至 VM 所需的權限,請要求管理員為您授予專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這些預先定義的角色包含建立密集配置政策並套用至 VM 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立密集配置政策並套用至 VM,您必須具備下列權限:

  • 如要建立刊登位置政策,請按照下列步驟操作: compute.resourcePolicies.create 在專案中
  • 如要將放置政策套用至現有的 VM: compute.instances.addResourcePolicies 在專案上
  • 如要建立 VM,請按照下列步驟操作:
    • 專案的 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: compute.instances.setMetadata 設定 VM 執行個體中繼資料
    • 如何為 VM 設定標記:compute.instances.setTags
    • 如何為 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 在專案中
  • 如要查看 VM 的詳細資料,請按照下列步驟操作: compute.instances.get 在專案中

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

建立密集配置政策

建立精簡版刊登位置政策前,請考量下列事項:

  • 如果您想將密集配置政策套用至 N2 或 N2D 以外的 VM,建議您指定最大距離值

  • 您只能將密集配置政策套用至使用 Cluster Director 提供的功能部署的 A4 或 A3 Ultra VM。詳情請參閱 AI 超級電腦說明文件中的「叢集總監」。

  • 根據預設,您無法將設有最大距離值的密集配置政策套用至 A3 Mega、A3 High 或 A3 Edge VM。如要申請使用這項功能,請與指派給您的客戶技術顧問 (TAM)銷售團隊聯絡。

如要建立精簡版刊登位置政策,請選取下列任一選項:

gcloud

  • 如要將密集放置政策套用至 N2 或 N2D VM,請使用 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:建立刊登位置政策的區域。

  • 如要將密集配置政策套用至任何其他支援的 VM,請使用 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:VM 的最大距離設定。這個值必須介於 13 之間,1 會將 VM 放置在同一個機架中,以盡可能縮短網路延遲時間;3 則會將 VM 放置在相鄰叢集中。如果您要將密集配置政策套用至預留項目,或套用至 A4 或 A3 Ultra VM,則無法指定 1 的值。

    • REGION:建立刊登位置政策的區域。

REST

  • 如要將密集配置政策套用至 N2 或 N2D VM,請對 resourcePolicies.insert 方法發出 POST 要求,藉此建立政策。在要求主體中加入 collocation 欄位,並將該欄位設為 COLLOCATED

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

    更改下列內容:

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

    • REGION:建立刊登位置政策的區域。

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

  • 如要將密集配置政策套用至任何其他支援的 VM,請向 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:要建立刊登位置政策的區域。

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

    • MAX_DISTANCE:VM 的最大距離設定。這個值必須介於 13 之間,1 會將 VM 放置在同一個機架中,以盡可能縮短網路延遲時間;3 則會將 VM 放置在相鄰叢集中。如果您要將密集配置政策套用至預留項目,或套用至 A4 或 A3 Ultra VM,則無法指定 1 的值。

套用密集配置政策

您可以將密集配置政策套用至現有的 VM 或 MIG,也可以在建立 VM、執行個體範本、MIG 或 VM 預留項目時套用。

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

將密集配置政策套用至 VM 後,您可以驗證 VM 的實際位置,並與指定相同配置政策的其他 VM 進行比較。

將政策套用至現有 VM

在將密集配置政策套用至現有 VM 之前,請確認下列事項:

否則,將密集配置政策套用至 VM 會失敗。如果 VM 已指定配置方式政策,而您想要取代該政策,請改為參閱取代 VM 中的配置方式政策

如要將密集配置政策套用至現有 VM,請選取下列任一選項:

gcloud

  1. 停止 VM

  2. 如要將密集配置政策套用至現有的 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 所在區域。

  3. 重新啟動 VM

REST

  1. 停止 VM

  2. 如要將密集配置政策套用至現有的 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:現有密集配置政策的名稱。

  3. 重新啟動 VM

在建立 VM 時套用政策

您只能建立 VM,並在該 VM 中指定與配置方式政策相同的區域,以便使用密集配置政策。

如要建立指定密集配置政策的 VM,請選取下列任一選項:

gcloud

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

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

更改下列內容:

  • VM_NAME:要建立的 VM 名稱。

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

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

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

  • ZONE:建立 VM 的區域。

REST

如要建立指定密集配置政策的 VM,請對 instances.insert 方法提出 POST 要求。在要求主體中加入 onHostMaintenanceresourcePolicies 欄位。

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

更改下列內容:

  • PROJECT_ID:精簡版刊登位置政策所在專案的 ID。

  • ZONE:建立 VM 的區域,以及機器類型所在的位置。您只能在密集配置政策的地區內指定區域。

  • VM_NAME:要建立的 VM 名稱。

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

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

  • IMAGE:指定下列其中一個值:

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

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

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

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

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

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

在大量建立 VM 時套用政策

您只能在與配置政策相同的地區,使用密集配置政策大量建立 VM。

如要大量建立指定密集配置政策的 VM,請選取下列任一選項:

gcloud

如要大量建立指定緊密放置政策的 VM,請使用 gcloud compute instances bulk create 指令搭配 --maintenance-policy--resource-policies 旗標。

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

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:要建立的 VM 數量,不得超過指定密集配置政策的支援的 VM 數量上限

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

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

  • NAME_PATTERN:VM 的名稱模式。如要取代 VM 名稱中的數字序列,請使用一連串井字號 (#) 字元。舉例來說,如果將名稱模式設為 vm-#,系統就會產生名稱以 vm-1vm-2 開頭的 VM,並依 COUNT 指定的 VM 數量繼續產生。

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

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

REST

如要大量建立指定密集配置政策的 VM,請對 instances.bulkInsert 方法發出 POST 要求。在要求主體中加入 onHostMaintenanceresourcePolicies 欄位。

舉例來說,如要在單一區域中大量建立 VM,並為 VM 指定名稱模式,請提出以下 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:要用於大量建立 VM 的可用區。

  • COUNT:要建立的 VM 數量,不得超過指定密集配置政策的支援的 VM 數量上限

  • NAME_PATTERN:VM 的名稱模式。如要取代 VM 名稱中的數字序列,請使用一連串井字號 (#) 字元。舉例來說,如果將名稱模式設為 vm-#,系統就會產生名稱以 vm-1vm-2 開頭的 VM,並依 COUNT 指定的 VM 數量繼續產生。

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

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

  • IMAGE:指定下列其中一個值:

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

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

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

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

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

如要進一步瞭解用於大量建立 VM 的設定選項,請參閱「大量建立 VM」。

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

如果您想建立隨選的單一專案預留項目,並指定精簡版刊登位置政策,則必須建立指定目標的預留項目。建立要使用預留資源的 VM 時,請確認下列事項:

  • VM 必須指定與保留項目相同的密集配置政策。

  • VM 必須明確指定要使用的保留項目。詳情請參閱「從特定預留項目使用 VM」。

如要建立單一專案保留項目,並套用密集配置政策,請選取下列任一方法:

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

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_VMS \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:保留項目的名稱。

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

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

  • NUMBER_OF_VMS:要預留的 VM 數量,不得超過指定密集配置政策支援的 VM 數量上限

  • ZONE:預留 VM 的區域。您只能在指定的緊密配置政策區域內的區域中保留 VM。

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_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  },
  "specificReservationRequired": true
}

更改下列內容:

  • PROJECT_ID:精簡版刊登位置政策所在專案的 ID。

  • ZONE:預留 VM 的區域。您只能在指定的緊密配置政策區域內的區域中保留 VM。

  • RESERVATION_NAME:保留項目的名稱。

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

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

  • NUMBER_OF_VMS:要預留的 VM 數量,不得超過指定密集配置政策支援的 VM 數量上限

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

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

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

如果您要建立區域執行個體範本,則必須在密集配置政策所在的區域中建立範本。否則,建立執行個體範本會失敗。

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

如要建立指定密集配置政策的執行個體範本,請選取下列任一選項:

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:VM 的主機維護政策。如果您指定的密集配置政策使用 12 的最大距離值,或是您選擇的機器類型不支援即時遷移,則只能指定 TERMINATE。否則,您可以指定 MIGRATETERMINATE

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

REST

如要建立指定緊密刊登位置政策的執行個體範本,請向下列任一方法提出 POST 要求:

在要求主體中加入 onHostMaintenanceresourcePolicies 欄位。

舉例來說,如要建立指定緊密放置政策的全域執行個體範本,請提出以下 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。這會指定最新的非淘汰作業系統映像檔。舉例來說,如果您指定 family/debian-12,系統會使用 Debian 12 映像檔系列中的最新版本。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

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

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

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

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

將政策套用至 MIG 中的 VM

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

在建立 MIG 時套用政策

只有在 VM 位於與配置政策相同的區域時,才能建立指定密集配置政策的 VM。

如要使用指定密集配置政策的執行個體範本建立 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 中的現有 VM 取代為指定範本屬性的新 VM,請執行下列指令:

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 中的現有 VM,請向下列任一方法提出 PATCH 要求:

舉例來說,如要更新區域性 MIG 以使用指定緊密放置政策的全球執行個體範本,並將 MIG 中的現有 VM 取代為指定範本屬性的新 VM,請提出下列 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 中的 VM,請參閱「更新 MIG 中的 VM 並套用新設定」。

驗證 VM 的實際位置

將密集配置政策套用至 VM 後,您可以查看 VM 與其他 VM 的相對物理位置。這項比較只限於位於專案中且指定相同精簡放置政策的 VM。查看 VM 的實體位置有助於執行下列操作:

  • 確認政策已成功套用。

  • 找出彼此距離最近的 VM。

如要查看 VM 與指定相同密集配置政策的其他 VM 的關係,請選取下列任一選項:

gcloud

如要查看指定密集配置政策的 VM 實際位置,請使用 gcloud compute instances describe 指令搭配 --format 旗標。

gcloud compute instances describe VM_NAME \
    --format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
    --zone=ZONE

更改下列內容:

  • VM_NAME:指定精簡放置政策的現有 VM 名稱。

  • ZONE:VM 所在區域。

輸出結果會與下列內容相似:

VM-Position

RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy']
PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA

PHYSICAL_HOST 欄位的值由三個部分組成。這些部分分別代表 VM 所在的叢集、機架和主機。

比較專案中使用相同密集型放置政策的兩個 VM 位置時,如果兩個 VM 共用 PHYSICAL_HOST 欄位的部分越多,兩者在實體位置上就越接近。舉例來說,假設兩個 VM 都為 PHYSICAL_HOST 欄位指定下列其中一個範例值:

  • /CCCCCCC/xxxxxx/xxxx:兩個 VM 位於同一叢集中,等同於最大距離值 2。位於同一個叢集中的 VM 會出現低網路延遲。

  • /CCCCCCC/BBBBBB/xxxx:兩個 VM 會放置在同一個機架中,也就是最大距離值為 1。與位於同一個叢集的 VM 相比,位於同一個機架的 VM 網路延遲時間較低。

  • /CCCCCCC/BBBBBB/AAAA:兩個 VM 共用相同主機。將 VM 放在同一個主機上,可盡可能降低網路延遲時間。

REST

如要查看指定密集配置政策的 VM 的實際位置,請向 instances.get 方法提出 GET 要求。

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

更改下列��容:

  • PROJECT_ID:VM 所在專案的 ID。

  • ZONE:VM 所在區域。

  • VM_NAME:指定精簡放置政策的現有 VM 名稱。

輸出結果會與下列內容相似:

{
  ...
  "resourcePolicies": [
    "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/resourcePolicies/example-policy"
  ],
  "resourceStatus": {
    "physicalHost": "/xxxxxxxx/xxxxxx/xxxxx"
  },
  ...
}

physicalHost 欄位的值由三個部分組成。這些部分分別代表 VM 所在的叢集、機架和主機。

比較專案中使用相同密集型放置政策的兩個 VM 位置時,如果兩個 VM 共用 physicalHost 欄位的部分越多,兩者在實體位置上就越接近。舉例來說,假設兩個 VM 都為 physicalHost 欄位指定下列其中一個範例值:

  • /CCCCCCC/xxxxxx/xxxx:兩個 VM 位於同一叢集中,等同於最大距離值 2。位於同一個叢集中的 VM 會出現低網路延遲。

  • /CCCCCCC/BBBBBB/xxxx:兩個 VM 會放置在同一個機架中,也就是最大距離值為 1。與位於同一個叢集的 VM 相比,位於同一個機架的 VM 網路延遲時間較低。

  • /CCCCCCC/BBBBBB/AAAA:兩個 VM 共用相同的主機。將 VM 放在同一個主機上,可盡可能降低網路延遲時間。

後續步驟