Partilhar via


Gerenciamento de pool 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 servem o tráfego para uma determinada regra de balanceamento de carga.

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

  • Placa de interface de rede (NIC)

  • Endereço IP

Para pré-alocar um pool de back-end com um intervalo de endereços IP que conterá máquinas virtuais e Conjuntos 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 pool de back-end por endereço IP e rede virtual

Em cenários com pools de back-end pré-preenchidos, use IP e rede virtual.

Configure o gerenciamento do pool de back-end no objeto do pool de back-end, conforme destacado nos exemplos a seguir.

PowerShell

Crie um novo pool de back-end:

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

Atualize 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

Recupere as informações do pool de back-end para o balanceador de carga para 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 uma interface de rede e adicione-a ao pool de back-end. Defina o endereço IP para 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

Crie uma VM e anexe 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 de parâmetros de linha de comando ou por meio de um arquivo de configuração JSON.

Crie e preencha 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

Crie e preencha 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"
          }
        ]

Recupere as informações do pool de back-end para o balanceador de carga para 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 uma interface de rede e adicione-a ao pool de back-end. Defina o endereço IP para 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

Crie uma VM e anexe 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 usados para balanceadores de carga padrão
  • Os recursos de back-end devem estar na mesma rede virtual que o 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 pool de back-end baseado em IP não pode funcionar como um serviço de link privado
  • Os 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 suportam contêineres ACI
  • Balanceadores de carga ou serviços como o Application Gateway não podem ser colocados no pool de back-end do balanceador de carga
  • As regras NAT de entrada não podem ser especificadas pelo endereço IP
  • Você pode configurar 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 misture endereços de backup direcionados por NIC e endereços IP dentro do mesmo pool.
  • Uma máquina virtual na mesma rede virtual que um balanceador de carga interno não pode acessar o front-end do ILB e suas VMs de back-end simultaneamente.
  • Atualmente, IPs de preferência de roteamento da Internet não são suportados com pools de back-end baseados em IP. Qualquer 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 mudando constantemente (devido à adição ou remoção constante de recursos de back-end). Isso pode causar sinais de redefinição enviados de volta para a origem a partir do recurso de back-end. Como solução alternativa, você pode usar tentativas.

Importante

Quando um pool de back-end é configurado por endereço IP, ele se comportará como um Balanceador de Carga Básico com saída padrão habilitada. Para configurações seguras por padrão e aplicativos com necessidades de saída exigentes, configure o pool de back-end pela NIC.

Próximos passos

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

Saiba mais sobre o Azure Load Balancer.

Analise a API REST para gerenciamento de pool de back-end baseado em IP.