Gerenciamento de pools de back-end

O pool de back-end é um componente crítico do balanceador de carga. O pool de back-end define o grupo de recursos que irá receber o tráfego para determinada regra de balanceamento de carga.

Há duas maneiras de configurar um pool de back-end:

  • NIC (placa de adaptador de rede)

  • Endereço IP

Para pré-alocar um pool de back-end com um intervalo de endereços IP que conterá máquinas virtuais e conjunto de dimensionamento de máquinas virtuais, configure o pool por endereço IP e ID de rede virtual. Este artigo se concentra na configuração de pools de back-end por endereços IP.

Configurar o pool de back-end por endereço IP e rede virtual

Em cenários com pools de back-end previamente preenchidos, use o IP e a rede virtual.

Configure o gerenciamento de pool de back-end no objeto de pool de back-end, conforme realçado nos exemplos a seguir.

PowerShell

Criar um pool de back-end:

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

Atualizar o pool de back-end com um novo IP da rede virtual existente:

$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

Recuperar as informações do pool de back-end para o balanceador de carga, a fim de confirmar se os endereços de back-end foram adicionados ao pool de back-end:

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

Crie um adaptador de rede e adicione-o ao pool de back-end. Defina o endereço IP com um dos endereços de back-end:

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

Criar uma VM e anexar a NIC com um endereço IP no pool de back-end:

# 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

Usando a CLI, você pode preencher o pool de back-end por meio dos parâmetros de linha de comando ou de um arquivo de configuração JSON.

Criar e preencher o pool de back-end por meio dos parâmetros de linha de comando:

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

Criar e preencher o pool de back-end por meio do arquivo de configuração 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

Arquivo de configuração 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"
          }
        ]

Recuperar as informações do pool de back-end para o balanceador de carga, a fim de confirmar se os endereços de back-end foram adicionados ao pool de back-end:

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

Crie um adaptador de rede e adicione-o ao pool de back-end. Defina o endereço IP com um dos endereços de back-end:

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

Criar uma VM e anexar a NIC com um endereço IP no pool de back-end:

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

Limitações

  • Os back-ends baseados em IP só podem ser usado para Standard Load Balancer
  • Os recursos de back-end precisam estar na mesma rede virtual do balanceador de carga para LBs baseados em IP
  • As instâncias de back-end de balanceadores de carga baseados em IP ainda devem ser máquinas virtuais ou conjuntos de dimensionamento de máquinas virtuais. Não há suporte para anexar outros serviços PaaS ao pool de back-end de um Load Balancer baseado em IP.
  • Um balanceador de carga com o pool de back-end baseado em IP não pode funcionar como um serviço de Link Privado
  • Recursos de ponto de extremidade privado não podem ser colocados em um pool de back-end baseado em IP
  • Os balanceadores de carga baseados em IP não dão suporte a contêineres ACI
  • Balanceadores ou serviços de carga, como o Gateway de Aplicativo, não podem ser inseridos em um pool de back-end do balanceador de carga
  • As regras NAT de entrada não podem ser especificadas pelo endereço IP
  • É possível configurar os pools de back-end baseados em IP e NIC para o mesmo balanceador de carga. Não é possível criar um único pool de back-end que combina endereços com suporte direcionados por endereços IP e NIC dentro do mesmo pool.
  • Uma máquina virtual na mesma rede virtual de um balanceador de carga interno não pode acessar o front-end do ILB e as respectivas VMs de back-end simultaneamente.
  • Atualmente, não há suporte para IPs de preferência de roteamento da internet com pools de back-end baseados em IP. Todos os IPs de preferência de roteamento da internet em pools de back-end baseados em IP serão cobrados e roteados por meio da rede global padrão da Microsoft.
  • Se os pools de back-end estiverem em constante alteração (devido à adição constante ou remoção dos recursos de back-end). Isso pode causar sinais de redefinição enviados de volta para a origem do recurso de back-end. Como solução alternativa, você pode usar novas tentativas.

Importante

Quando um pool de back-end é configurado por endereço IP, ele se comporta como um Azure Load Balancer Básico com a saída padrão habilitada. Para proteger por padrão a configuração e os aplicativos com necessidades de saída exigentes, configure o pool de back-end por NIC.

Próximas etapas

Neste artigo, você aprendeu mais sobre o gerenciamento de pools de back-end do Azure Load Balancer e como configurar um pool de back-end por endereço IP e rede virtual.

Saiba mais sobre o Azure Load Balancer.

Examine a API REST do gerenciamento de pools de back-end baseados em IP.