本文档介绍了如何添加实例灵活性,以便您在 MIG 中设置多个机器类型。
您可以在创建 MIG 时或通过修改现有 MIG 来增加实例灵活性。如需增加灵活性,请在 MIG 中配置实例灵活性政策。该政策会替换实例模板中指定的机器类型。每当 MIG 创建虚拟机 (VM) 实例时,它都会根据资源可用性自动选择您在政策中列出的某个机器类型。您还可以为机器类型列表分配排名,以指明您的偏好。
如需了解实例灵活性在 MIG 中的工作原理,请参阅实例灵活性简介。
准备工作
- 确保您选择的机器类型在 MIG 所在的区域受支持。如需查看某个区域中的机器类型,请参阅可用区域和可用区。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
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.
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
在 Google Cloud 控制台中,前往实例群组页面。
点击创建实例组。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择您要用于 MIG 的实例模板。
在指定实例数并添加实例选择之前,您需要执行以下操作:
按如下方式设置位置:
继续滚动到位置部分,然后选择多个可用区。
在区域和可用区下拉列表中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。
在目标分布形状字段中,选择均衡或任意单个可用区。
在随即打开的对话框中,点击停用实例重新分布。
按如下方式删除自动扩缩配置:
在自动扩缩部分中,从自动扩缩模式下拉菜单中点击删除自动扩缩配置。
在随即打开的对话框中,点击删除。
滚动回实例数字段。
在实例数字段中,指定实例组中所需的虚拟机数量。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。
点击添加实例选择。
在新建实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在机器类型部分中,点击添加机器类型,选择要在实例选择中添加的机器类型,然后点击完成。
针对要添加到实例选择的每个机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
在实例选择窗口中,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
INSTANCE_GROUP_NAME
:MIG 的名称。REGION
:要在其中创建 MIG 的区域。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
SHAPE
:目标分布形状。值可以是balanced
或any-single-zone
。不支持其他目标分布形状。MACHINE_TYPE
:您要在 MIG 中配置的机器类型,例如n1-standard-16,n2-standard-16,e2-standard-16
。PROJECT_ID
:您的项目 ID。REGION
:要在其中创建 MIG 的区域。INSTANCE_GROUP_NAME
:MIG 的名称。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
SHAPE
:目标分布形状。值可以是BALANCED
或ANY_SINGLE_ZONE
。不支持其他目标分布形状。INSTANCE_SELECTION
:机器类型列表的名称。MACHINE_TYPE
:您要在 MIG 中配置的机器类型,例如"n1-standard-16","n2-standard-16","e2-standard-16"
。在 Google Cloud 控制台中,前往实例群组页面。
点击创建实例组。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择您要用于 MIG 的实例模板。
在指定实例数并添加实例选择之前,您需要执行以下操作:
按如下方式设置位置:
继续滚动到位置部分,然后选择多个可用区。
在区域和可用区下拉列表中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。
在目标分布形状字段中,选择均衡或任意单个可用区。
在随即打开的对话框中,点击停用实例重新分布。
按如下方式删除自动扩缩配置:
在自动扩缩部分中,从自动扩缩模式下拉菜单中点击删除自动扩缩配置。
在随即打开的对话框中,点击删除。
滚动回实例数字段。
在实例数字段中,指定实例组中所需的虚拟机数量。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。针对要添加到 MIG 中的每个实例选择重复以下步骤。
点击添加实例选择。
在新建实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在排名字段中,输入您为 MIG 添加的实例选择的偏好程度。
在机器类型部分中,点击添加机器类型,选择要在实例选择中添加的机器类型,然后点击完成。
针对要添加到实例选择的每个机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
完成添加实例选择后,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
INSTANCE_GROUP_NAME
:MIG 的名称。REGION
:您要在其中创建 MIG 的区域。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
SHAPE
:目标分布形状。值可以是balanced
或any-single-zone
。不支持其他目标分布形状。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。PROJECT_ID
:您的项目 ID。REGION
:要在其中创建 MIG 的区域。INSTANCE_GROUP_NAME
:MIG 的名称。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE_URL
:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
SHAPE
:目标分布形状。值可以是BALANCED
或ANY_SINGLE_ZONE
。ZONE
:您要在其中创建 MIG 的可用区。如果您想在特定可用区创建区域级 MIG,请使用此字段。否则,您可以跳过此字段。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。RANK
:代表偏好程度的数字。值越小,优先级越高。在 Google Cloud 控制台中,前往实例群组页面。
点击要在其中设置多个机器类型的 MIG 的名称。
点击修改。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。
点击添加实例选择。
在新建实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在机器类型部分中,点击添加机器类型,选择要在实例选择中添加的机器类型,然后点击完成。
针对要添加到实例选择的每个机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
在实例选择窗口中,点击完成。
点击保存。
INSTANCE_GROUP_NAME
:您要在其中添加实例灵活性的 MIG 的名称。REGION
:MIG 所在的区域。MACHINE_TYPE
:您要在 MIG 中配置的机器类型,例如n1-standard-16,n2-standard-16,e2-standard-16
。PROJECT_ID
:您的项目 ID。REGION
:MIG 所在的区域。INSTANCE_GROUP_NAME
:您要在其中添加实例灵活性的 MIG 的名称。INSTANCE_SELECTION
:机器类型列表的名称。MACHINE_TYPE
:您要在 MIG 中配置的机器类型,例如"n1-standard-16","n2-standard-16","e2-standard-16"
。RANK
:代表偏好程度的数字。值越小,优先级越高。在 Google Cloud 控制台中,前往实例群组页面。
点击要在其中设置多个机器类型的 MIG 的名称。
点击修改。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。针对要添加到 MIG 中的每个实例选择重复以下步骤。
点击添加实例选择。
在新建实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在排名字段中,输入您为 MIG 添加的实例选择的偏好程度。
在机器类型部分中,点击添加机器类型,选择要在实例选择中添加的机器类型,然后点击完成。
针对要添加到实例选择的每个机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
完成添加实例选择后,点击完成。
点击保存。
INSTANCE_GROUP_NAME
:您要在其中添加实例灵活性的 MIG 的名称。REGION
:MIG 所在的区域。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。PROJECT_ID
:您的项目 ID。REGION
:MIG 所在的区域。INSTANCE_GROUP_NAME
:MIG 的名称。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭证。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 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.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
创建具有实例灵活性的 MIG
在创建 MIG 之前,您必须先创建实例模板(如果您还没有)。然后,您可以创建具有实例灵活性的 MIG 以替换实例模板中指定的机器类型。
通过以下任一方式创建具有实例灵活性的 MIG:
创建具有多个机器类型的 MIG
控制台
gcloud
如需创建具有多个机器类型的区域级 MIG,请使用
instance-groups managed create
命令,如下所示:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --region REGION \ --size TARGET_SIZE \ --template INSTANCE_TEMPLATE_URL \ --target-distribution-shape SHAPE \ --instance-redistribution-type none \ --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...
可用区级 MIG 不支持实例灵活性。不过,如果您想在单个可用区中创建 MIG,请将目标分布形状设置为
any-single-zone
。此外,如果您需要特定可用区,请使用any-single-zone
分发形状并添加--zones ZONE
标志。替换以下内容:
Terraform
如果您尚未创建用于指定 MIG 中的每个虚拟机所需的虚拟机属性的实例模板,请创建实例模板。
如需创建具有多个机器类型的区域级 MIG,请使用
google_compute_region_instance_group_manager
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
REST
如需创建具有多个机器类型的区域级 MIG,请向
regionInstanceGroupManagers.insert
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": TARGET_SIZE, "instanceTemplate": "INSTANCE_TEMPLATE_URL", "distributionPolicy": { "targetShape": "SHAPE" }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION": { "machineTypes": [ "MACHINE_TYPE_1", "MACHINE_TYPE_2", ... ] } } } }
可用区级 MIG 不支持实例灵活性。不过,如果您想在单个可用区中创建 MIG,请将目标分布形状设置为
ANY_SINGLE_ZONE
。此外,如果您需要特定可用区,请使用ANY_SINGLE_ZONE
分布形状并在请求中添加distributionPolicy.zones[].zone
字段。替换以下内容:
创建具有多个机器类型和偏好的 MIG
控制台
gcloud
如需创建具有多个机器类型和偏好的区域级 MIG,请使用
instance-groups managed create
命令。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --region REGION \ --size TARGET_SIZE \ --template INSTANCE_TEMPLATE_URL \ --target-distribution-shape SHAPE \ --instance-redistribution-type none \ --instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \ --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"
可用区级 MIG 不支持实例灵活性。不过,如果您想在单个可用区中创建 MIG,请将目标分布形状设置为
any-single-zone
。此外,如果您需要特定可用区,请使用any-single-zone
分发形状并添加--zones ZONE
标志。替换以下内容:
Terraform
如果您尚未创建用于指定 MIG 中的每个虚拟机所需的虚拟机属性的实例模板,请创建实例模板。
如需创建具有多个机器类型和偏好的区域级 MIG,请使用
google_compute_region_instance_group_manager
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
REST
如需创建具有多个机器类型和偏好的区域级 MIG,请向
regionInstanceGroupManagers.insert
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": TARGET_SIZE, "instanceTemplate": "INSTANCE_TEMPLATE_URL", "distributionPolicy": { "targetShape": "SHAPE" }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION_1": { "machineTypes": [ "MACHINE_TYPE_1", "MACHINE_TYPE_2", ... ], "rank": RANK_1 }, "INSTANCE_SELECTION_2": { "machineTypes": [ "MACHINE_TYPE_3", "MACHINE_TYPE_4", ... ], "rank": RANK_2 }, ... } } }
可用区级 MIG 不支持实例灵活性。不过,如果您想在单个可用区中创建 MIG,请将目标分布形状设置为
ANY_SINGLE_ZONE
。此外,如果您需要特定可用区,请使用ANY_SINGLE_ZONE
分布形状并在请求中添加distributionPolicy.zones[].zone
字段。替换以下内容:
向现有 MIG 添加实例灵活性
您可以向现有 MIG 添加实例灵活性。您可以设置多个机器类型,还可以为特定机器类型设置偏好。
如果 MIG 中已有虚拟机,这些虚拟机会继续使用实例模板中指定的机器类型。如果您希望 MIG 中的现有虚拟机使用实例灵活性政策中的机器类型,请在添加该政策后删除现有虚拟机,然后根据所需的虚拟机数量调整 MIG 的大小。调整大小后,新虚拟机将使用该政策中的机器类型。
如果您要向现有实例灵活性政策添加实例选择,请参阅更改实例灵活性配置。
通过以下任一方式向 MIG 添加实例灵活性:
添加多个机器类型
控制台
gcloud
如需向现有 MIG 添加多个机器类型,请使用
instance-groups managed update
命令。gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --region REGION \ --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...
替换以下内容:
REST
如需向现有 MIG 添加多个机器类型,请向
regionInstanceGroupManagers.patch
方法发出PATCH
请求。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION": { "machineTypes": [ "MACHINE_TYPE_1", "MACHINE_TYPE_2" ... ] } } } }
替换以下内容:
添加多个机器类型和偏好
控制台
gcloud
如需向现有 MIG 添加多个机器类型和偏好设置,请使用
instance-groups managed update
命令gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --region REGION \ --instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \ --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"
替换以下内容:
REST
如需向现有 MIG 添加多个机器类型和偏好,请向
regionInstanceGroupManagers.patch
方法发出PATCH
请求。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION_1": { "machineTypes": [ "MACHINE_TYPE_1", "MACHINE_TYPE_2" ], "rank": RANK_1 }, "INSTANCE_SELECTION_2": { "machineTypes": [ "MACHINE_TYPE_3", "MACHINE_TYPE_4" ], "rank": RANK_2 } } } }
替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-25。
-