本文档介绍如何通过创建紧凑布置政策并将其应用于虚拟机实例来缩短网络延迟时间。 如需详细了解布置政策(包括其支持的机器系列、限制和价格),请参阅布置政策概览。
紧凑布置政策指定应将虚拟机布置在彼此靠近的物理位置。这可以帮助您提高虚拟机的性能并缩短网络延迟时间,例如,运行高性能 (HPC)、机器学习 (ML) 或数据库服务器工作负载时。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得创建紧凑布置政策并将其应用于虚拟机所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) - 要创建预留:Compute Admin (
roles/compute.admin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色可提供创建紧凑布置政策并将其应用于虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
若要创建紧凑布置政策并将其应用于虚拟机,您需要以下权限:
- 创建布置政策:针对项目的
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
请求来创建该政策。在请求正文中,添加以下各项:设置为
COLLOCATED
的collocation
字段。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 资源,请选择以下方法之一:
将紧凑布置政策应用于虚拟机后,您可以验证虚拟机的物理位置(相对于指定同一布置政策的其他虚拟机)。
将政策应用于现有虚拟机
在将紧凑布置政策应用于现有虚拟机之前,请确保满足以下条件:
虚拟机和紧凑布置政策必须位于同一区域。例如,如果布置政策位于
us-central1
区域,则虚拟机必须位于us-central1
中的可用区。如果您需要将虚拟机迁移到其他区域,请参阅在���用区或区域之间移动虚拟机。
否则,将紧凑布置政策应用于虚拟机会失败。如果虚拟机已指定布置政策,并且您想替换该政策,请改为参阅替换虚拟机中的布置政策。
如需将紧凑布置政策应用于现有虚拟机,请选择以下选项之一:
gcloud
如需将紧凑布置政策应用于现有虚拟机,请使用
gcloud compute instances add-resource-policies
命令。gcloud compute instances add-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
替换以下内容:
VM_NAME
:现有虚拟机的名称。POLICY_NAME
:现有紧凑布置政策的名称。ZONE
:该虚拟机所在的可用区。
REST
如需将紧凑布置政策应用于现有虚拟机,请向
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
:紧凑布置政策和虚拟机所在项目的 ID。ZONE
:该虚拟机所在的可用区。VM_NAME
:现有虚拟机的名称。REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。
在创建虚拟机时应用政策
您只能在与布置政策相同的区域中创建指定紧凑布置政策的虚拟机。
如需创建用于指定紧凑布置政策的虚拟机,请选择以下选项之一:
gcloud
如需创建用于指定紧凑布置政策的虚拟机,请将 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
替换以下内容:
REST
如需创建指定紧凑布置政策的虚拟机,请向 instances.insert
方法发出 POST
请求。在请求正文中,添加 onHostMaintenance
和 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"
],
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY"
}
}
替换以下内容:
PROJECT_ID
:紧凑布置政策所在项目的 ID。ZONE
:要用于创建虚拟机以及机器类型所在的可用区。您只能指定紧凑布置政策所在区域内的可用区。VM_NAME
:要创建的虚拟机的名称。MACHINE_TYPE
:紧凑布置政策支持的机器类型。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用最大距离值1
或2
,或者您选择的机器类型不支持实时迁移,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。
如需详细了解用于创建虚拟机的配置选项,请参阅创建和启动虚拟机实例。
批量创建虚拟机时应用政策
您只能在紧凑布置政策所在的区域中批量创建用于指定该政策的虚拟机。
如需批量创建用于指定紧凑布置政策的虚拟机,请选择以下选项之一:
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
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用最大距离值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
:指定以下其中一项:REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用最大距离值1
或2
,或者您选择的机器类型不支持实时迁移,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。
如需详细了解用于批量创建虚拟机的配置选项,请参阅批量创建虚拟机。
在创建预留时应用政策
如果您要创建指定紧凑布置政策的按需单项目预留,则必须创建明确针对的预留。创建虚拟机以使用预留时,请确保满足以下条件:
虚拟机必须指定应用于预留的同一紧凑布置政策。
虚拟机必须明确指向预留才能使用它。 如需了解详情,请参阅使用特定预留中的虚拟机。
如需创建具有紧凑布置政策的单项目预留,请选择以下方法之一:
如本部分所述,通过直接指定属性创建预留。
在创建实例模板时应用该政策(如本文档所述),然后通过指定新创建的实例模板来创建单项目预留。
如需通过直接指定属性来创建具有紧凑布置政策的单项目预留,请选择以下选项之一:
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
:要预留的虚拟机数量,不得超过指定的紧凑布置政策支持的虚拟机数量上限。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_VMS",
"instanceProperties": {
"machineType": "MACHINE_TYPE",
}
},
"specificReservationRequired": true
}
替换以下内容:
PROJECT_ID
:紧凑布置政策所在项目的 ID。ZONE
:预留虚拟机的可用区。您只能在指定紧凑布置政策所在区域内的可用区中预留虚拟机。RESERVATION_NAME
:预留的名称。REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。NUMBER_OF_VMS
:要预留的虚拟机数量,不得超过指定的紧凑布置政策支持的虚拟机数量上限。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
替换以下内容:
REST
如需创建指定紧凑布置政策的实例模板,请向以下方法之一发出 POST
请求:
如需创建全球实例模板:
instanceTemplates.insert
方法。如需创建区域级实例模板:
regionInstanceTemplates.insert
方法。
在请求正文中,包含 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
:指定以下其中一项: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,请使用
instanceGroupManagers.insert
方法。如需创建区域级 MIG,请使用
regionInstanceGroupManagers.insert
方法。
例如,如需使用用于指定紧凑布置政策的全局实例模板创建可用区级 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,请使用
instanceGroupManagers.insert
方法。如需更新区域级 MIG:
regionInstanceGroupManagers.insert
方法。
例如,如需更新可用区级 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 VM_NAME \
--format="table[box,title=VM-Position](resourcePolicies.scope():sort=1,resourceStatus.physicalHost:label=location)" \
--zone=ZONE
替换以下内容:
VM_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/VM_NAME
替换以下内容:
PROJECT_ID
:虚拟机所在项目的 ID。ZONE
:该虚拟机所在的可用区。VM_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
:这两个虚拟机共用同一主机。将虚拟机放在同一主机中会尽可能缩短网络延迟时间。
后续步骤
了解如何查看布置政策。
了解如何替换、移除或删除布置政策。
了解如何使用指定布置政策的虚拟机执行以下操作: