如何将负载均衡器设置为Standard load balancer适配多放置组VM规模集
报错原因说明
Select a Standard load balancer as the virtual machine scale set is configured with multiple placement groups
该报错是因为开启多放置组的虚拟机规模集(单放置组最多支持100台VM,开启多放置组后可扩容至数千台),仅支持搭配标准SKU的负载均衡器使用,基础SKU负载均衡器不兼容该配置。
调整为标准SKU负载均衡器的操作方案
方法1:PowerShell脚本修改(适配DevOps流水线场景)
- 新建负载均衡器时显式指定SKU为Standard,示例代码:
$lb = New-AzLoadBalancer -Name "<负载均衡器名称>" -ResourceGroupName "<资源组名称>" -Location "<部署区域>" -Sku "Standard" -FrontendIpConfiguration $feConfig -BackendAddressPool $bePool - 若已有规模集关联了基础SKU负载均衡器,先解除关联再绑定新标准负载均衡器,示例代码:
# 拉取现有规模集配置 $vmss = Get-AzVmss -ResourceGroupName "<资源组名称>" -VMScaleSetName "<规模集名称>" # 解除旧负载均衡器关联 $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].LoadBalancerBackendAddressPools = $null Update-AzVmss -ResourceGroupName "<资源组名称>" -VMScaleSetName "<规模集名称>" -VirtualMachineScaleSet $vmss # 拉取新创建的标准SKU负载均衡器后端池配置 $standardBePool = Get-AzLoadBalancerBackendAddressPool -ResourceGroupName "<资源组名称>" -LoadBalancerName "<标准负载均衡器名称>" -Name "<后端池名称>" # 绑定新负载均衡器 $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].LoadBalancerBackendAddressPools = $standardBePool Update-AzVmss -ResourceGroupName "<资源组名称>" -VMScaleSetName "<规模集名称>" -VirtualMachineScaleSet $vmss
方法2:Azure门户图形化操作
- 基础SKU负载均衡器不支持直接升级为标准SKU,需先删除现有基础SKU负载均衡器
- 重新创建负载均衡器时,在SKU下拉选项中选择标准,完成剩余配置后创建
- 进入对应虚拟机规模集的「网络」配置页,将负载均衡关联调整为新创建的标准SKU负载均衡器即可
流水线适配注意事项
- 检查DevOps流水线的PowerShell脚本中,创建负载均衡器的代码必须显式添加
-Sku "Standard"参数,避免默认创建基础SKU导致报错 - 若业务场景中虚拟机规模集不需要超过100台VM,也可将规模集的
singlePlacementGroup参数设置为true关闭多放置组,即可继续使用基础SKU负载均衡器
内容的提问来源于stack exchange,提问作者Anders Dissing
相关产品推荐
相关产品推荐

