托管式实例组 (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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 实例生命周期状态,例如
RUNNING
、STOPPING
。 - MIG 对实例执行的当前操作,例如:
RESTARTING
、VERIFYING
、NONE
。 - 实例的运行状况状态,例如
HEALTHY
、UNHEALTHY
。 - 手动设置 MIG 的大小。
- 对无状态应用使用自动扩缩功能。
- 创建具有特定名称的实例。
- 调整 MIG 的大小。MIG 会选择要删除的实例。
- 手动调整 MIG 的大小。
- 对无状态应用使用自动扩缩功能。
- 删除整个实例组。
- 明确删除或放弃特定实例。
- 了解如何将新配置应用于 MIG 中的虚拟机。
- 了解如何为 MIG 应用机器类型建议。
- 试用教程:
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
什么是托管实例?
代管实例是 MIG 中的数据实体,其中包含实际虚拟机实例的当前状态和预期状态。
代管实例的当前状态包括以下字段:
代管实例的实际虚拟机实例预期状态包括:
如图 1 所示,对于 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 CLI 或 REST 重新创建托管式实例组中的选定虚拟机实例。
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。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。
-