借助代管式实例组 (MIG) 中的实例灵活性,您可以为组中的虚拟机 (VM) 实例指定多种机器类型,而不是仅限于一种机器类型。如果某种机器类型不可用,MIG 可以根据当前资源可用情况,从您的列表中自动选择其他兼容类型。这种灵活性有助于提高资源可用性,对于可在不同机器类型上运行且需要大规模容量或高需求硬件的应用而言,这种灵活性尤为重要。
本文档介绍了实例灵活性在 MIG 中的运作方式及其限制。如需了解如何配置 MIG 以使用实例灵活性,请参阅添加实例灵活性。
实例灵活性
MIG 会根据您选择的实例模板创建其所有虚拟机。实例模板指定要为每个虚拟机使用的机器类型。借助实例灵活性,您可以列出与您的应用兼容的所有机器类型。
下图比较了使用单个机器类型的 MIG 与使用实例灵活性的 MIG。如图所示,采用单一机器类型的 MIG 会根据实例模板创建完全相同的虚拟机,而采用实例灵活性的 MIG 可以创建具有不同机器类型和大小的虚拟机。
实例灵活性的工作原理
默认情况下,MIG 会使用实例模板中的单个机器类型创建所有虚拟机。您可以在实例灵活性政策 (instanceFlexibilityPolicy
) 中配置实例选择 (instanceSelections
),以便在 MIG 中设置多种机器类型。
如果您的工作负载可以在多种不同的机器类型上运行,您只需在单个 instanceSelection
中配置与您的应用兼容的所有机器类型的列表,如下所示:
"instanceFlexibilityPolicy": { "instanceSelections": { "instance-selection-1": { "machineTypes": ["c3-standard-8","n2-standard-8","c2-standard-8"] } } }
实例选择中的机器类型具有相同的偏好程度。如果您希望 MIG 按特定顺序选择机器类型,可以配置多个实例选择,每个选择都包含机器类型列表和用于定义偏好的排名。排名越低,偏好程度越高。MIG 会尝试使用更高优先级的机器类型创建虚拟机。如果这些首选机器类型不可用,MIG 会使用偏好级别较低的机器类型。
"instanceFlexibilityPolicy": { "instanceSelections": { "instance-selection-1": { "rank": 1, "machineTypes": ["c3-standard-8","n2-standard-8","c2-standard-8"] }, "instance-selection-2": { "rank": 2, "machineTypes": ["c3-standard-16","n2-standard-16","c2-standard-16"] } } }
您的应用需要准备好在所列的任何机器类型上运行,因为硬件可用性会随时间而变化,除非您使用reservations,否则无法保证获得特定硬件。
MIG 如何选择机器类型
当您配置多种机器类型时,MIG 会根据当前资源可用情况选择机器类型,并优先选择未使用的预留资源。如果您已配置排名,MIG 会先考虑您的偏好顺序。然后,MIG 会在排名实例选择中检查资源可用性,然后检查预留情况。
MIG 所在区域的可用区也可能会影响机器类型的选择,因为资源可用性因可用区而异。如需了解详情,请参阅下一部分,了解 MIG 如何选择可用区。
MIG 如何选择可用区
您可以在目标分布形状为 BALANCED
或 ANY_SINGLE_ZONE
的区域级 MIG 中配置实例灵活性。借助实例灵活性,当区域级 MIG 创建虚拟机时,它会根据所选的目标分布形状选择可用区,如下所示:
BALANCED
:MIG 会选择一个有可用资源的可用区,以便尽可能均匀地在各个可用区之间分布虚拟机。在所选可用区内,MIG 会根据排名(如果已配置)和可用预留情况确定机器类型的优先级。ANY_SINGLE_ZONE
:MIG 会根据排名(如果已配置)选择机器类型最多的可用区,并在该可用区使用未使用的预留资源创建最多的虚拟机。
如需详细了解目标分布形状的运作方式,请参阅区域级 MIG 目标分布形状。
实例灵活性和预留
您可以将实例灵活性与预留搭配使用。MIG 会根据您在实例模板中设置的 reservationAffinity
字段使用预留资源。
当实例选择中包含多个机器类型时,MIG 会先选择未使用的预留机器类型。如果您想更改 MIG 选择机器类型的顺序,可以配置多个实例选择,并使用排名指定您的偏好。然后,MIG 会先遵循偏好顺序,然后再考虑实例选择中的预订。
如需详细了解预留,请参阅 Compute Engine 可用区级资源的预留。
实例灵活性和 Spot 虚拟机
如果支持实例灵活性的 MIG 使用 Spot 虚拟机,则 MIG 会自动选择观察到的抢占率最低的机器类型,以确保工作负载受到的干扰最小。如果您想替换此行为,可以配置多个实例选择,并使用排名指定您的偏好。然后,MIG 会先遵循偏好顺序,然后再考虑实例选择中的 Spot 虚拟机可靠性。
如需详细了解 Spot 虚拟机,请参阅代管式实例组中的 Spot 虚拟机。
实例灵活性和虚拟机修复
默认情况下,如果 MIG 中的虚拟机发生故障,MIG 会使用相同的配置(包括机器类型)重新创建该虚拟机,从而修复该虚拟机。如果您配置了实例灵活性,并且故障虚拟机的原始机器类型暂时不可用,MIG 会根据指定的实例选择其他机器类型。
如需详细了解修复功能,请参阅关于修复虚拟机以实现高可用性。
限制
实例灵活性存在以下限制:
可用区级 MIG 不支持实例灵活性。您可以改用包含单个可用区的区域级 MIG。
实例灵活性不支持以下 MIG 功能:
将 MIG 与Cloud Load Balancing搭配使用时,请使用性能相似的机器类型(例如,相同的 vCPU 数量),以防止小型硬件过度使用,以及更快的机器未充分利用。否则,使用性能不同的机器类型时,负载均衡可能无法有效运行。
后续步骤
- 详细了解不同的机器类型。
- 为 MIG 添加实例灵活性。
- 查看 MIG 中的实例灵活性。