在修复期间应用配置更新

本文档介绍如何配置 MIG 以在修复操作期间重新创建虚拟机时应用最新的实例模板和每个实例配置。在修复操作期间应用最新的可用配置也称为修复时更新。本文档还介绍了如何检查 MIG 中是否启用了修复时更新功能,以及如何停用修复时更新功能(如果已启用)。

默认情况下,在修复期间,MIG 会使用最初用于创建虚拟机的同一实例配置重新创建虚拟机。如果有实例组的实例模板或每个实例配置的更新可用,您可以选择将这些更改应用于正在修复的虚拟机。

如果您想自动将配置更新应用于所有或一组虚拟机 (PROACTIVE),或者选择性地更新特定实例 (OPPORTUNISTIC),请参阅将新配置应用于 MIG 中的虚拟机

准备工作

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

    配置修复时更新

    如需配置修复时更新,请使用 Trusted Cloud 控制台、gcloud CLI 或 REST。

    控制台

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

      进入“实例组”

    2. 点击要配置“修复时更新”的 MIG 名称。

    3. 点击修改以修改 MIG。

    4. 虚拟机实例生命周期部分中,针对虚拟机实例修复期间的更新,选择更新实例配置

    5. 点击保存

    gcloud

    对于现有 MIG,请使用 update 命令

    gcloud compute instance-groups managed update MIG_NAME \
        --force-update-on-repair
    

    对于新的 MIG,请使用 create 命令

    gcloud compute instance-groups managed create MIG_NAME \
        --template INSTANCE_TEMPLATE_URL_ \
        --size SIZE \
        --force-update-on-repair
    

    请替换以下内容:

    • MIG_NAME:实例组的名称。
    • INSTANCE_TEMPLATE_URL:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:
      • 对于区域级实例模板:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • 对于全球实例模板:INSTANCE_TEMPLATE_ID
    • SIZE:实例组的目标大小。

    REST

    对于现有的可用区级 MIG,请使用 instanceGroupManagers.patch 方法;对于现有的区域级 MIG,请使用 regionInstanceGroupManagers.patch 方法

    进行以下调用,在现有可用区级 MIG 中配置修复更新:

    PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
    {
      "instanceLifecyclePolicy": {
        "forceUpdateOnRepair": YES
      }
    }
    

    对于新的可用区级 MIG,请使用 instanceGroupManagers.insert 方法;对于新的区域级 MIG,请使用 regionInstanceGroupManagers.insert 方法

    创建可用区级 MIG 时,进行以下调用以配置修复时更新:

    POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "name": "MIG_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "targetSize": SIZE,
      "instanceLifecyclePolicy": {
        "forceUpdateOnRepair": YES
      }
    }
    

    请替换以下内容:

    • PROJECT_ID:您的项目 ID
    • ZONE:MIG 所在的可用区。
    • MIG_NAME:实例组的名称。
    • INSTANCE_TEMPLATE_URL:您要用于在 MIG 中创建虚拟机的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:
      • 对于区域级实例模板:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • 对于全球实例模板:INSTANCE_TEMPLATE_ID
    • SIZE:实例组的目标大小。

    检查是否启用了修复时更新

    默认情况下,MIG 不会在修复期间更新虚拟机。如需检查是否为 MIG 启用了修复时更新,请使用 Trusted Cloud 控制台、gcloud CLI 或 REST 查看修复时更新配置。

    控制台

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

      进入“实例组”

    2. 点击要检查其配置的 MIG 的名称。

    3. 点击详细信息标签页。

    4. 虚拟机实例生命周期部分中,检查针对虚拟机实例修复期间的更新选择的选项。如果选择了更新实例配置,则启用修复时更新。

    gcloud

    使用如下所示的 describe 命令

    gcloud compute instance-groups managed describe MIG_NAME \
    --format="(instanceLifecyclePolicy)"
    

    在响应正文中,检查 forceUpdateOnRepair 字段,该字段的值为以下值之一:

    • NO:默认值。MIG 不会在虚拟机修复时更新虚拟机。
    • YES:MIG 会在修复期间更新虚拟机。

    以下是输出示例:

    instanceLifecyclePolicy:
     forceUpdateOnRepair: YES
    

    REST

    对于可用区级 MIG,请使用 instanceGroupManagers.get 方法;对于区域级 MIG,请使用 regionInstanceGroupManagers.get 方法

    例如,在可用区级 MIG 中,使用以下命令:

    GET https://compute.s3nsapis.fr/compute/v1/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
    

    在响应正文中,检查 instanceLifecyclePolicy.forceUpdateOnRepair 字段,该字段的值为以下值之一:

    • NO:默认值。MIG 不会在虚拟机修复时更新虚拟机。
    • YES:MIG 会在修复期间更新虚拟机。

    以下是示例响应:

    {
      ...
      "name": "example-mig",
      "targetSize": 12,
      ...
      "instanceLifecyclePolicy": {
        "forceUpdateOnRepair": "YES"
      },
      ...
    }
    

    请替换以下内容:

    • PROJECT_ID:您的项目 ID
    • ZONE:MIG 所在的可用区。
    • MIG_NAME:实例组的名称。

    停用修复更新

    在 MIG 修复虚拟机时,如果您希望 MIG 使用用于创建虚拟机的原始实例模板或实例配置,则必须停用修复时更新。默认情况下,系统会对 MIG 停用修复时更新。

    使用 Trusted Cloud 控制台、gcloud CLI 或 REST 停用修复时更新。

    控制台

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

      进入“实例组”

    2. 点击要停用修复时更新的 MIG 名称。

    3. 点击修改以修改 MIG。

    4. 虚拟机实例生命周期部分中,针对虚拟机实例修复期间的更新,选择保留相同的实例配置

    5. 点击保存

    gcloud

    使用 update 命令设置 --no-force-update-on-repair 标志,如下所示:

    gcloud compute instance-groups managed update MIG_NAME \
        --no-force-update-on-repair
    

    REST

    对于可用区级 MIG,请使用 instanceGroupManagers.patch 方法;对于区域级 MIG,请使用 regionInstanceGroupManagers.patch 方法

    例如,如需为可用区级 MIG 停用修复更新功能,请使用以下命令:

    PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
    {
    "instanceLifecyclePolicy":
    { "forceUpdateOnRepair": NO
    }
    }
    

    请替换以下内容:

    • PROJECT_ID:您的项目 ID
    • ZONE:MIG 所在的可用区。
    • MIG_NAME:实例组的名称。

    后续步骤