创建具有多个机器类型的 MIG

本文档介绍如何创建具有实例灵活性托管式实例组 (MIG),以便您在 MIG 中指定多个机器类型。

实例灵活性有助于提高资源可获得性,尤其是对于可以在不同机器类型上运行且需要大容量或高需求硬件的应用。如需了解详情,请参阅实例灵活性简介

您还可以阅读创建 MIG 的其他基本场景

准备工作

创建具有多个机器类型的 MIG

控制台

  1. 在 Trusted Cloud 控制台中,前往实例群组页面。

    进入“实例组”

  2. 点击创建实例组

  3. 名称字段中,输入 MIG 的名称。

  4. 实例模板列表中,选择您要用于 MIG 的实例模板。

  5. 在指定实例数并添加实例选择之前,您需要执行以下操作:

    1. 按如下方式设置位置:

      1. 继续滚动到位置部分,然后选择多个可用区

      2. 区域可用区下拉列表中,选择要在 MIG 中创建虚拟机的区域和可用区。如果您选择了区域级实例模板,则系统会默认选择该模板所在的区域。

      3. 目标分布形状字段中,选择均衡任意单个可用区

      4. 在随即打开的对话框中,点击停用实例重新分布

    2. 按如下方式删除自动扩缩配置:

      1. 自动扩缩部分中,从自动扩缩模式下拉菜单中点击删除自动扩缩配置

      2. 在随即打开的对话框中,点击删除

    3. 滚动回实例数字段。

  6. 实例数字段中,指定实例组中所需的虚拟机数量。

  7. 实例选择部分中,点击添加实例选择

    系统会打开实例选择窗口。

    1. 点击添加实例选择

    2. 新建实例选择部分中,执行以下操作:

      1. 名称字段中,输入实例选择的名称。

      2. 机器类型部分中,点击添加机器类型,选择要在实例选择中添加的机器类型,然后点击完成

        针对要添加到实例选择的每个机器类型重复此步骤。

      3. 将机器类型添加到实例选择后,点击完成

  8. 实例选择窗口中,点击完成

  9. 将其他字段保留为默认设置,或根据需要进行修改。

  10. 点击创建

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 标志。

替换以下内容:

  • 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:目标分布形状。值可以是 balancedany-single-zone。不支持其他目标分布形状。
  • MACHINE_TYPE:您要在 MIG 中配置的机器类型,例如 n1-standard-16,n2-standard-16,e2-standard-16

Terraform

如果您尚未创建用于指定 MIG 中的每个虚拟机所需的虚拟机属性的实例模板,请创建实例模板

如需创建具有多个机器类型的区域级 MIG,请使用 google_compute_region_instance_group_manager 资源

resource "google_compute_region_instance_group_manager" "default" {
  name               = "flex-igm"
  base_instance_name = "tf-test-flex-igm"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_flexibility_policy {
    instance_selections {
      name          = "default-instance-selection"
      machine_types = ["n1-standard-16", "n2-standard-16", "e2-standard-16"]
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

如需了解如何应用或移除 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 字段。

替换以下内容:

  • 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:目标分布形状。值可以是 BALANCEDANY_SINGLE_ZONE。不支持其他目标分布形状。
  • INSTANCE_SELECTION:机器类型列表的名称。
  • MACHINE_TYPE:您要在 MIG 中配置的机器类型,例如 "n1-standard-16","n2-standard-16","e2-standard-16"

后续步骤