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 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 posteriormente 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
  • 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
  • Atualmente, não há suporte para contêineres ACI pelo LB baseado em IP
  • 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.