本文档介绍如何配置 MIG 以在修复操作期间重新创建虚拟机时应用最新的实例模板和每个实例配置。在修复操作期间应用最新的可用配置也称为修复时更新。本文档还介绍了如何检查 MIG 中是否启用了修复时更新功能,以及如何停用修复时更新功能(如果已启用)。
默认情况下,在修复期间,MIG 会使用最初用于创建虚拟机的同一实例配置重新创建虚拟机。如果有实例组的实例模板或每个实例配置的更新可用,您可以选择将这些更改应用于正在修复的虚拟机。
如果您想自动将配置更新应用于所有或一组虚拟机 (PROACTIVE),或者选择性地更新特定实例 (OPPORTUNISTIC),请参阅将新配置应用于 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
-
安装 Google Cloud CLI,然后使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
gcloud init - Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI,然后使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
gcloud init如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
配置修复时更新
如需配置修复时更新,请使用 Google Cloud 控制台、gcloud CLI 或 REST。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
点击要为其配置“修复时更新”的 MIG 的名称。
点击修改以修改 MIG。
点击实例生命周期和自动修复,以展开该部分。
在在虚拟机实例修复期间进行更新部分,选择更新实例配置。
点击保存。
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./compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy": {
"forceUpdateOnRepair": YES
}
}
对于新的可用区级 MIG,请使用 instanceGroupManagers.insert 方法;对于新的区域级 MIG,请使用 regionInstanceGroupManagers.insert 方法。
创建可用区级 MIG 时,进行以下调用以配置修复时更新:
POST https://compute./compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
"name": "MIG_NAME",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"targetSize": SIZE,
"instanceLifecyclePolicy": {
"forceUpdateOnRepair": YES
}
}
请替换以下内容:
检查是否启用了修复时更新
默认情况下,MIG 不会在修复期间更新虚拟机。如需检查是否为 MIG 启用了修复时更新,请使用 Google Cloud 控制台、gcloud CLI 或 REST 查看修复时更新配置。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
点击要检查其配置的 MIG 的名称。
点击详细信息标签页。
在虚拟机实例生命周期部分中,检查针对虚拟机实例修复期间的更新选择的选项。如果该字段显示更新实例配置,则表示已启用“修复时更新”。
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./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 停用修复时更新。
使用 Google Cloud 控制台、gcloud CLI 或 REST 停用修复时更新。
控制台
在 Google Cloud 控制台中,前往实例群组页面。
点击要停用修复时更新的 MIG 名称。
点击修改以修改 MIG。
点击实例生命周期和自动修复,以展开该部分。
在在虚拟机实例修复期间进行更新部分,选择保持原来的实例配置。
点击保存。
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./compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"instanceLifecyclePolicy":
{ "forceUpdateOnRepair": NO
}
}
请替换以下内容:
PROJECT_ID:您的项目 ID。ZONE:MIG 所在的可用区。MIG_NAME:实例组的名称。
后续步骤
- 设置应用健康检查和自动修复。
- 如果您为 MIG 配置了基于应用的���康检查,请监控虚拟机健康状况变化。