你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
使用 Instance Mix 部署规模集
本文内容
本文介绍如何使用 Instance Mix 部署规模集。
重要
适用于使用灵活业务流程模式的虚拟机规模集的 Instance Mix 目前为预览版。 需同意补充使用条款 才可使用预览版。 在正式版 (GA) 推出之前,此功能的某些方面可能会有所更改。
先决条件
在使用 Instance Mix 之前,请使用 az feature register 命令完成 FlexVMScaleSetSkuProfileEnabled
功能标志的功能注册:
az feature register --namespace "Microsoft.Compute" --name "FlexVMScaleSetSkuProfileEnabled"
注册此功能需要几分钟时间。 使用 az feature show 命令验证注册状态:
az feature show --namespace "Microsoft.Compute" --name "FlexVMScaleSetSkuProfileEnabled"
使用 Instance Mix 创建规模集
转到“虚拟机规模集”。
选择“创建”按钮以转到“创建虚拟机规模集”视图。
在“基本信息”选项卡上填写必填字段。 如果后续部分中未调用该字段,则可以将字段设置为最适合规模集的字段。
确保选择支持 Instance Mix 的区域。
确保将“业务流程模式”设置为“灵活”。
在“大小”部分中,单击“最多选择 5 个大小(预览)”,此时会显示“选择 VM 大小”页。
使用大小选取器选择最多五个 VM 大小。 选择 VM 大小后,单击页面底部的“选择”按钮以返回到规模集“基本信息”选项卡。
在“分配策略(预览)”字段中,选择分配策略。
使用 Prioritized
分配策略时,“排名大小” 部分显示在“分配策略”部分下方。 单击底部的排名优先级 显示优先级边栏选项卡,可在其中调整 VM 大小的优先级。
可以在后续选项卡中指定其他属性,也可以转到“查看 + 创建”,然后选择页面底部的“创建”按钮以启动 Instance Mix 规模集部署。
在将 CLI 命令与 Instance Mix 配合使用之前,请确保使用正确的 CLI 版本。 请确保使用的是版本 2.66.0
或更高版本。
可使用以下基本命令通过 Instance Mix 创建规模集,此命令默认使用 lowestPrice
分配策略:
az vmss create \
--name {myVMSS} \
--resource-group {myResourceGroup} \
--image ubuntu2204 \
--vm-sku Mix \
--skuprofile-vmsizes Standard_DS1_v2 Standard_D2s_v4
若要指定分配策略,请使用 --skuprofile-allocation-strategy
参数,如下所示:
az vmss create \
--name {myVMSS} \
--resource-group {myResourceGroup} \
--image ubuntu2204 \
--vm-sku Mix \
--skuprofile-vmsizes Standard_DS1_v2 Standard_D2s_v4 \
--skuprofile-allocation-strategy CapacityOptimized
可使用以下基本命令通过 Instance Mix 创建规模集,此命令默认使用 lowestPrice
分配策略:
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Credential $credentials `
-VMScaleSetName $vmssName `
-DomainNameLabel $domainNameLabel1 `
-VMSize "Mix" `
-SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4");
若要指定分配策略,请使用 SkuProfileAllocationStrategy
参数,如下所示:
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Credential $credentials `
-VMScaleSetName $vmssName `
-DomainNameLabel $domainNameLabel1 `
-SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4") `
-SkuProfileAllocationStrategy "CapacityOptimized";
若要使用利用 Instance Mix 的规模集配置对象创建规模集,请使用以下命令:
$vmss = New-AzVmssConfig -Location $loc -SkuCapacity 2 -UpgradePolicyMode 'Manual' -EncryptionAtHost -SecurityType $stnd -SkuProfileVmSize @("Standard_D4s_v3", "Standard_D4s_v4") -SkuProfileAllocationStrategy "CapacityOptimized"`
| Add-AzVmssNetworkInterfaceConfiguration -Name 'test' -Primary $true -IPConfiguration $ipCfg `
| Set-AzVmssOSProfile -ComputerNamePrefix 'test' -AdminUsername $adminUsername -AdminPassword $adminPassword `
| Set-AzVmssStorageProfile -OsDiskCreateOption 'FromImage' -OsDiskCaching 'None' `
-ImageReferenceOffer $imgRef.Offer -ImageReferenceSku $imgRef.Skus -ImageReferenceVersion 'latest' `
-ImageReferencePublisher $imgRef.PublisherName;
$vmssResult = New-AzVmss -ResourceGroupName $resourceGroupName -Name $vmssName -VirtualMachineScaleSet $vmss
若要通过 REST API 部署 Instance Mix 规模集,请使用对规模集的 PUT
调用:
PUT https://management.azure.com/subscriptions/{YourSubscriptionId}/resourceGroups/{YourResourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{youScaleSetName}?api-version=2023-09-01
在请求正文中,确保 sku.name
设置为 Mix:
"sku": {
"name": "Mix",
"capacity": {TotalNumberVMs}
},
确保引用现有子网:
"subnet": {
"id": "/subscriptions/{YourSubscriptionId}/resourceGroups/{YourResourceGroupName}/providers/Microsoft.Network/virtualNetworks/{YourVnetName}/subnets/default"
},
最后,请务必使用最多五种 VM 大小来指定 skuProfile
。 此示例使用三种:
"skuProfile": {
"vmSizes": [
{
"name": "Standard_D8s_v5"
},
{
"name": "Standard_E16s_v5"
},
{
"name": "Standard_D2s_v5"
}
],
"allocationStrategy": "lowestPrice"
},
使用 prioritized
分配策略时,可为指定的 vmSizes
指定优先级排名:
"skuProfile": {
"vmSizes": [
{
"name": "Standard_D8s_v5", "rank": 1
},
{
"name": "Standard_E16s_v5", "rank": 2
},
{
"name": "Standard_D2s_v5", "rank": 1
}
],
"allocationStrategy": "Prioritized"
},
后续步骤
了解如何更新 已启用 Instance Mix 的规模集。