使用代管式实例


代管式实例组 (MIG) 会根据您使用的配置组件创建每个代管式实例:实例模板、可选的所有实例配置和可选的有状态配置。

每个代管式实例都是一个数据实体,表示 MIG 中实际虚拟机实例的预期状态

阅读本文档了解如何可靠地使用 MIG 中的代管实例。例如,您可能需要添加、移除、更新特定实例或查看特定实例的相关信息。

为了确保 MIG 不会还原您的配置更改,请务必使用本文档中介绍的方法。如果您使用实例组方法以外的方法修改 MIG 的虚拟机,MIG 不一定能检测到这些虚拟机将不再使用实例组的预期配置,因此您可能会遇到意外结果。例如,如果您使用实例 API 而不是要求的实例组管理器 API 来删除或更新 MIG 中的虚拟机,MIG 将无从知晓您的意图,在这之后,MIG 随时可能根据 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

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

什么是托管实例?

代管实例是 MIG 中的数据实体,其中包含实际虚拟机实例的当前状态和预期状态。

代管实例的当前状态包括以下字段:

代管实例的实际虚拟机实例预期状态包括:

  • 预期版本,即要用于实例的版本名称和实例模板。
  • 待保留项(例如磁盘或元数据)的保留状态

如图 1 所示,对于 MIG 中的每个代管实例,MIG 会根据该代管实例的规范启动并运行实际虚拟机。

MIG 会根据您的配置自动生成代管实例,这些实例对应于 MIG 代表您维护的实际虚拟机实例。

图 1.代管实例和对应虚拟机之间的关系。

如需查看代管式实例的规范,请参阅查看有关 MIG 中代管式实例的信息

向 MIG 添加实例

如需向 MIG 添加更多实例,您可以执行以下操作:

如需验证新添加的实例已经启动且正在运行,请验证组的状态验证托管实例的状态

手动调整大小

如果代管式实例组尚未设置为自动扩缩,则可以手动设置实例组的大小以更改实例组中的实例数。请参阅手动调整 MIG 的大小

自动扩缩

您可以将托管实例组配置为根据其工作负载自动添加或移除实例。您的应用可以顺利应对流量增加的情况,同时您也可以在计算资源需求量降低时减少费用。如需详细了解如何自动扩缩 MIG,请参阅自动扩缩实例组

添加具有特定名称的实例

如果您的系统依赖于特定名称,您可以将具有这些名称的虚拟机添加到现有 MIG。如果 MIG 重新创建虚拟机,则您为这些代管式实例分配的名称仍会保留。如需了解详情,请参阅在 MIG 中创建具有特定名称的实例

如需详细了解如何保留 MIG 实例状态,请参阅有状态 MIG

从 MIG 中删除实例

在您删除代管实例时,MIG 会缩减实例组的 targetSize 并删除相应的虚拟机实例。

如果您设置了有状态 MIG,则 MIG 会删除实例的保留状态配置。MIG 还会从其所属的任何目标池中移除实例。

如果该实例组属于已启用连接排空后端服务,则在连接排空结束后,最长可能需要再等待 60 秒才会移除或删除虚拟机实例。

如需删除代管式实例,您可以执行以下操作:

更新 MIG 中的虚拟机配置

如果您需要更改 MIG 中的虚拟机配置(例如,修改启动磁盘或机器类型、添加磁盘或更改其他虚拟机属性),请参阅更新 MIG 中的虚拟机配置

在 MIG 中重新创建实例

您可以使用此方法来更新选定的虚拟机,从而让它们使用组的最新虚拟机配置组件。如果您需要重新创建代管式实例组中的所有虚拟机,请改为启动滚动更新

如果该实例组属于已启用连接排空后端服务,则在连接排空结束后,最长可能需要再等待 60 秒才会移除或删除虚拟机实例。

您可以使用 gcloud CLIREST 重新创建代管式实例组中的选定虚拟机实例。

gcloud

使用 instance-groups managed recreate-instances 命令

gcloud compute instance-groups managed recreate-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
    [--region REGION | --zone ZONE]

REST

在 API 中,向 regionInstanceGroupManagers.recreateInstances 方法发出 POST 请求。对于区域代管实例组,请使用 instanceGroupManagers.recreateInstances 方法。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/recreateInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ]
}

在您发出在托管实例组中重新创建虚拟机实例的请求后,新虚拟机会在系统可以对其进行预配后立即启动。此过程可能会耗费大量时间,具体取决于您重新创建的实例数。 验证组的状态验证托管实例的状态

重新创建操作会保留虚拟机实例名称,但实例创建时间戳可能不会更改。如果实例创建时间戳未更改,如需确认重新创建操作已创建新实例,请检查挂接到该实例的启动磁盘的创建时间戳。

查看有关 MIG 中实例的信息

请参阅查看有关 MIG 中代管式实例的信息

在 MIG 中配置有状态实例

请参阅配置有状态 MIG

后续步骤