本文档介绍了如何添加实例灵活性,以便您在 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
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.
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
在 Google Cloud 控制台中,转到实例组页面。
点击创建实例组。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择您要为 MIG 使用的实例模板。
在指定实例数并添加实例选择之前,您需要执行以下操作:
按如下方式设置位置:
继续滚动到位置部分,然后选择多个可用区。
在区域和可用区下拉菜单中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。
在目标分布形状字段中,选择均衡或任意单个可用区。
在随即打开的对话框中,点击停用实例重新分配。
按如下方式删除自动扩缩配置:
在自动扩缩部分中,从自动扩缩模式下拉菜单中点击删除自动扩缩配置。
在随即打开的对话框中,点击删除。
滚动回实例数字段。
在实例数字段中,指定您希望在该组中包含的虚拟机数量。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对要添加到实例选择中的每个机器类型,重复此步骤。
将机器类型添加到实例选择后,点击完成。
在实例选择窗口中,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
如需创建具有多个机器类型的区域级 MIG,请使用 instance-groups managed create
命令,如下所示:
gcloud compute instance-groups managed createINSTANCE_GROUP_NAME \ --regionREGION \ --sizeTARGET_SIZE \ --templateINSTANCE_TEMPLATE \ --target-distribution-shapeSHAPE \ --instance-redistribution-type none \ --instance-selection-machine-typesMACHINE_TYPE,MACHINE_TYPE,...
可用区级 MIG 不支持实例灵活性。不过,如果您想在单个可用区中创建 MIG,请将目标分布形状设置为 any-single-zone
。此外,如果您需要特定可用区,请使用 any-single-zone
分发形状并添加 --zones
ZONE
标志。
替换以下内容:
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
。
如果您尚未创建您希望为 MIG 中的每个虚拟机指定的虚拟机属性的实例模板,请创建实例模板。
如需创建具有多个机器类型的区域级 MIG,请使用 google_compute_region_instance_group_manager
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需创建具有多个机器类型的区域级 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
字段。
替换以下内容:
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"
。
创建具有多个机器类型和偏好的 MIG
在 Google Cloud 控制台中,转到实例组页面。
点击创建实例组。
在名称字段中,输入 MIG 的名称。
在实例模板列表中,选择您要为 MIG 使用的实例模板。
在指定实例数并添加实例选择之前,您需要执行以下操作:
按如下方式设置位置:
继续滚动到位置部分,然后选择多个可用区。
在区域和可用区下拉菜单中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。
在目标分布形状字段中,选择均衡或任意单个可用区。
在随即打开的对话框中,点击停用实例重新分配。
按如下方式删除自动扩缩配置:
在自动扩缩部分中,从自动扩缩模式下拉菜单中点击删除自动扩缩配置。
在随即打开的对话框中,点击删除。
滚动回实例数字段。
在实例数字段中,指定您希望在该组中包含的虚拟机数量。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。 针对要添加到 MIG 中的每个实例选择重复上述步骤。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在排名字段中,输入您为 MIG 添加的实例选择的优先级。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对要添加到实例选择中的每个机器类型,重复此步骤。
将机器类型添加到实例选择后,点击完成。
完成添加实例选择后,点击完成。
将其他字段保留为默认设置,或根据需要进行修改。
点击创建。
如需创建具有多个机器类型和偏好的区域级 MIG,请使用 instance-groups managed create
命令。
gcloud compute instance-groups managed createINSTANCE_GROUP_NAME \ --regionREGION \ --sizeTARGET_SIZE \ --templateINSTANCE_TEMPLATE \ --target-distribution-shapeSHAPE \ --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
标志。
替换以下内容:
INSTANCE_GROUP_NAME
:MIG 的名称。REGION
:您要在其中创建 MIG 的区域。TARGET_SIZE
:您希望 MIG 创建和维护的虚拟机数量。INSTANCE_TEMPLATE
:实例模板的名称。SHAPE
:目标分布形状。值可以是balanced
或any-single-zone
。不支持其他目标分布形状。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。
如果您尚未创建您希望为 MIG 中的每个虚拟机指定的虚拟机属性的实例模板,请创建实例模板。
如需创建具有多个机器类型和偏好的区域级 MIG,请使用 google_compute_region_instance_group_manager
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需创建具有多个机器类型和偏好的区域级 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
字段。
替换以下内容:
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
:代表偏好顺序的数字。值越小,优先级越高。
为现有 MIG 添加实例灵活性
您可以向现有 MIG 添加实例灵活性。您可以设置多种机器类型,还可以为特定机器类型设置偏好设置。
如果您的 MIG 中已有虚拟机,这些虚拟机会继续使用实例模板中指定的机器类型。如果您希望 MIG 中的现有虚拟机使用实例灵活性政策中的机器类型,请在添加该政策后,删除现有虚拟机,然后调整 MIG 的大小以达到所需的虚拟机数量。调整大小时,新虚拟机将使用政策中的机器类型。
如果您想向现有的实例灵活性政策添加实例选择,请参阅更改实例灵活性配置。
您可以通过以下任一方式向 MIG 添加实例灵活性:
添加多个机器类型
在 Google Cloud 控制台中,转到实例组页面。
点击要在其中设置多个机器类型的 MIG 的名称。
点击修改。
在实例选择部分中,点击添加实例选择。
系统会打开实例选择窗口。
点击添加实例选择。
在新实例选择部分中,执行以下操作:
在名称字段中,输入实例选择的名称。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对要添加到实例选择中的每个机器类型,重复此步骤。
将机器类型添加到实例选择后,点击完成。
在实例选择窗口中,点击完成。
点击保存。
如需向现有 MIG 添加多个机器类型,请使用 instance-groups managed update
命令。
gcloud compute instance-groups managed updateINSTANCE_GROUP_NAME \ --regionREGION \ --instance-selection-machine-typesMACHINE_TYPE,MACHINE_TYPE,...
替换以下内容:
INSTANCE_GROUP_NAME
:您要在其中添加实例灵活性的 MIG 的名称。REGION
:MIG 所在的区域。MACHINE_TYPE
:您要在 MIG 中配置的机器类型,例如n1-standard-16,n2-standard-16,e2-standard-16
。
如需向现有 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 " ... ] } } } }
替换以下内容:
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 添加的实例选择的优先级。
在机器类型部分中,点击添加机器类型,在实例选择中选择要添加的机器类型,然后点击完成。
针对要添加到实例选择中的每个机器类型,重复此步骤。
将机器类型添加到实例选择后,点击完成。
完成添加实例选择后,点击完成。
点击保存。
如需向现有 MIG 添加多个机器类型和偏好设置,请使用 instance-groups managed update
命令
gcloud compute instance-groups managed updateINSTANCE_GROUP_NAME \ --regionREGION \ --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 "
替换以下内容:
INSTANCE_GROUP_NAME
:您要在其中添加实例灵活性的 MIG 的名称。REGION
:MIG 所在的区域。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。
如需向现有 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 } } } }
替换以下内容:
PROJECT_ID
:您的项目 ID。REGION
:MIG 所在的区域。INSTANCE_GROUP_NAME
:MIG 的名称。INSTANCE_SELECTION
:机器类型列表的名称。您可以添加多个具有不同偏好的列表。MACHINE_TYPE
:您要在 MIG 中配置的机器类型。