本文档介绍了已暂停和已停止的虚拟机 (VM) 实例的备用池的工作原理,以及如何使用备用池来加速托管式实例组 (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.
- 如果虚拟机需要耗时的内存初始化,请使用已暂停的虚拟机,因为已暂停的虚拟机会保留内存状态。确保您的应用可以暂停和恢复。保留内存状态需要额外的存储空间,并且可能会产生额外费用。
- 如果虚拟机初始化主要侧重于初始化存储在永久性磁盘中的数据,请使用已停止的虚拟机。
在 Google Cloud 控制台中,转到实例组页面。
在列表的名称列下方,点击要在其中修改待机政策的实例组的名称。
点击编辑以修改此托管式实例组。
点击显示高级配置。
在备用池部分的模式下,选择扩容。
在初始延迟字段中,输入 MIG 在暂停或停止虚拟机之前应等待的秒数。初始延迟时间可让初始化脚本有时间来准备虚拟机以快速地进行扩容。
点击保存。
MIG_NAME
:MIG 的名称。DELAY
:MIG 在暂停或停止虚拟机之前应等待的秒数。初始延迟时间可让初始化脚本有时间来准备虚拟机以快速地进行扩容。REGION
:对于区域级 MIG,这是 MIG 所在的区域。ZONE
:对于可用区级 MIG,这是 MIG 所在的可用区。PROJECT_ID
:您的项目的 ID。ZONE
:对于可用区级 MIG,这是 MIG 所在的可用区。- 对于区域级 MIG,将
zones/ZONE
替换为regions/REGION
并指定 MIG 所在的区域。
- 对于区域级 MIG,将
MIG_NAME
:MIG 的名称。DELAY
:MIG 在暂停或停止虚拟机之前应等待的秒数。初始延迟时间可让初始化脚本有时间来准备虚拟机以快速地进行扩容。在 Google Cloud 控制台中,转到实例组页面。
在列表的名称列下方,点击要在其中修改备用池大小的实例组的名称。
点击编辑以修改此托管式实例组。
点击显示高级配置。
在备用池部分的已暂停的虚拟机和已停止的虚拟机字段中输入新大小。
点击保存。
MIG_NAME
:要在其中暂停实例的 MIG 的名称。SUSPENDED_SIZE
:MIG 在任何给定时间应维护的已暂停虚拟机数量。STOPPED_SIZE
:MIG 在任何给定时间应维护的已停止虚拟机数量。REGION
:对于区域级 MIG,这是 MIG 所在的区域。ZONE
:对于可用区级 MIG,这是 MIG 所在的可用区。PROJECT_ID
:请求的项目 ID。ZONE
:对于可用区级 MIG,这是 MIG 所在的可用区。- 对于区域级 MIG,将
zones/ZONE
替换为regions/REGION
并指定 MIG 所在的地区。
- 对于区域级 MIG,将
MIG_NAME
:要在其中停止实例的 MIG 的名称。SUSPENDED_SIZE
:MIG 在任何给定时间应维护的已暂停虚拟机数量。STOPPED_SIZE
: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 API 进行自动扩缩
我们建议您使用 Compute Engine 自动扩缩器来自动扩缩 MIG。不过,如果您出于某种原因更倾向于使用其他自动扩缩器,请使用 MIG API 的端点来处理已暂停和已停止的虚拟机。
在已暂停和已停止的池之间选择
在已暂停和已停止的池之间选择取决于您的具体应用场景。为了获得最佳性能,您应该针对扩容场景尝试不同的备用池类型,以确定哪种类型最符合您的需求。 不同工作负载可能展示使用不同选项进行处理的时间更短。在某些情况下,将内存状态从存储复制到虚拟机这一操作所花费的时间可能比重启虚拟机或从头开始创建新虚拟机的时间更长。
为了找到最佳方法,请先参考以下准则:
修改 MIG 中的待机政策
本部分介绍了如何设置初始延迟时间,以及如何设置备用池模式以扩容池。
控制台
gcloud
使用
beta instance-groups managed update
命令并指定操作模式和初始延迟时间。gcloud beta compute instance-groups managed update MIG_NAME \ --standby-policy-mode=scale-out-pool \ --standby-policy-initial-delay=DELAY \ [--region=REGION | --zone=ZONE]
替换以下内容:
API
使用
instanceGroupManager.update
方法并在请求正文中指定操作模式和初始延迟时间。对于区域级 MIG,请使用regionInstanceGroupManager.update
方法。PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { // ... "standbyPolicy": { "mode": "SCALE_OUT_POOL", "initialDelaySec": DELAY } // ... }
替换以下内容:
调整 MIG 中备用池的大小
本部分介绍了如何调整 MIG 中的已暂停和已停止的虚拟机池的大小。
控制台
gcloud
将
instance-groups managed update
Beta 版命令与--suspended-size
和--stopped-size
标志结合使用。gcloud beta compute instance-groups managed update MIG_NAME \ --suspended-size=SUSPENDED_SIZE \ --stopped-size=STOPPED_SIZE \ [--region=REGION | --zone=ZONE]
替换以下内容:
API
使用
instanceGroupManager.update
方法并在请求正文中指定已暂停和已停止的虚拟机池大小。对于区域级 MIG,请使用regionInstanceGroupManager.update
方法。PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { // ... "targetSuspendedSize": SUSPENDED_SIZE, "targetStoppedSize": STOPPED_SIZE // ... }
替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-