我有一个虚拟机规模集和一个负载均衡器(常规LB,而不是Application Gateway)。运行状况探测器检查VM上的HTTP端点,这似乎工作得很好:如果端点知道它没有准备好处理请求,那么端点将返回非200响应,这是一个受控且频繁的状态。
问题:探测器的最低可能设置为5秒,连续2次失败,因此在从旋转中拉出故障VM之前至少会经过10秒。这太长了不能等待,因为许多请求可能会在该时间段内到达并被拒绝,即使VM知道此状态,并且比例集中的其他VM已准备好处理请求。
问题: VM有没有办法立即通知负载均衡器它想要从轮换中撤出?然后,VM应该保持不会轮换,直到它开始从HTTP运行状况探测终端返回200 OK
。
旁注:az network nic ip-config address-pool remove
(link)似乎只适用于独立虚拟机,而非缩放集虚拟机。
答案 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了解更多细节。