![Azure-更改负载均衡器上的缩放设置并保持相同的公共IP](https://linux22.com/image/707014/Azure-%E6%9B%B4%E6%94%B9%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E7%BC%A9%E6%94%BE%E8%AE%BE%E7%BD%AE%E5%B9%B6%E4%BF%9D%E6%8C%81%E7%9B%B8%E5%90%8C%E7%9A%84%E5%85%AC%E5%85%B1IP.png)
我在 Azure 上创建了一个资源组,并且在该资源组中我有一个包含扩展集的具有公共 IP 的负载均衡器。
我想要做的是部署另一个扩展集(具有新配置的新实例)并将旧的负载均衡器指向这个新的扩展集,从而维护旧的公共 IP。
这有可能实现吗?也许还有另一种方法,我可以更改缩放集并保留相同的公共 IP(无需停机)?
答案1
我想要做的是部署另一个扩展集(具有新配置的新实例)并将旧的负载均衡器指向这个新的扩展集,从而维护旧的公共 IP。
据我所知,我们不能更改 Azure vmss 的负载均衡器。
根据您的描述,我认为您只是想保留这个公网 IP 地址。在 ARM 模块中,我们可以将这个公网 IP 地址关联到另一个负载均衡器。
因此,作为一种解决方法,我认为我们可以使用负载均衡器创建 VMSS,然后将旧的公共 IP 地址关联到新的负载均衡器。
也许有另一种方法可以让我改变缩放集并保留相同的公共 IP(无需停机)?
如果您的 VMSS 升级策略设置为手动的, 答案是是的,我们可以在不停机的情况下升级它。
我们可以更改指向您构建的自定义映像的新版本的 URI(属性 > virtualMachineProfile > storageProfile > osDisk > image > uri)。
我们应该逐个升级 VMSS 实例,下面是一个关于更新 Windows vmss 的示例,在更新模型后,它每次更新一个虚拟机实例。
$rgname = "myrg"
$vmssname = "myvmss"
$newversion = "4.0.20160229"
$instanceid = "1"
# get the VMSS model
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.imageReference.version = $newversion
# update the virtual machine scale set model
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
# now start updating instances
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
有关升级 Azure VMSS 的更多信息,请参阅此关联。