使用紧凑布置政策缩短延迟时间

本文档介绍了如何通过创建紧凑布置政策并将其应用于 Compute Engine 实例来缩短这些实例之间的网络延迟时间。如需详细了解布置政策,包括其支持的机器系列、限制和价格,请参阅布置政策概览

紧凑布置政策指定应将实例布置在彼此靠近的物理位置。这可以帮助您提高实例的性能并缩短网络延迟时间,例如,运行高性能 (HPC)、机器学习 (ML) 或数据库服务器工作负载时。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

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

    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 时进行身份验证

    所需的角色

    如需获得创建紧凑布置政策并将其应用于计算实例所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    这些预定义角色包含创建紧凑布置政策并将其应用于计算实例所需的权限。如需查看所需的确切权限,请展开所需权限部分:

    所需权限

    若要创建紧凑布置政策并将其应用于计算实例,您需要以下权限:

    • 创建布置政策:针对项目的 compute.resourcePolicies.create 权限
    • 将布置政策应用于现有实例:针对项目的 compute.instances.addResourcePolicies 权限
    • 创建实例:
      • 针对项目的 compute.instances.create 权限
      • 使用自定义映像创建虚拟机:针对映像的 compute.images.useReadOnly 权限
      • 使用快照创建虚拟机:针对快照的 compute.snapshots.useReadOnly 权限
      • 使用实例模板创建虚拟机:针对实例模板的 compute.instanceTemplates.useReadOnly 权限
      • 为虚拟机分配旧版网络:针对项目的 compute.networks.use 权限
      • 为虚拟机指定静态 IP 地址:针对项目的 compute.addresses.use 权限
      • 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的 compute.networks.useExternalIp 权限
      • 为虚拟机指定子网:针对项目或所选子网的 compute.subnetworks.use 权限
      • 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的 compute.subnetworks.useExternalIp 权限
      • 为虚拟机设置虚拟机实例元数据:针对项目的 compute.instances.setMetadata 权限
      • 为虚拟机设置标记:针对虚拟机的 compute.instances.setTags 权限
      • 为虚拟机设置标签:针对虚拟机的 compute.instances.setLabels 权限
      • 为虚拟机设置要使用的服务账号:针对虚拟机的 compute.instances.setServiceAccount 权限
      • 为虚拟机创建新磁盘:针对项目的 compute.disks.create 权限
      • 以只读或读写模式挂接现有磁盘:针对磁盘的 compute.disks.use 权限
      • 以只读模式挂接现有磁盘:针对磁盘的 compute.disks.useReadOnly 权限
    • 创建预留:针对项目的 compute.reservations.create 权限
    • 如需创建实例模板:针对项目的 compute.instanceTemplates.create 权限
    • 如需创建托管式实例组 (MIG):针对项目的 compute.instanceGroupManagers.create 权限
    • 查看实例的详细信息:针对项目的 compute.instances.get 权限

    您也可以使用自定义角色或其他预定义角色来获取这些权限。

    创建紧凑布置政策

    在创建紧凑布置政策之前,请考虑以下事项:

    • 如果您要将紧凑布置政策应用于 N2 或 N2D 以外的计算实例,建议您指定最大距离值

    • 您只能将紧凑布置政策应用于通过受预留约束的预配模型部署的 A4 或 A3 Ultra 实例。如需了解详情,请参阅 AI Hypercomputer 文档中的集群管理概览

    • 默认情况下,您无法将包含最大距离值的紧凑布置政策应用于 A3 Mega、A3 High 或 A3 Edge 实例。如需申请使用此功能,请联系您的专属技术支持客户经理 (TAM)销售团队

    如需创建紧凑布置政策,请选择以下选项之一:

    gcloud

    • 如需将紧凑布置政策应用于 N2 或 N2D 实例,请将 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:要在其中创建布置政策的区域。

    • 如需将紧凑布置政策应用于任何其他受支持的实例,请使用带有 --collocation=collocated--max-distance 标志的 gcloud beta compute resource-policies create group-placement 命令创建该政策。

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

      替换以下内容:

      • POLICY_NAME:紧凑布置政策的名称。

      • MAX_DISTANCE:实例的最大距离配置。该值必须介于 1(用于指定将实例放在同一机架中,以尽可能缩短网络延迟时间)和 3(用于指定将实例放在相邻的集群中)之间。如果您要将紧凑布置政策应用于预留或 A4 或 A3 Ultra 实例,则不能指定值 1

      • REGION:要在其中创建布置政策的区域。

    REST

    • 如需将紧凑布置政策应用于 N2 或 N2D 实例,请通过向 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:紧凑布置政策的名称。

    • 如需将紧凑布置政策应用于任何其他受支持的实例,请通过向 beta.resourcePolicies.insert 方法发出 POST 请求来创建该政策。在请求正文中,添加以下各项:

      • 设置为 COLLOCATEDcollocation 字段。

      • 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:实例的最大距离配置。该值必须介于 1(用于指定将实例放在同一机架中,以尽可能缩短网络延迟时间)和 3(用于指定将实例放在相邻的集群中)之间。如果您要将紧凑布置政策应用于预留或 A4 或 A3 Ultra 实例,则不能指定值 1

    应用紧凑布置政策

    您可以将紧凑布置政策应用于现有计算实例或托管式实例组 (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:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 12,或者您选择的机器类型不支持实时迁移,则只能指定 TERMINATE。 否则,您可以指定 MIGRATETERMINATE

    • POLICY_NAME:现有紧凑布置政策的名称。

    • ZONE:要创建实例的可用区。

    REST

    如需创建指定紧凑布置政策的实例,请向 instances.insert 方法发出 POST 请求。在请求正文中,添加 onHostMaintenanceresourcePolicies 字段。

    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:指定以下其中一项:

      • 操作系统映像的特定版本,例如 debian-12-bookworm-v20240617

      • 映像系列,其格式必须为 family/IMAGE_FAMILY。此项指定最新的未弃用操作系统映像。例如,如果您指定 family/debian-12,则系统会使用 Debian 12 映像系列中的最新版本。如需详细了解如何使用映像系列,请参阅映像系列最佳实践

    • REGION:紧凑布置政策所在的区域。

    • POLICY_NAME:现有紧凑布置政策的名称。

    • MAINTENANCE_POLICY:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 12,或者您选择的机器类型不支持实时迁移,则只能指定 TERMINATE。 否则,您可以指定 MIGRATETERMINATE

    如需详细了解用于创建实例的配置选项,请参阅创建和启动实例

    在批量创建实例时应用政策

    您只能在与布置政策相同的区域中批量创建具有紧凑布置政策的计算实例。

    如需批量创建用于指定紧凑布置政策的实例,请选择以下选项之一:

    gcloud

    如需批量创建指定紧凑布置政策的实例,请使用带有 --maintenance-policy--resource-policies 标志的 gcloud compute instances bulk create 命令

    例如,如需在单个可用区中批量创建实例并为实例指定名称模式,请运行以下命令:

    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:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 12,或者您选择的机器类型不支持实时迁移,则只能指定 TERMINATE。 否则,您可以指定 MIGRATETERMINATE

    • NAME_PATTERN:实例的名称格式。如需替换实例名称中的数字序列,请使用哈希值 (#) 字符序列。例如,使用 vm-# 作为名称模式会生成名称以 vm-1vm-2 开头的实例,一直到由 COUNT 指定的实例数量。

    • POLICY_NAME:现有紧凑布置政策的名称。

    • ZONE:要在其中批量创建实例的可用区。

    REST

    如需批量创建用于指定紧凑布置政策的实例,请向 instances.bulkInsert 方法发出 POST 请求。在请求正文中,添加 onHostMaintenanceresourcePolicies 字段。

    例如,如需在单个可用区中批量创建实例并为实例指定名称模式,请发出 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-1vm-2 开头的实例,一直到由 COUNT 指定的实例数量。

    • MACHINE_TYPE:紧凑布置政策支持的机器类型

    • IMAGE_PROJECT:映像所属的映像项目;例如 debian-cloud。如需详细了解支持的映像项目,请参阅公共映像

    • IMAGE:指定以下其中一项:

      • 操作系统映像的特定版本,例如 debian-12-bookworm-v20240617

      • 映像系列,其格式必须为 family/IMAGE_FAMILY。此项指定最新的未弃用操作系统映像。例如,如果您指定 family/debian-12,则系统会使用 Debian 12 映像系列中的最新版本。如需详细了解如何使用映像系列,请参阅映像系列最佳实践

    • REGION:紧凑布置政策所在的区域。

    • POLICY_NAME:现有紧凑布置政策的名称。

    • MAINTENANCE_POLICY:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 12,或者您选择的机器类型不支持实时迁移,则只能指定 TERMINATE。否则,您可以指定 MIGRATETERMINATE

    如需详细了解用于批量创建实例的配置选项,请参阅批量创建实例

    在创建预留时应用政策

    如果您要创建指定紧凑布置政策的按需单项目预留,则必须创建明确针对的预留。创建实例以使用预留时,请确保以下各项:

    • 实例必须指定应用于预留的同一紧凑布置政策。

    • 实例必须明确指向预留才能使用它。如需了解详情,请参阅使用特定预留中的实例

    如需创建具有紧凑布置政策的单项目预留,请选择以下方法之一:

    如需通过直接指定属性来创建具有紧凑布置政策的单项目预留,请选择以下选项之一:

    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 字段和设置为 truespecificReservationRequired 字段。

    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:紧凑布置政策支持的机器类型

    如需详细了解用于创建单项目预留的配置选项,请参阅为单个项目创建预留

    在创建实例模板时应用政策

    如果您要创建区域实例模板,则必须在与紧凑布置政策相同的区域内创建该模板。否则,创建实例模板将失败。

    创建指定紧凑布置政策的实例模板后,您便可以使用该模板执行以下操作:

    如需创建指定紧凑布置政策的实例模板,请选择以下选项之一:

    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:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 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:指定以下其中一项:

      • 操作系统映像的特定版本,例如 debian-12-bookworm-v20240617

      • 映像系列,其格式必须为 family/IMAGE_FAMILY。此项指定最新的未弃用操作系统映像。例如,如果您指定 family/debian-12,则系统会使用 Debian 12 映像系列中的最新版本。如需详细了解如何使用映像系列,请参阅映像系列最佳实践

    • MACHINE_TYPE:紧凑布置政策支持的机器类型

    • POLICY_NAME:现有紧凑布置政策的名称。

    • MAINTENANCE_POLICY:实例的主机维护政策。如果您指定的紧凑布置政策使用最大距离值 12,或者您选择的机器类型不支持实时迁移,则只能指定 TERMINATE。 否则,您可以指定 MIGRATETERMINATE

    如需详细了解用于创建实例模板的配置选项,请参阅创建实例模板

    将政策应用于 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 中的实例配置并将新配置应用于实例

    验证实例的物理位置

    将紧凑布置政策应用于计算实例后,您可以查看该实例相对于其他实例的物理位置。此比较仅限于位于您的项目中且指定了相同紧凑布置政策的实例。查看实例的物理位置有助于您执行以下操作:

    • 确认政策已成功应用。

    • 确定哪些实例彼此最靠近。

    如需查看实例相对于指定了相同紧凑布置政策的其他实例的物理位置,请选择以下选项之一:

    gcloud

    如需查看指定紧凑布置政策的实例的物理位置,请使用带有 --format 标志的 gcloud compute instances describe 命令

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

    替换以下内容:

    • INSTANCE_NAME:一个指定紧凑布置政策的现有实例的名称。

    • ZONE:实例所在的区域。

    输出类似于以下内容:

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

    PHYSICAL_HOST 字段的值由三部分组成。每个部分分别代表实例所在的集群、机架和主机。

    在比较项目中使用相同紧凑布置政策的两个实例的位置时,实例的 PHYSICAL_HOST 字段中相同的部分越多,它们彼此间的物理位置就越靠近。例如,假设两个实例都为 PHYSICAL_HOST 字段指定以下示例值之一:

    • /CCCCCCC/xxxxxx/xxxx:这两个实例位于同一集群中,等于最大距离值 2。位于同一集群中的实例所经历的网络延迟时间较短。

    • /CCCCCCC/BBBBBB/xxxx:这两个实例位于同一机架中,等于最大距离值 1。与位于同一集群中的实例相比,同一机架中的实例所经历的网络延迟时间更短。

    • /CCCCCCC/BBBBBB/AAAA:这两个实例共用同一主机。将实例放在同一主机中会尽可能缩短网络延迟时间。

    REST

    如需查看指定紧凑布置政策的实例的物理位置,请向 instances.get 方法发出 GET 请求。

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

    替换以下内容:

    • PROJECT_ID:实例所在项目的 ID。

    • ZONE:实例所在的区域。

    • INSTANCE_NAME:一个指定紧凑布置政策的现有实例的名称。

    输出类似于以下内容:

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

    physicalHost 字段的值由三部分组成。每个部分分别代表实例所在的集群、机架和主机。

    在比较项目中使用相同紧凑布置政策的两个实例的位置时,实例的 physicalHost 字段中相同的部分越多,它们彼此间的物理位置就越靠近。例如,假设两个实例都为 physicalHost 字段指定以下示例值之一:

    • /CCCCCCC/xxxxxx/xxxx:这两个实例位于同一集群中,等于最大距离值 2。位于同一集群中的实例所经历的网络延迟时间较短。

    • /CCCCCCC/BBBBBB/xxxx:这两个实例位于同一机架中,等于最大距离值 1。与位于同一集群中的实例相比,同一机架中的实例所经历的网络延迟时间更短。

    • /CCCCCCC/BBBBBB/AAAA:这两个实例共用同一主机。将实例放在同一主机中会尽可能缩短网络延迟时间。

    后续步骤