具有VM Scale Set的Azure负载均衡器:用于从轮换中删除VM的信号

时间:2018-03-13 15:08:59

标签: azure azure-virtual-machine azure-vm-scale-set azure-load-balancer

我有一个虚拟机规模集和一个负载均衡器(常规LB,而不是Application Gateway)。运行状况探测器检查VM上的HTTP端点,这似乎工作得很好:如果端点知道它没有准备好处理请求,那么端点将返回非200响应,这是一个受控且频繁的状态。

问题:探测器的最低可能设置为5秒,连续2次失败,因此在从旋转中拉出故障VM之前至少会经过10秒。这太长了不能等待,因为许多请求可能会在该时间段内到达并被拒绝,即使VM知道此状态,并且比例集中的其他VM已准备好处理请求。

问题: VM有没有办法立即通知负载均衡器它想要从轮换中撤出?然后,VM应该保持不会轮换,直到它开始从HTTP运行状况探测终端返回200 OK

旁注:az network nic ip-config address-pool removelink)似乎只适用于独立虚拟机,而非缩放集虚拟机。

1 个答案:

答案 0 :(得分:0)

使用PowerShell,您可以通过以下方式向负载均衡器添加内容:

$lb= get-azurermloadbalancer -name NRP-LB -resourcegroupname NRP-RG
$backend=Get-AzureRmLoadBalancerBackendAddressPoolConfig -name LB-backend -LoadBalancer $lb
$nic =get-azurermnetworkinterface -name lb-nic1-be -resourcegroupname NRP-RG
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$backend
Set-AzureRmNetworkInterface -NetworkInterface $nic

并以类似的方式从LB中删除一个nic

$nic = Get-AzureRmNetworkInterface -ResourceGroupName NRP-RG -Name lb-nic1-be
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools = $null
Set-AzureRmNetworkInterface -NetworkInterface $nic

通过这种方式,您可以从负载均衡器中取出机器,并在其再次工作时将其重新添加。

参见例如这个link了解更多细节。