你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
实例组合允许在使用灵活业务流程模式的虚拟机规模集中指定多个虚拟机 (VM) 大小。 使用实例组合可以提高预配成功率、优化成本,或为能够在不同虚拟机大小上运行的工作负载创建可预测的分配顺序。
重要
实例组合仅适用于使用灵活业务流程模式的规模集。
先决条件
- 使用灵活业务流程模式的规模集。
- 目标订阅和区域中每个 VM 大小的足够配额。
- 在所选大小之间保持一致的虚拟机特性:体系结构 (x64/Arm64)、存储接口、本地磁盘配置以及安全配置文件。
何时使用实例组合
- 想要在单个规模集中运行一组异类 VM 大小,以提高成功预配的可能性。
- 希望通过允许 Azure 在合适的情况下选择较低成本的大小来降低费用。
- 你需要可预测的分配顺序,以便使用优先策略与预留、许可或节省计划保持一致。
实例组合的工作原理
- 在
skuProfile.vmSizes列表中定义最多五个 VM 大小。 - 选择一个
allocationStrategy来控制 Azure 在预配时如何选择 VM 大小。 - 在横向扩展期间,Azure 会评估可用性,并根据策略、价格和分配满足所选策略的实例,具体取决于配额和区域容量。
分配策略
实例组合支持三种分配策略。 请选择与优先级(成本、容量或可预测的分配顺序)相匹配的策略。
| 策略 | 最适用于 | 行为 | 注释 |
|---|---|---|---|
lowestPrice(默认值) |
对成本敏感且具备容错能力的工作负载 | 考虑可用容量时,首选 vmSizes 列表中的最低成本 VM 大小。 在容量允许的范围内,优先部署尽可能多的最低价格 VM,然后再转向更高价格的大小。 |
最适合现成 VM。 为确保容量,可以选择成本更高的大小。 |
capacityOptimized |
必须可靠地预配的关键工作负载 | 优先选择在目标区域中可用性最高的虚拟机大小;不考虑成本因素。 | 可用性因区域而异。 为确保容量,可以选择成本更高的大小。 |
Prioritized(预览版) |
可预测的分配顺序,保留对齐方式 | 遵循用户为 VM 大小定义的 rank 值;rank 数值越低表示优先级越高。 Azure 会在考虑容量限制的同时,根据等级分配实例。 |
rank 为可选项,可以重复,也不需要连续。 分配仍受区域容量限制的约束。 |
注释
rank 仅用于 Prioritized 策略。 对于 lowestPrice 和 capacityOptimized,忽略 rank。
规模集属性
对现有属性的更改
| 资产 | 更改 | 注释 |
|---|---|---|
sku.name |
对于实例混合部署,必须设为 "Mix"。 |
VM 大小将移动到 skuProfile 配置中。 |
sku.tier |
对于实例混合场景,应为 null。 |
可选属性;设为 null 以避免不同大小之间的层级不匹配。 |
sku.capacity |
表示规模集中所需的 VM 总数。 | 继续表示规模集的容量(所需的实例数)。 |
scaleInPolicy |
对于实例混合为非必要项。 | 实例混合使用 allocationStrategy 指导分配;横向缩减行为遵循规模集的策略和分配策略。 |
新属性
| 资产 | 类型 | Description | 示例值 |
|---|---|---|---|
skuProfile |
物体 | 用于实例混合配置的容器(vmSizes、allocationStrategy 等)。 | { "vmSizes": [...], "allocationStrategy": "Prioritized" } |
vmSizes |
字符串或对象的数组 | 要包含在实例混合中的 VM 大小列表(最多 5 个)。 每个项可以是字符串(大小名称),也可以是一个对象,对象中可以包含用于 rank 策略的可选 Prioritized。 |
[{ "name": "Standard_D8s_v5", "rank": 0 }, { "name":"Standard_D8as_v5", "rank": 1] |
allocationStrategy |
String | 确定 Azure 在预配时如何选择 VM 大小。 以下其中之一:lowestPrice、capacityOptimized、Prioritized。 |
"Prioritized" |
示例:优先分配(JSON 片段)
{
"skuProfile": {
"vmSizes": [
{ "name": "Standard_D8s_v5", "rank": 0 },
{ "name": "Standard_D8s_v4", "rank": 1 },
{ "name": "Standard_D4s_v5", "rank": 2 }
],
"allocationStrategy": "Prioritized"
}
}
注释
排名:数字越低,优先级越高。 排名值可以不连续,也可以重复。 使用 lowestPrice 或 capacityOptimized 时省略排名。
部署清单
在部署实例混合规模集之前:
- 验证规模集是否使用灵活编排模式。
- 确认目标订阅和区域中每个所选大小的 VM 配额。
- 确保所有所选 VM 大小都具有一致的体系结构、存储接口、本地磁盘配置和安全配置文件。
- 选择与目标匹配的分配策略(成本、可用性、可预测性)。
- 对于 REST API 部署,请确保目标资源组中存在虚拟网络。
建议
- 若要确保负载分布均衡,请使用具有类似 vCPU 和内存的 VM 大小。
- 为了获得一致的性能,请使用类似类型的 VM 大小(例如,都是 D 系列)。
- 为了获得预留或节省计划的权益,请使用
Prioritized,并将预留支持的大小设置为更高优先级。
限制和不支持的方案
- 业务流程模式:实例混合仅适用于灵活的业务流程模式。
-
skuProfile中支持的 VM 系列:仅 A、B、D、E 和 F 系列。 - 最多可以指定五个 VM 大小。
- 不能在同一实例组合中混用 VM 体系结构(例如 Arm64 和 x64)。
- 具有不同存储接口(SCSI 与 NVMe)的 VM 不能混用。
- 不能在同一实例组合中混合使用高级存储和非高级存储的 VM SKU。
- 所有 VM 必须共享相同的安全配置文件和本地磁盘配置。
- 实例组合不支持:备用池、Azure 专用主机、邻近放置组或按需容量预留。
后续步骤
了解如何 使用实例组合创建规模集。