你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

后端池管理

后端池是负载均衡器的一个关键组成部分。 后端池定义将在给定负载均衡规则下提供流量的资源的组。

可以通过两种方法配置后端池:

  • 网络接口卡 (NIC)

  • IP 地址

要使用包含虚拟机和虚拟机规模集的 IP 地址范围预分配后端池,请按 IP 地址和虚拟网络 ID 配置池。 本文重点介绍如何按 IP 地址配置后端池。

通过 IP 地址和虚拟网络配置后端池

在预填充了后端池的情况下,使用 IP 和虚拟网络。

需要在后端池对象上配置后端池管理,如下例中突出显示的那样。

PowerShell

创建新的后端池:

$be = @{
    ResourceGroupName = 'myResourceGroup'
    LoadBalancerName = 'myLoadBalancer'
    Name = 'myBackendPool'
}
$backendPool = New-AzLoadBalancerBackendAddressPool @be

使用现有虚拟网络中的新 IP 更新后端池:

$vnet = @{
    Name = 'myVnet'
    ResourceGroupName = 'myResourceGroup'
}
$virtualNetwork = Get-AzVirtualNetwork @vnet

$add1 = @{
    IpAddress = '10.0.0.5'
    Name = 'TestVNetRef'
    VirtualNetworkId = $virtualNetwork.Id
}
$ip1 = New-AzLoadBalancerBackendAddressConfig @add1
 
$backendPool.LoadBalancerBackendAddresses.Add($ip1) 

Set-AzLoadBalancerBackendAddressPool -InputObject $backendPool

检索负载均衡器的后端池信息,确认此后端地址已添加到后端池:

$pool = @{
    ResourceGroupName = 'myResourceGroup'
    LoadBalancerName = 'myLoadBalancer'
    Name = 'myBackendPool'
}
Get-AzLoadBalancerBackendAddressPool @pool

创建网络接口并将它添加到后端池。 将 IP 地址设置为后端地址之一:

$net = @{
    Name = 'myNic'
    ResourceGroupName = 'myResourceGroup'
    Location = 'eastus'
    PrivateIpAddress = '10.0.0.5'
    Subnet = $virtualNetwork.Subnets[0]
}
$nic = New-AzNetworkInterface @net

创建 VM 并使用后端池中的 IP 地址附加 NIC:

# Create a username and password for the virtual machine
$cred = Get-Credential

# Create a virtual machine configuration
$net = @{
    Name = 'myNic'
    ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net

$vmc = @{
    VMName = 'myVM1'
    VMSize = 'Standard_DS1_v2'
}

$vmos = @{
    ComputerName = 'myVM1'
    Credential = $cred
}

$vmi = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2019-Datacenter'
    Version = 'latest'
}
$vmConfig = 
New-AzVMConfig @vmc | Set-AzVMOperatingSystem -Windows @vmos | Set-AzVMSourceImage @vmi | Add-AzVMNetworkInterface -Id $nic.Id


# Create a virtual machine using the configuration
$vm = @{
    ResourceGroupName = 'myResourceGroup'
    Zone = '1'
    Location = 'eastus'
    VM = $vmConfig

}
$vm1 = New-AzVM @vm

CLI

使用 CLI 时,可以通过命令行参数或 JSON 配置文件填充后端池。

通过命令行参数创建并填充后端池:

az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address name=addr1 ip-address=10.0.0.4 \
--backend-address name=addr2 ip-address=10.0.0.5

通过 JSON 配置文件创建并填充后端池:

az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address-config-file @config_file.json

JSON 配置文件:

        [
          {
            "name": "address1",
            "virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
            "ipAddress": "10.0.0.4"
          },
          {
            "name": "address2",
            "virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
            "ipAddress": "10.0.0.5"
          }
        ]

检索负载均衡器的后端池信息,确认此后端地址已添加到后端池:

az network lb address-pool show \
--resource-group myResourceGroup \
--lb-name MyLb \
--name MyBackendPool

创建网络接口并将它添加到后端池。 将 IP 地址设置为后端地址之一:

az network nic create \
  --resource-group myResourceGroup \
  --name myNic \
  --vnet-name myVnet \
  --subnet mySubnet \
  --network-security-group myNetworkSecurityGroup \
  --lb-name myLB \
  --private-ip-address 10.0.0.4

创建 VM 并使用后端池中的 IP 地址附加 NIC:

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --nics myNic \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

限制

  • 基于 IP 的后端只能用于标准负载均衡器
  • 后端资源必须与用于基于 IP 的 LB 的负载均衡器位于同一虚拟网络中
  • 基于 IP 的负载均衡器后端实例仍必须是虚拟机或虚拟机规模集。 不支持将其他 PaaS 服务附加到基于 IP 的负载均衡器的后端池。
  • 具有基于 IP 的后端池的负载均衡器不能充当专用链接服务
  • 专用终结点资源不能放置在基于 IP 的后端池中
  • 基于 IP 的负载均衡器不支持 ACI 容器
  • 负载均衡器或应用程序网关等服务不能放置在负载均衡器的后端池中
  • 不能通过 IP 地址指定入站 NAT 规则
  • 可以为同一负载均衡器配置基于 IP 和基于 NIC 的后端池。 不能创建混合使用 NIC 面向的备用地址和同一池中 IP 地址的后端池。
  • 与内部负载均衡器位于同一虚拟网络中的虚拟机无法同时访问 ILB 的前端及其后端 VM。
  • 基于 IP 的后端池目前不支持 Internet 路由首选项 IP。 基于 IP 的后端池中的任何 Internet 路由首选项 IP 都将通过默认 Microsoft 全局网络进行计费和路由。
  • 如果后端池不断变化(由于不断添加或移除后端资源)。 这可能会导致从后端资源发送回源的重置信号。 可以使用重试作为解决方法。

重要

当后端池通过 IP 地址进行配置时,它的行为就像启用了默认出站地址的基本负载均衡器。 为了在默认情况下保护有很高出站需求的配置和应用,可以用 NIC 配置后端池。

后续步骤

本文介绍了有关 Azure 负载均衡器后端池管理的信息,以及如何通过 IP 地址和虚拟网络配置后端池。

详细了解 Azure 负载均衡器

请查看基于 IP 的后端池管理的 REST API