本文档介绍如何在单个可用区中创建代管式实例组 (MIG)。将 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
在 Google Cloud Console 中,转到实例组页面。
其余步骤会显示在 Google Cloud 控制台中。
-
点击
创建实例组 。 -
如果您要创建有状态 MIG,请选择
新的托管式实例组(有状态) 选项。为帮助您决定,请参阅何时使用有状态 MIG。 - 为实例组指定名称和(可选)说明。
- 为实例组选择一个实例模板或创建一个新实例模板。
-
指定此实例组内的
虚拟机数量 。请务必预配足够多的虚拟机,以便在一个可用区发生故障时,您的应用可获得相应的支持。 -
对于
位置 ,选择单个可用区。 - 选择要在其中创建 MIG 的区域和可用区。如果您选择了区域级实例模板,则系统会根据模板的区域自动选择区域。
- 对于无状态 MIG,自动扩缩功能默认处于启用状态。当自动扩缩功能启用时,实例组会根据其利用率自动添加或移除实例。
- (可选)启用自动修复功能,以对该组中的虚拟机执行基于应用的健康检查。
- 点击创建以创建新组。
INSTANCE_GROUP_NAME
:此实例组的名称。SIZE
:此实例组的大小。INSTANCE_TEMPLATE
:该组将使用的实例模板的名称。 对于区域级实例模板,您必须指定模板的完整或部分网址。完整网址的示例是https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
,部分网址是projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
。ZONE
:提供 Compute Engine 服务的一个可用区。如果要在一个区域中的多个可用区之间分布 MIG 的虚拟机,请参阅创建区域级 MIG。PROJECT_ID
:请求的项目 ID。ZONE
:请求所在的可用区。如果要在一个区域中的多个可用区之间分布 MIG 的虚拟机,请将zones/ZONE
替换为regions/REGION
并指定区域。如需了解详情,请参阅创建区域级 MIG。INSTANCE_GROUP_NAME
:此实例组的名称。SIZE
:此实例组的大小。INSTANCE_TEMPLATE
:此实例组将使用的实例模板。- 设置基于应用的自动修复功能,该功能会定期验证应用是否在 MIG 的每个虚拟机上按预期响应,并自动重新创建无响应的虚拟机。
- 启用自动扩缩功能,以根据负载的增减自动在 MIG 中添加或删除虚拟机。
- 了解如何通过设置并应用新的实例模板、所有实例配置或每个实例配置,将新配置应用于 MIG 中的所有或部分虚拟机。
- 通过添加有状态配置,在虚拟机重新创建、自动修复和更新等破坏性事件中保留磁盘、元数据和 IP 地址。
- 了解如何使用代管式实例,例如,如何删除、放弃和重新创建 MIG 中的虚拟机。
- 查看有关 MIG 及其虚拟机的信息。
- 了解如何将外部 HTTP(S) 负载均衡器前端添加到实例组。如需了解其他类型的负载均衡器,请参阅负载均衡概览。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
限制
如需查看 MIG 限制的完整列表(因您使用的配置而异),请参阅 MIG 限制。
在单个可用区中创建 MIG
如需在单个可用区中创建 MIG,请使用 Google Cloud 控制台、gcloud CLI、Terraform 或 REST。
控制台
gcloud
如果您尚未创建您希望为 MIG 中的每个虚拟机指定机器类型、启动磁盘映像、网络和其他虚拟机属性的实例模板,请创建实例模板。
使用
instance-groups managed create
命令创建托管式实例组,并指定组名称、组大小、实例模板和可用区。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size SIZE \ --template INSTANCE_TEMPLATE \ --zone ZONE
请替换以下内容:
您可以视需要提供
--base-instance-name
标志。由于这些虚拟机是基于通用模板创建的,因此系统会为每个虚拟机分配一个随机字符串,作为虚拟机名称的一部分。基本名称加在此随机字符串的前面。例如,如果您将基本名称设置为test
,则虚拟机名称将类似于test-yahs
和test-qtyz
。如果您需要特定名称,请参阅在 MIG 中创建具有特定名称的实例。例如,以下命令会创建一个名为 example-group 的实例组,其基本虚拟机名称为
test
。该组包含三个实例:gcloud compute instance-groups managed create example-group \ --base-instance-name test \ --size 3 \ --template an-instance-template \ --zone us-central1-f
Terraform
如果您尚未创建您希望为 MIG 中的每个虚拟机指定机器类型、启动磁盘映像、网络和其他虚拟机属性的实例模板,请创建实例模板。
如需创建可用区级 MIG,您可以使用
google_compute_instance_group_manager
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
REST
如果您尚未创建您希望为 MIG 中的每个虚拟机指定机器类型、启动磁盘映像、网络和其他虚拟机属性的实例模板,请创建实例模板。
使用
instanceGroupManagers.insert
方法创建托管式实例组。在请求正文中,包含实例组名称、实例组大小和实例模板的网址。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE }
请替换以下内容:
您可以视需要提供
base-name
字段。由于这些虚拟机是基于通用模板创建的,因此系统会为每个虚拟机分配一个随机字符串,作为虚拟机名称的一部分。基本名称加在此随机字符串的前面。例如,如果您将基本名称设置为test
,则虚拟机名称将类似于test-yahs
和test-qtyz
。如果您需要特定名称,请参阅在 MIG 中创建具有特定名称的实例。各种政策和操作可能会影响组中的实例,具体取决于您对 MIG 进行配置和操作的方式。若要确定哪些代管实例已启动并正在运行,请参阅检查代管实例的状态。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-25。
-