我目前正在研究交换 Azure 负载均衡器后端池的可行性,同时不中断进入负载均衡器的请求的体验。
原因是为了创建一个蓝/绿部署策略,其中创建一个新的可用性集(可能是 VMSS)并更新负载均衡器后端池以指向新的可用性集。
我很想知道是否有人在 Azure 上做过类似的事情。
答案1
Azure 负载均衡器探测来自168.63.129.16。如果您在虚拟机上创建防火墙规则以拒绝从该 IP 访问探测端口,它将把虚拟机从池中剔除,因此将来不会有连接路由到该虚拟机(直到防火墙规则被禁用)。来自用户的现有连接将继续不受损害。
我还没有尝试过你的方法,也不知道它是否有效。但你询问了我们的经验,所以我想与你分享一下。我发现这是一种在 VM 内部优雅地将 VM 脱机进行维护的好方法。我很高兴我不必在 VM 上配置 Azure PowerShell 和服务主体来实现这一点。
答案2
我目前正在研究交换 Azure 负载均衡器后端池的可行性,同时不中断进入负载均衡器的请求的体验。
据我所知,我们不能实时交换 LB 后端池并且不会中断这些请求。
作为一种解决方法,我们可以使用 powershell 来升级 Azure Vmss。以下是有关更新 Azure Vmss 实例的 PowerShell 脚本 (它每次更新一个虚拟机实例):
$rgname = "vmss"
$vmssname = "vmss"
$newURI = "imageurl"
$instanceid = "1"
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
$vmss.virtualMachineProfile.storageProfile.osDisk.image.uri= $newURI
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
这是有关升级 Azure VM Scale Set 的博客无需关闭,请参阅此关联。