使用内部负载均衡器时,您可以通过将 vnet 上的 NIC 与 LB 后端相关联来填充后端池。当您在 vnet 上集成 webapp 时,您不会直接管理 NIC,因为这通过 P2S VPN 工作。
这意味着您目前无法将 Web 应用的内部 IP 地址添加到 ILB。如果您想通过内部 IP 在 vnet 上的 webapps 之间进行负载平衡,我建议您查看Azure Application Gateway。这样,您可以在创建网关时在后端池中添加 FQDN 或内部 IP,而不是关联 NIC。
如果您想继续使用内部负载平衡器,例如在负载平衡虚拟机时,您也可以使用现有的 vnet。
您可以按照https://azure.microsoft.com/en-us/documentation/articles/load-balancer-get-started-ilb-arm-ps/ 上的步骤操作,我猜这是您提出问题的起点。
本文介绍了创建负载均衡器的先决条件,然后创建负载均衡器本身。前两个 sn-ps 用于创建子网配置和具有该配置的 vnet:
$backendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24
$vnet= New-AzureRmVirtualNetwork -Name NRPVNet -ResourceGroupName NRP-RG -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet
这包括在内,因为下一步(创建前端 ip 配置)需要一个子网 ID 作为输入。如果您已经有一个带有子网的 vnet 可以使用,则可以将上面的两行替换为
$vnet = Get-AzureRmVirtualNetwork -Name YourNetwork -ResourceGroupName YourRG
接下来的步骤将是,假设您的前端 IP 位于 vnet 的第一个子网上,并且示例中使用的 IP 空间与您的 vnet 上的 IP 空间匹配:
$frontendIP = New-AzureRmLoadBalancerFrontendIpConfig -Name LB-Frontend -PrivateIpAddress 10.0.2.5 -SubnetId $vnet.subnets[0].Id
$beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name "LB-backend"
$inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP1" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389
$inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name "RDP2" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3442 -BackendPort 3389
$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name "HealthProbe" -RequestPath "HealthProbe.aspx" -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$lbrule = New-AzureRmLoadBalancerRuleConfig -Name "HTTP" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName "NRP-RG" -Name "NRP-LB" -Location "West US" -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
假设已经创建了后端 NIC,请为每个 NIC 使用以下代码将它们添加到负载均衡器后端池:
$lb= Get-AzureRmLoadBalancer –name NRP-LB -resourcegroupname NRP-RG
$backend= Get-AzureRmLoadBalancerBackendAddressPoolConfig -name backendpool1 -LoadBalancer $lb
$nic=Get-AzureRmNetworkInterface –name lb-nic1-be -resourcegroupname NRP-RG
$nic.IpConfigurations[0].LoadBalancerBackendAddressPools=$backend
Set-AzureRmNetworkInterface -NetworkInterface $nic