本文档介绍了使用 Compute Engine 批量创建虚拟机时的实例灵活性。
如果您在一个区域中批量创建虚拟机 (VM),并且您的应用不限于单一机器类型,则可以通过配置实例灵活性来提高预配所需数量虚拟机的成功率。借助实例灵活性,您可以指定一种或多种适合您的工作负载的机器类型。然后,Compute Engine 会根据容量和配额可用性,使用这些机器类型中的任何一种来预配虚拟机。
使用实例灵活性
如需配置实例灵活性,您可以通过定义
一个或多个实例选择,在您的区域批量插入请求中列出合适的机器类型。
例如,在 REST 请求中,您可以添加 instanceFlexibilityPolicy 对象,并在其中定义一个或多个 instanceSelections 对象,每个对象都包含一个机器类型列表。
Compute Engine 收到请求后,会先验证机器类型及其可用区兼容性,排除任何无效条目。如果至少存在一个有效配置,则操作会继续。
然后,Compute Engine 会尝试根据可用硬件、配额和预留来预配虚拟机。如果您为实例选择配置了排名,则系统会优先选择排名较低的选择。在每个排名中,Compute Engine 会考虑未使用的预留和 Spot 虚拟机指南,以选择抢占概率较低的机器类型。
定义目标分布形状时的可用区选择
将实例灵活性与区域 bulkInsert 请求搭配使用时,您可以指定目标分布形状,以控制虚拟机在区域中的可用区之间的分布方式。Compute Engine 会根据此形状选择用于预配虚拟机的可用区,如下所示:
ANY_SINGLE_ZONE:Compute Engine 会选择一个可用区,该可用区具有偏好级别较高的机器类型的最大容量。BALANCED:Compute Engine 会在具有可用资源的可用区之间尽可能均匀地分布虚拟机。在每个可用区中,Compute Engine 会优先选择偏好级别较高的机器类型。ANY:Compute Engine 会选择具有可用资源的可用区。如果配置了排名,则 Compute Engine 会优先选择可用区,以预配偏好级别较高的机器类型的虚拟机。
如需了解详情,请参阅在一个区域中批量创建虚拟机。
最小虚拟机预配和实例灵活性
如果您在 bulkInsert 请求中为所需的最小虚拟机数量 (minCount) 定义了一个值,则 API 会尝试创建至少该数量的虚拟机。如果 Compute Engine 无法预配所需的最小虚拟机数量 (minCount),则整个操作会失败,并且 Compute Engine 不会创建任何虚拟机。将 minCount 与实例灵活性搭配使用时,Compute Engine 会优先根据可获取性而非排名来预配虚拟机,如下所示:
- Compute Engine 会优先预配最多
count个虚拟机,即使这意味着使用偏好级别较低的机器也是如此。 例如,如果您的请求指定了至少一个所需的虚拟机 (minCount=1) 和最多 10 个虚拟机 (count=10),并且 Compute Engine 有能力预配一个偏好级别较高的虚拟机或六个偏好级别较低的虚拟机,则 Compute Engine 会预配六个偏好级别较低的虚拟机。 - 如果 Compute Engine 可以通过使用不同的实例选择来预配最多
count个虚拟机,则它会优先选择偏好级别较高的选择。例如,如果您的请求指定了至少一个所需的虚拟机 (minCount=1) 和最多 10 个虚拟机 (count=10),并且 Compute Engine 可以通过使用偏好级别较高或偏好级别较低的实例选择来预配六个虚拟机,则 Compute Engine 会从偏好级别较高的选择中预配六个虚拟机。
如需了解详情,请参阅 minCount 中的
bulkInsert 属性。
批量插入验证和错误场景
Compute Engine 会对机器类型及其可用区兼容性执行初始验证,排除任何无效条目。如果在此初始检查后至少保留一个有效配置,Compute Engine 会继续创建虚拟机。
但是,只有在 Compute Engine 根据您的实例灵活性政策和可用容量选择用于预配的可用区和机器类型后,才能进行某些配置验证。
如果在稍后的验证阶段,发现为预配选择的特定机器类型和可用区组合无效,则整个批量插入请求会因验证错误而失败。即使 instanceFlexibilityPolicy 中的其他配置最初有效,也可能会发生此失败。
限制
使用实例灵活性批量创建虚拟机时,存在以下限制:
- 您只能为区域
bulkInsert请求指定实例灵活性;您无法将其与可用区请求搭配使用。 - 实例灵活性不支持 AI Hypercomputer 功能,包括未来预留、弹性启动预配模型以及 A3 Ultra、A4 和更新的 GPU。
- 您最多可以在 10 个不同的实例选择中指定 10 种不同的机器类型。
后续步骤
- 了解如何使用实例灵活性批量创建虚拟机。