本文档介绍如何通过创建紧凑布置政策并将其应用于虚拟机实例来缩短网络延迟时间。
紧凑布置政策指定应将虚拟机布置在彼此靠近的物理位置。这可以帮助您提高虚拟机的性能并缩短网络延迟时间,例如,运行高性能 (HPC)、机器学习 (ML) 或数据库服务器工作负载时。
执行以下操作时,您可以应用紧凑布置政策:
- 创建或更新虚拟机。
- 创建单项目预留。
- 批量创建虚拟机。
- 创建实例模板。然后,当您使用实例模板执行以下操作时,实例模板会应用紧凑布置政策:
- 创建一个虚拟机。
- 创建或更新托管式实例组 (MIG)。
- 创建单项目预留。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 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.
-
创建布置政策:针对项目的
compute.resourcePolicies.create
权限 -
将布置政策应用于现有虚拟机:针对项目的
compute.instances.addResourcePolicies
权限 -
查看虚拟机的详细信息:针对项目的
compute.instances.get
权限 对于紧凑布置政策,您可以使用
max-distance
(预览版)更好地控制虚拟机的布置距离。下表简要介绍了每个max-distance
值支持的虚拟机数量和主机维护政策:max-distance
值说明 虚拟机数量上限 支持的主机维护政策 未指定 根据可用性,将虚拟机布置在尽可能接近的位置。 1500 迁移或终止 3
将虚拟机布置在相邻的集群中,以缩短延迟时间。 1500 迁移或终止 2
将虚拟机布置在相邻机架中,相较于布置在相邻的集群中,其网络延迟时间更短。 150 终止 1
将虚拟机布置于同一个机架中,并尽可能缩短网络延迟时间。 22 终止 您只能将紧凑布置政策应用于 A2、A3、C2、C3、C2D、C3D、G2、H3、N2 和 N2D 机器系列。如果您在创建紧凑布置政策时使用
max-distance
,则无法将该政策应用于 A3、G2、N2 和 N2D 机器系列。您无法将紧凑布置政策应用于指定单租户节点的虚拟机。
如果您要为预留创建紧凑布置政策,请参阅预留的其他要求。
推荐:不使用固定数量。
您可以将未指定固定的虚拟机数量的紧凑布置政策应用于未指定数量的虚拟机。这样,无论将紧凑布置政策应用到多少个虚拟机,该政策都会生效。
使用固定数量。
您可以将指定固定的虚拟机数量的紧凑布置政策仅应用于确切数量的虚拟机。这样,只有将紧凑布置政策应用于指定数量的虚拟机时,该政策才有效。
POLICY_NAME
:要创建的政策的名称。REGION
:要用于创建政策的区域。如果要将紧凑布置政策应用于现有虚拟机,请在包含虚拟机所在可用区的区域中创建该政策。如果某个可用区具有可用容量,则
maxDistance
值较高(例如3
)的紧凑布置政策可能会使虚拟机放置在彼此更靠近的位置。如果某个可用区容量不足,则
maxDistance
值较低(例如1
)的紧凑布置政策更有可能导致无法对一个或多个虚拟机应用此政策。PROJECT_ID
:您要在其中创建布置政策的项目的 ID。REGION
:要用于创建政策的区域。如果要将紧凑布置政策应用于现有虚拟机,请在包含虚拟机所在可用区的区域中创建该政策。POLICY_NAME
:要创建的紧凑布置政策的名称。如果某个可用区具有可用容量,则
maxDistance
值较高(例如3
)的紧凑布置政策可能会使虚拟机放置在彼此更靠近的位置。如果某个可用区容量不足,则
maxDistance
值较低(例如1
)的紧凑布置政策更有可能导致无法对一个或多个虚拟机应用此政策。POLICY_NAME
:要创建的政策的名称。REGION
:要用于创建政策的区域。如果要将紧凑布置政策应用于现有虚拟机,请在包含虚拟机所在可用区的区域中创建该政策。VM_COUNT
:可以应用紧凑布置政策的虚拟机的确切数量。该值必须处于1
到可应用紧凑布置政策的虚拟机数上限之间。如果某个可用区具有可用容量,则
maxDistance
值较高(例如3
)的紧凑布置政策可能会使虚拟机放置在彼此更靠近的位置。如果某个可用区容量不足,则
maxDistance
值较低(例如1
)的紧凑布置政策更有可能导致无法对一个或多个虚拟机应用此政策。PROJECT_ID
:您要在其中创建布置政策的项目的 ID。REGION
:要用于创建政策的区域。如果要将紧凑布置政策应用于现有虚拟机,请在包含虚拟机所在可用区的区域中创建该政策。POLICY_NAME
:要创建的紧凑布置政策的名称。VM_COUNT
:可以应用紧凑布置政策的虚拟机的确切数量。该值必须处于1
到可应用紧凑布置政策的虚拟机数上限之间。如果某个可用区具有可用容量,则
maxDistance
值较高(例如3
)的紧凑布置政策可能会使虚拟机放置在彼此更靠近的位置。如果某个可用区容量不足,则
maxDistance
值较低(例如1
)的紧凑布置政策更有可能导致无法对一个或多个虚拟机应用此政策。虚拟机和紧凑布置政策位于同一项目中。
虚拟机位于紧凑布置政策所在的区域内。
虚拟机指定了支持的机器系列和主机维护政策。
VM_NAME
:现有虚拟机的名称。POLICY_NAME
:现有紧凑布置政策的名称。ZONE
:该虚拟机所在的可用区。PROJECT_ID
:紧凑布置政策和虚拟机所在项目的 ID。ZONE
:虚拟机所在的可用区,该可用区必须位于紧凑布置政策所在的区域。VM_NAME
:现有虚拟机的名称。REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。VM_NAME
:要创建的虚拟机的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。POLICY_NAME
:现有紧凑布置政策的名称。ZONE
:要用于创建虚拟机的可用区。您只能在指定的紧凑布置政策所在区域的可用区中创建虚拟机。PROJECT_ID
:紧凑布置政策所在项目的 ID。ZONE
:要用于创建虚拟机以及机器类型所在的可用区。您只能在指定的紧凑布置政策所在区域的可用区中创建虚拟机。VM_NAME
:要创建的虚拟机的名称。REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。COUNT
:要创建的虚拟机数量。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。NAME_PATTERN
:要创建的虚拟机的名称格式。使用井号 (#
) 将其替换为数字序列。例如,如果指定vm-#
,就可以创建名为vm-1
、vm-2
等的虚拟机,最多可创建COUNT
中指定的虚拟机数量。POLICY_NAME
:现有紧凑布置政策的名称。ZONE
:要用于批量创建虚拟机的可用区。您只能在指定的紧凑布置政策所在区域的可用区中创建虚拟机。PROJECT_ID
:紧凑布置政策所在项目的 ID。ZONE
:要用于批量创建虚拟机以及机器类型所在的可用区。您只能在指定的紧凑布置政策所在区域的可用区中创建虚拟机。COUNT
:要创建的虚拟机数量。NAME_PATTERN
:要创建的虚拟机的名称格式。使用井号 (#
) 将其替换为数字序列。例如,如果指定vm-#
,就可以创建名为vm-1
、vm-2
等的虚拟机,最多可创建COUNT
中指定的虚拟机数量。REGION
:紧凑布置政策所在的区域。POLICY_NAME
:现有紧凑布置政策的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。INSTANCE_TEMPLATE_NAME
:实例模板的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。POLICY_NAME
:现有紧凑布置政策的名称。PROJECT_ID
:要应用于实例模板的紧凑布置政策所在项目的 ID。ZONE
:机器类型所在的可用区。INSTANCE_TEMPLATE_NAME
:实例模板的名称。POLICY_NAME
:现有紧凑布置政策的名称。MAINTENANCE_POLICY
:虚拟机的主机维护政策。如果您指定的紧凑布置政策使用的max-distance
值为1
或2
,则只能指定TERMINATE
。否则,您可以指定MIGRATE
或TERMINATE
。MIG_NAME
:要创建的 MIG 的名称。REGION
:要用于创建 MIG 的区域,该区域必须与紧凑布置政策所在的区域一致。SIZE
:MIG 的大小。INSTANCE_TEMPLATE_NAME
:一个指定紧凑布置政策的现有实例模板的名称。PROJECT_ID
:紧凑布置政策以及指定该政策的实例模板所在项目的 ID。REGION
:要用于创建 MIG 的区域,该区域必须与紧凑布置政策所在的区域一致。MIG_NAME
:要创建的 MIG 的名称。INSTANCE_TEMPLATE_NAME
:一个指定紧凑布置政策的现有实例模板的名称。SIZE
:MIG 的大小。MIG_NAME
:现有 MIG 的名称。REGION
:MIG 所在的区域。您只能将紧凑布置政策应用于位于同一区域的 MIG。INSTANCE_TEMPLATE_NAME
:一个指定紧凑布置政策的现有实例模板的名称。PROJECT_ID
:MIG、紧凑布置政策以及指定该政策的实例模板所在项目的 ID。REGION
:MIG 所在的区域。您只能将紧凑布置政策应用于位于同一区域的 MIG。MIG_NAME
:现有 MIG 的名称。INSTANCE_TEMPLATE_NAME
:一个指定紧凑布置政策的现有实例模板的名称。VM_NAME
:现有虚拟机的名称。ZONE
:该虚拟机所在的可用区。/CCCCCCC/xxxxxx/xxxx
:这两个虚拟机位于同一集群中,相当于max-distance
值为2
。位于同一集群中的虚拟机所经历的网络延迟时间较短。/CCCCCCC/BBBBBB/xxxx
:两个虚拟机放在同一个机架中,相当于max-distance
值为1
。与位于同一集群中的虚拟机相比,同一机架中的虚拟机所经历的网络延迟时间更短。/CCCCCCC/BBBBBB/AAAA
:这两个虚拟机共用同一主机。将虚拟机放在同一主机中会尽可能缩短网络延迟时间。PROJECT_ID
:虚拟机所在项目的 ID。ZONE
:该虚拟机所在的可用区。VM_NAME
:一个指定布置政策的现有虚拟机的名称。/CCCCCCC/xxxxxx/xxxx
:这两个虚拟机位于同一集群中,相当于max-distance
值为2
。位于同一集群中的虚拟机所经历的网络延迟时间较短。/CCCCCCC/BBBBBB/xxxx
:两个虚拟机放在同一个机架中,相当于max-distance
值为1
。与位于同一集群中的虚拟机相比,同一机架中的虚拟机所经历的网络延迟时间更短。/CCCCCCC/BBBBBB/AAAA
:这两个虚拟机共用同一主机。将虚拟机放在同一主机中会尽可能缩短网络延迟时间。了解如何查看布置政策。
了解如何替换、移除或删除布置政策。
了解如何使用指定布置政策的虚拟机执行以下操作:
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建紧凑布置政策并将其应用于虚拟机所需的权限,请让管理员向您授予虚拟机或项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限。此预定义角色包含创建紧凑布置政策并将其应用于虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
若要创建紧凑布置政策并将其应用于虚拟机,您需要以下权限:
限制
除了布置政策的一般限制之外,紧凑布置政策具有以下限制:
创建紧凑布置政策
如需创建紧凑布置政策,请使用以下方法之一:
不使用固定数量
您可以使用 gcloud CLI 和 REST 创建紧凑布置政策。
gcloud
如需创建紧凑布置政策,请使用带有
--collocation=collocated
标志的gcloud compute resource-policies create group-placement
命令。gcloud compute resource-policies create group-placement POLICY_NAME \ --collocation=collocated \ --region=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
将
MAX_DISTANCE
替换为虚拟机的最大距离配置。该值必须介于1
(用于指定将虚拟机放在同一机架中,以尽可能缩短网络延迟时间)和3
(用于指定将虚拟机放在相邻的集群中)之间。根据应用紧凑布置政策的虚拟机中指定的机器类型和可用区,以下条件适用:REST
如需创建紧凑布置政策,请向
resourcePolicies.insert
方法发出POST
请求。 在请求正文中,添加collocation
字段并将其设置为COLLOCATED
。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED" } }
替换以下内容:
(可选)如需在具有严格的网络延迟时间要求时更好地控制虚拟机的布置距离,您可以通过向
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" } }
将
MAX_DISTANCE
替换为虚拟机的最大距离配置。该值必须介于1
(用于指定将虚拟机放在同一机架中,以尽可能缩短网络延迟时间)和3
(用于指定将虚拟机放在相邻的集群中)之间。根据应用紧凑布置政策的虚拟机中指定的机器类型和可用区,以下条件适用:使用固定数量
您可以使用 gcloud CLI 和 REST 创建可指定固定虚拟机数量的紧凑布置政策。
gcloud
如需创建可指定固定的虚拟机数量的紧凑布置政策,请使用带有
--collocation=collocated
和--vm-count
标志的gcloud compute resource-policies create group-placement
命令。gcloud compute resource-policies create group-placement POLICY_NAME \ --collocation=collocated \ --region=REGION \ --vm-count=VM_COUNT
请替换以下内容:
(可选)如需在具有严格的网络延时要求时更好地控制虚拟机的布置距离,可以使用带有
--collocation=collocated
、--max-distance
和--vm-count
标志的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 \ --vm-count=VM_COUNT
将
MAX_DISTANCE
替换为虚拟机的最大距离配置。该值必须介于1
(用于指定将虚拟机放在同一机架中,以尽可能缩短网络延迟时间)和3
(用于指定将虚拟机放在相邻的集群中)之间。根据应用紧凑布置政策的虚拟机中指定的机器类型和可用区,以下条件适用:REST
如需创建可指定固定虚拟机数量的紧凑布置政策,请向
resourcePolicies.insert
方法发出POST
请求。在请求正文中,添加设置为COLLOCATED
的collocation
字段和vmCount
字段。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED", "vmCount": "VM_COUNT" } }
替换以下内容:
(可选)如需在具有严格的网络延迟时间要求时更好地控制虚拟机的布置距离,您可以通过向
beta.resourcePolicies.insert
方法发出POST
请求来创建紧凑布置政策。在请求正文中,包含设置为COLLOCATED
的collocation
字段、maxDistance
字段和vmCount
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "collocation": "COLLOCATED", "maxDistance": "MAX_DISTANCE", "vmCount": "VM_COUNT" } }
将
MAX_DISTANCE
替换为虚拟机的最大距离配置。该值必须介于1
(用于指定将虚拟机放在同一机架中,以尽可能缩短网络延迟时间)和3
(用于指定将虚拟机放在相邻的集群中)之间。根据应用紧凑布置政策的虚拟机中指定的机器类型和可用区,以下条件适用:应用紧凑布置政策
您可以将紧凑布置政策应用于现有虚拟机,也可以在创建虚拟机、实例模板、MIG 或虚拟机预留时应用。
如需创建指定紧凑布置政策的 Compute Engine 资源,请选择以下方法之一:
如需在创建单项目预留时通过直接指定属性来指定紧凑布置政策,请参阅为单个项目创建预留。
将紧凑布置政策应用于虚拟机后,您可以验证虚拟机的物理位置(相对于指定相同政策的其他虚拟机)。
将紧凑布置政策应用于现有虚拟机
您可以使用 gcloud CLI 和 REST 将紧凑布置政策应用于现有虚拟机。
在将紧凑布置政策应用于现有虚拟机之前,请确保满足以下条件:
否则,在将紧凑布置政策应用于现有虚拟机时将会失败。
gcloud
如需将紧凑布置政策应用于现有虚拟机,请使用带有
--resource-policies
标志的gcloud compute instances add-resource-policies
命令。gcloud compute instances add-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
请替换以下内容:
REST
如需将紧凑布置政策应用于现有虚拟机,请向
instances.addResourcePolicies
方法发出包含resourcePolicies
字段的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" ] }
替换以下内容:
创建指定紧凑布置政策的虚拟机
您可以使用 gcloud CLI 和 REST 创建指定现有紧凑布置政策的虚拟机。
gcloud
如需创建指定紧凑布置政策的虚拟机,请使用带有
--resource-policies
标志的gcloud compute instances create
命令。例如,如需创建指定
c2d-standard-2
机器类型的虚拟机,请运行以下命令:gcloud compute instances create VM_NAME \ --machine-type=c2d-standard-2 \ --maintenance-policy=MAINTENANCE_POLICY \ --resource-policies=POLICY_NAME \ --zone=ZONE
请替换以下内容:
REST
如需创建指定紧凑布置政策的虚拟机,请向
instances.insert
方法发出包含resourcePolicies
字段的POST
请求。例如,如需创建指定
c2d-standard-2
机器类型的虚拟机,请发出以下POST
请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/c2d-standard-2", "name": "VM_NAME", "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY" } }
替换以下内容:
如需详细了解配置选项和用于创建虚拟机的 IAM 角色,请参阅创建并启动虚拟机实例。
批量创建指定紧凑布置政策的虚拟机
您可以使用 gcloud CLI 和 REST 批量创建指定现有紧凑布置政策的虚拟机。
gcloud
若要批量创建指定紧凑布置政策的虚拟机,请使用带有
--resource-policies
标志的gcloud compute instances bulk create
命令。例如,如需批量创建全部指定
c2d-standard-2
机器类型和同一紧凑布置政策的虚拟机,请运行以下命令:gcloud compute instances bulk create \ --async \ --count=COUNT \ --machine-type=c2d-standard-2 \ --maintenance-policy=MAINTENANCE_POLICY \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
请替换以下内容:
REST
若要批量创建指定紧凑布置政策的虚拟机,请向
instances.bulkInsert
方法发出包含resourcePolicies
字段的POST
请求。例如,如需批量创建全部指定
c2d-standard-2
机器类型和同一紧凑布置政策的虚拟机,请发出以下POST
请求:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": "COUNT", "machineType": "zones/ZONE/machineTypes/c2d-standard-2", "namePattern": "NAME_PATTERN", "instanceProperties": { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY" } } }
替换以下内容:
如需详细了解用于批量创建虚拟机的配置选项或 IAM 角色,请参阅批量创建虚拟机。
创建指定紧凑布置政策的实例模板
您可以使用 gcloud CLI 和 REST 创建一个指定现有紧凑布置政策的实例模板。
创建实例模板后,您可以使用该模板执行以下操作:
gcloud
如需创建指定紧凑布置政策的实例模板,请使用带有
--resource-policies
标志的gcloud compute instance-templates create
命令。例如,如需创建指定
c2d-standard-2
机器类型和现有紧凑布置政策的全局实例模板,请运行以下命令:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=c2d-standard-2 \ --maintenance-policy=MAINTENANCE_POLICY \ --resource-policies=POLICY_NAME
替换以下内容:
REST
如需创建指定紧凑布置政策的实例模板,请向
instanceTemplates.insert
方法发出POST
请求。在请求正文中,指定resourcePolicies
字段。例如,如需创建指定
c2d-standard-2
机器类型和现有紧凑布置政策的全局实例模板,请发出以下POST
请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "machineType": "zones/ZONE/machineTypes/c2d-standard-2", "properties": { "resourcePolicies": { "POLICY_NAME" }, "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY" } } }
替换以下内容:
如需详细了解用于创建实例模板的配置选项,请参阅创建实例模板。
对 MIG 中的虚拟机应用紧凑布置政策
创建指定紧凑布置政策的实例模板后,您可以使用该模板执行以下操作:
如需将紧凑布置政策应用于 MIG,建议创建该政策或将其应用于具有任意单个可用区分布形状的区域级 MIG。这样,每当区域级 MIG 需要通过创建虚拟机进行横向扩容时,它便会根据您的预留、配额和硬件要求选择用于创建虚拟机的可用区。
创建指定紧凑布置政策的 MIG
您可以使用 gcloud CLI 和 REST 通过指定紧凑布置政策的实例模板创建 MIG。
gcloud
如需使用指定紧凑布置政策的实例模板创建 MIG,请使用带有
--template
标志的gcloud compute instance-groups managed create
命令。例如,如需创建具有任意单个可用区分布形状的区域级 MIG,请运行以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --region=REGION \ --size=SIZE \ --target-distribution-shape=any-single-zone \ --template=INSTANCE_TEMPLATE_NAME
请替换以下内容:
REST
如需使用指定紧凑布置政策的实例模板创建 MIG,请向
instanceGroupManagers.insert
或regionInstanceGroupManagers.insert
方法发出POST
请求,并将instanceTemplate
字段设置为现有模板的名称。例如,如需创建具有默认虚拟机属性和任意单个可用区分布形状的区域级 MIG,请发出以下
POST
请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "MIG_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "distributionPolicy": { "targetShape": "ANY_SINGLE_ZONE" }, "targetSize": SIZE }
替换以下内容:
如需详细了解用于创建 MIG 的配置选项和 IAM 角色,请参阅创建 MIG 的基本场景。
将紧凑布置政策应用于现有 MIG
您可以使用 gcloud CLI 和 REST 通过指定相同布置政策的实例模板将紧凑布置政策应用于现有 MIG。
gcloud
如需更新 MIG 以使用指定紧凑布置政策的实例模板,请使用带有
--version=template
标志的gcloud compute instance-groups managed rolling-action start-update
命令。例如,如需更新区域级 MIG 以使用指定紧凑布置政策的实例模板,并将 MIG 中的现有虚拟机替换为指定模板属性的新虚拟机,请运行以下命令:
gcloud compute instance-groups managed rolling-action start-update MIG_NAME \ --region=REGION \ --type=proactive \ --version=template=INSTANCE_TEMPLATE_NAME
请替换以下内容:
REST
如需更新 MIG 以使用指定紧凑布置政策的实例模板,并自动将模板和布置政策的属性应用于 MIG 中的现有虚拟机,请向
instanceGroupManagers.insert
或regionInstanceGroupManagers.insert
发出包含instanceTemplate
字段的PATCH
请求。例如,如需更新地区级 MIG 以使用指定紧凑布置政策的实例模板,并将 MIG 中的现有虚拟机替换为指定模板属性的新虚拟机,请发出以下
PATCH
请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "updatePolicy": { "type": "PROACTIVE" } }
替换以下内容:
如需详细了解用于更新 MIG 中的虚拟机的配置选项和 IAM 角色,请参阅更新新配置并将其应用于 MIG 中的虚拟机。
验证虚拟机的物理位置
将紧凑布置政策应用于虚拟机后,您可以查看紧凑布置政策如何影响该虚拟机相对于指定相同政策的其他虚拟机的物理位置。这有助于您确定紧凑布置政策是否已正确应用于虚拟机,并了解哪些虚拟机彼此最接近。
您可以使用 gcloud CLI 和 REST 验证指定布置政策的虚拟机的物理位置。
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-Position RESOURCE_POLICIES: us-central1/resourcePolicies/example-policy'] PHYSICAL_HOST: /CCCCCCC/BBBBBB/AAAA
PHYSICAL_HOST
字段的值由三部分组成。每个部分分别代表虚拟机所在的集群、机架和主机。对于指定相同紧凑布置政策的两个虚拟机,在比较其位置时可以发现,虚拟机的
PHYSICAL_HOST
字段中相同的部分越多,它们彼此间的位置就越接近。例如,如果两个虚拟机都为PHYSICAL_HOST
字段指定以下示例值之一:REST
如需查看指定紧凑布置政策的虚拟机的物理位置,请向
instances.get
方法发出GET
请求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/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
字段指定以下示例值之一:后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-10-04。
-