更改或移除实例灵活性


本文档介绍如何通过修改实例灵活性政策来更改或移除托管式实例组 (MIG) 中的实例灵活性。此外还介绍了如何在从实例灵活性配置中移除机器类型时更新虚拟机的机器类型。

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

    更改实例灵活性配置

    您可以通过修改 MIG 中的实例灵活性配置来进行以下更改:

    • 向实例选择添加机器类型
    • 从实例选择中移除机器类型
    • 更改实例选择的排名
    • 添加实例选择

    MIG 会根据您指定的实例选择名称应用更改。您未指定的任何实例选择都将保持不变。更改实例选择时,您必须在修改时指定其完整配置。如果您未指定完整配置,MIG 将覆盖实例选择的未指定部分。例如,如果您只想更改排名,请指定新排名以及在该选择中设置的机器类型。如需查看现有配置,请参阅查看实例灵活性

    从配置中移除机器类型后,使用所移除机器类型的现有虚拟机会继续使用这些机器类型。如果您要更改这些虚拟机的机器类型,则必须更新或重新创建特定虚拟机。如需了解详情,请参阅更新虚拟机的机器类型以使用最新配置

    如需更改 MIG 中的实例灵活性配置,请选择以下选项之一:

    控制台

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

      进入“实例组”

    2. 点击要更改实例灵活性的 MIG 的名称。

    3. 点击修改

    4. 实例选择部分中,点击修改实例选择

    5. 实例选择窗口中,点击某个实例选择的 切换图标,打开修改实例选择视图。

      修改实例选择时,您可以进行以下更改:

      • 更改实例选择的名称和排名。为此,请修改名称排名字段中的值。
      • 将新机器类型添加到选择中。为此,请点击添加机器类型
      • 移除机器类型。为此,请选择相应的机器类型,然后点击移除
    6. 根据需要修改选择,然后点击完成

    7. 实例选择窗口中完成更改后,点击完成

    8. 点击保存应用更改。

    gcloud

    如需修改实例灵活性配置,请使用 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"
    

    替换以下内容:

    • INSTANCE_GROUP_NAME:您要检查实例灵活性配置的 MIG 的名称。
    • REGION:MIG 所在的区域。
    • INSTANCE_SELECTION:您要进行更改的实例选择的名称。您必须同时指定 MACHINE_TYPERANK。如果您不会更改其中任何一个值,则必须提供现有值以保留它们。

    REST

    如需修改实例灵活性配置,请向 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"
              ],
              "rank": RANK
            }
          }
        }
      }
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID
    • REGION:MIG 所在的区域。
    • INSTANCE_GROUP_NAME:您要检查实例灵活性配置的 MIG 的名称。
    • INSTANCE_SELECTION:您要进行更改的实例选择的名称。您必须同时指定 MACHINE_TYPERANK。如果您不会更改其中任何一个值,则必须提供现有值以保留它们。

    移除实例灵活性配置

    您可以移除 MIG 中的所有或特定实例选择。

    • 如需移除 MIG 中的所有实例选择,请参阅移除所有实例选择。移除所有实例选择后,MIG 会使用实例模板中指定的机器类型在组中创建新的虚拟机。

    • 如需按名称移除个别实例选择,请参阅移除特定实例选择。此操作仅移除特定实例选择,而 MIG 会保留其他实例选择。

    移除实例选择后,使用所移除实例选择中的机器类型的现有虚拟机将继续使用相同的机器类型。如需使更改生效,您必须更新或重新创建这些虚拟机。如需了解详情,请参阅更新虚拟机的机器类型以使用最新配置

    移除所有实例选择

    如需移除所有实例选择,请选择以下选项之一:

    控制台

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

      进入“实例组”

    2. 点击要更改实例灵活性的 MIG 的名称。

    3. 点击修改

    4. 实例选择部分中,点击修改实例选择

    5. 实例选择窗口中,点击每个实例选择旁边的 删除图标。

    6. 点击完成

    7. 点击保存

    gcloud

    如需移除 MIG 中的所有实例选择,请使用 instance-groups managed update 命令

      gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
          --region REGION \
          --remove-instance-selections-all
    

    替换以下内容:

    • INSTANCE_GROUP_NAME:要从中移除所有实例选择的 MIG 的名称。
    • REGION:MIG 所在的区域。

    REST

    如需移除 MIG 中的所有实例选择,请向 regionInstanceGroupManagers.patch 方法发出 PATCH 请求。

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
      {
        "instanceFlexibilityPolicy": {
          "instanceSelections": null
        }
      }
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID
    • REGION:MIG 所在的区域。
    • INSTANCE_GROUP_NAME:要从中移除实例选择的 MIG 的名称。

    移除特定实例选择

    如需移除特定实例选择,请选择以下选项之一:

    控制台

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

      进入“实例组”

    2. 点击要更改实例灵活性的 MIG 的名称。

    3. 点击修改

    4. 实例选择部分中,点击修改实例选择

    5. 实例选择窗口中,点击要移除的实例选择旁边的 删除图标。

    6. 点击完成

    7. 点击保存

    gcloud

    如需移除 MIG 中的特定实例选择,请使用 instance-groups managed update 命令

      gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
          --region REGION \
          --remove-instance-selections INSTANCE_SELECTION
    

    替换以下内容:

    • INSTANCE_GROUP_NAME:要从中移除实例选择的 MIG 的名称。
    • REGION:MIG 所在的区域。
    • INSTANCE_SELECTION:要移除的实例选择的名称。如果有多个实例选择,请提供名称的英文逗号分隔列表。

    REST

    如需移除 MIG 中的特定实例选择,请使用 regionInstanceGroupManagers.patch 方法

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
    
      {
        "instanceFlexibilityPolicy": {
          "instanceSelections": {
            "INSTANCE_SELECTION": null
          }
        }
      }
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID
    • REGION:MIG 所在的区域。
    • INSTANCE_GROUP_NAME:要从中移除实例选择的 MIG 的名称。
    • INSTANCE_SELECTION:要移除的实例选择的名称。如果有多个实例选择,请指定所有实例选择。例如 "selection-1": null,"selection-2": null

    更新虚拟机的机器类型以使用最新配置

    如果 MIG 中的任何虚拟机使用的是从实例灵活性配置中移除的机器类型,则您必须更新或重新创建虚拟机以更新其机器类型。

    如需更新或重新创建虚拟机,请使用以下选项之一:

    • 使用 regionInstanceGroupManagers.applyUpdatesToInstances 方法更新虚拟机。使用 applyUpdatesToInstances 方法时,mostDisruptiveAllowedAction 字段必须为 RESTARTREPLACE

    • 使用 regionInstanceGroupManagers.recreateInstances 方法重新创建虚拟机

    • 请先删除虚拟机,然后调整 MIG 大小以达到所需的虚拟机数量,从而重新创建虚拟机。

    后续步骤