本文档介绍了如何添加实例灵活性,以便您在 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
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.
在 Google Cloud 控制台中,转到实例组页面。
点击创建实例组。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择要为 MIG 使用的实例模板。
您需要先执行以下操作,然后才能指定实例数并添加实例选择:
按如下方式设置位置:
继续滚动到位置部分,然后选择多个可用区。
在区域和可用区下拉菜单中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。
在目标分布形状字段中,选择均衡或任意单个可用区。
在随即打开的对话框中,点击停用实例重新分配。
按如下方式删除自动扩缩配置:
在自动扩缩部分中,点击自动扩缩模式下拉菜单中的删除自动扩缩配置。
在随即打开的对话框中,点击删除。
滚动回实例数字段。
在实例数字段中,指定您希望在该组中包含的虚拟机数量。
在实例选择部分中,点击添加实例选择。
系统随即会打开实例选择窗口。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,为所选实例输入名称。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对您要添加到实例选择中的每种机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
在实例选择窗口中,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
INSTANCE_GROUP_NAME
:MIG 的名称。REGION
:您要在其中创建 MIG 的区域。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE
:实例模板的名称。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
:实例模板的网址。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 中的每个实例选择重复执行以下步骤。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,为所选实例输入名称。
在 Rank 字段中,输入为 MIG 添加的实例选择的优先级顺序。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对您要添加到实例选择中的每种机器类型重复此步骤。
将机器类型添加到实例选择后,点击完成。
添加完实例选择后,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
INSTANCE_GROUP_NAME
:MIG 的名称。REGION
:您要在其中创建 MIG 的区域。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE
:实例模板的名称。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
:实例模板的网址。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 中的每个实例选择重复执行以下步骤。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,为所选实例输入名称。
在 Rank 字段中,输入为 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 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 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 \ --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 \ --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):2024-12-22。
-