后端池管理

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

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

  1. 网络接口卡 (NIC)

  2. IP 地址

要预分配一个后端地址池,使其具有包含虚拟机和虚拟机规模集的 IP 地址范围,请使用 IP 地址和虚拟网络 ID 配置该池。 基于IP的后端池需要标准负载均衡器。

本文重点介绍基于IP的后端池配置。

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

在预先填充后端池的场景中,使用IP地址和虚拟网络。

在开始之前,请确保具备以下条件:

  • 现有的标准负载均衡器和虚拟网络。
  • 资源后端与负载均衡器在同一虚拟网络中。
  • 允许创建或更新负载均衡器、网络接口和虚拟机资源。
  • 你所使用的工具对应的已通过身份验证的 Azure PowerShell 或 Azure CLI 会话。

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

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 = 'chinaeast2'
    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 = 'chinanorth3'
    VM = $vmConfig

}
$vm1 = New-AzVM @vm

CLI

通过使用 Azure CLI,您可以通过命令行参数或 JSON 配置文件填充基于 IP 的后端池。

使用 Azure CLI 创建基于 IP 的后端池

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

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"
          }
        ]

使用 Azure CLI 验证后端地址

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

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

使用 Azure CLI 创建网络接口

创建网络接口并将它添加到后端池。 将 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

使用 Azure CLI 创建虚拟机

创建一个 VM,并附加具有后端池中 IP 地址的 NIC:

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

基于IP的后端池的局限性

  • 你只能使用基于IP的后端池和标准负载均衡器。
  • 后端资源必须与负载均衡器处于同一虚拟网络中。
  • 基于IP的后端池中的后端实例必须是虚拟机或虚拟机规模集。 你不能附加其他PaaS服务。
  • 带有基于 IP 的后端池的负载均衡器不能作为专用链接服务运行。
  • 你不能把 私有端点资源 放在基于IP的后端池里。
  • 基于IP的后端池不支持ACI容器。
  • 负载均衡器或应用网关等服务不能被放在负载均衡器的后端池中。
  • 入站NAT规则不能用IP地址来指定。
  • 你可以为同一负载均衡器配置基于IP和基于NIC的后端池。 你不能创建一个在同一后端池中混合使用以 NIC 和 IP 地址为目标的后端地址的单个后端池。
  • 与内部负载均衡器位于同一虚拟网络中的虚拟机无法同时访问 ILB 的前端及其后端 VM。

重要

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

后续步骤

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

详细了解 Azure 负载均衡器

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