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



我有一个虚拟机规模集和一个负载均衡器(常规 LB,而不是应用程序网关)。运行状况探测检查 VM 上的 HTTP 终结点,这似乎工作正常:如果终结点知道尚未准备好处理请求,则返回非 200 响应,这是一种受控且频繁的状态。

问题:探测的最低可能设置为 5 秒和连续 2 次失败,因此在从轮换中提取有故障的 VM 之前,至少需要 10 秒。等待时间太长,因为许多请求可能会在该时间段内到达并被拒绝,即使 VM 知道此状态,并且规模集中的其他 VM 已准备好处理请求也是如此。

问:VM 是否可以通过任何方法立即通知负载均衡器它要从轮换中提取?然后,VM 应保持不轮换状态,直到它开始从 HTTP 运行状况探测终结点返回200 OK

旁注:az network nic ip-config address-pool remove(链接)似乎仅适用于独立 VM,而不适用于规模集 VM。

使用 PowerShell,可以通过以下方式将 NIC 添加到负载均衡器:

$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

这样,您可以从负载均衡器中拉出计算机,并在计算机再次工作时重新添加计算机。

例如,请参阅此链接以获取更多详细信息。

最新更新