本文档介绍了使用 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个虚拟机,即使这意味着使用偏好程度较低的机器。例如,如果您的请求指定了最少 1 个必需虚拟机 (minCount=1) 和最多 10 个虚拟机 (count=10),并且 Compute Engine 有足够的容量来预配 1 个较高偏好设置的虚拟机或 6 个较低偏好设置的虚拟机,那么 Compute Engine 会预配 6 个较低偏好设置的虚拟机。 - 如果 Compute Engine 可以通过不同的实例选择来预配最多
count个相同的虚拟机,则会优先选择偏好级别更高的实例。例如,如果您的请求指定了最少 1 个必需虚拟机 (minCount=1) 和最多 10 个虚拟机 (count=10),并且 Compute Engine 可以通过使用偏好设置较高的实例选择或偏好设置较低的实例选择来预配 6 个虚拟机,那么 Compute Engine 会从偏好设置较高的选择中预配这 6 个虚拟机。
如需了解详情,请参阅 bulkInsert 中的 minCount 属性。
批量插入验证和错误场景
Compute Engine 会对机器类型及其可用区兼容性进行初始验证,并排除任何无效条目。如果在此初始检查后至少还剩下一个有效配置,Compute Engine 会继续创建虚拟机。
不过,只有在 Compute Engine 根据实例灵活性政策和可用容量选择用于预配的可用区和机器类型后,才能进行某些配置验证。如果在后续验证阶段发现所选的特定机器类型和可用区组合无效,则整个批量插入请求会因验证错误而失败。即使 instanceFlexibilityPolicy 中的其他配置最初有效,也可能会发生此故障。
限制
在批量创建虚拟机时使用实例灵活性时,存在以下限制:
- 您只能为区域
bulkInsert请求指定实例灵活性,而不能将其与可用区级请求搭配使用。 - 实例灵活性不支持 AI Hypercomputer 功能,包括未来预留、灵活启动配置模型以及 A3 Ultra、A4 和更新的 GPU。
- 您无法在具有实例灵活性的情况下指定自定义机器类型。
- 您最多可以在 10 个不同的实例选择中指定 10 种不同的机器类型。
后续步骤
- 了解如何批量创建具有实例灵活性的虚拟机。