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.