Balanceamento de carga em várias configurações de IP usando o PowerShell
Este artigo descreve como usar o Azure Load Balancer com vários endereços IP em uma interface de rede secundária (NIC). Para esse cenário, temos duas VMs executando o Windows, cada uma com uma NIC primária e uma secundária. Cada uma das NICs secundárias tem duas configurações de IP. Cada VM hospeda sites contoso.com e fabrikam.com. Cada site está vinculado a uma das configurações de IP na placa de rede secundária. Usamos o Azure Load Balancer para expor dois endereços IP frontend, um para cada site, para distribuir o tráfego para a respetiva configuração IP do site. Esse cenário usa o mesmo número de porta em ambos os front-ends e em ambos os endereços IP do pool de back-ends.
Etapas para balanceamento de carga em várias configurações IP
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Siga as etapas abaixo para alcançar o cenário descrito neste artigo:
Instale o Azure PowerShell. Veja How to install and configure Azure PowerShell (Como instalar e configurar o Azure PowerShell) para obter informações sobre como instalar a versão mais recente do Azure PowerShell, selecionar a subscrição que quer utilizar e iniciar sessão na sua conta do Azure.
Crie um grupo de recursos usando as seguintes configurações:
$location = "westcentralus". $myResourceGroup = "contosofabrikam"
Para obter mais informações, consulte Etapa 2 de Criar um grupo de recursos.
Crie um Conjunto de Disponibilidade para conter suas VMs. Para esse cenário, use o seguinte comando:
New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
Siga as instruções etapas 3 a 5 no artigo Criar uma VM do Windows para preparar a criação de uma VM com uma única NIC. Execute a etapa 6.1 e use o seguinte em vez da etapa 6.2:
$availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
Em seguida, conclua Criar uma VM do Windows etapas 6.3 a 6.8.
Adicione uma segunda configuração IP a cada uma das VMs. Siga as instruções no artigo Atribuir vários endereços IP a máquinas virtuais. Use as seguintes definições de configuração:
$NicName = "VM1-NIC2" $RgName = "contosofabrikam" $NicLocation = "West Central US" $IPConfigName4 = "VM1-ipconfig2" $Subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
Não é necessário associar as configurações de IP secundárias a IPs públicos neste tutorial. Edite o comando para remover a parte de associação IP pública.
Conclua as etapas 4 a 6 deste artigo novamente para VM2. Certifique-se de substituir o nome da VM para VM2 ao fazer isso. Não é necessário criar uma rede virtual para a segunda VM. Você pode criar uma nova sub-rede com base no seu caso de uso.
Crie dois endereços IP públicos e armazene-os nas variáveis apropriadas, conforme mostrado:
$publicIP1 = New-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel contoso $publicIP2 = New-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel fabrikam $publicIP1 = Get-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam $publicIP2 = Get-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
Crie duas configurações de IP frontend:
$frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1 $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
Crie seus pools de endereços de back-end, uma sonda e suas regras de balanceamento de carga:
$beaddresspool1 = New-AzLoadBalancerBackendAddressPoolConfig -Name contosopool $beaddresspool2 = New-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool $healthProbe = New-AzLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2 $lbrule1 = New-AzLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80 $lbrule2 = New-AzLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
Depois de criar esses recursos, crie seu balanceador de carga:
$mylb = New-AzLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'West Central US' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
Adicione o segundo pool de endereços de back-end e a configuração de IP de front-end ao seu balanceador de carga recém-criado:
$mylb = Get-AzLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzLoadBalancer $mylb | Add-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzLoadBalancer Add-AzLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzLoadBalancer
Os comandos abaixo obtêm as NICs e, em seguida, adicionam ambas as configurações IP de cada NIC secundária ao pool de endereços de back-end do balanceador de carga:
$nic1 = Get-AzNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup"; $nic2 = Get-AzNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup"; $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]); $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]); $mylb = $mylb | Set-AzLoadBalancer $nic1 | Set-AzNetworkInterface $nic2 | Set-AzNetworkInterface
Finalmente, você deve configurar os registros de recursos DNS para apontar para o respetivo endereço IP frontend do Balanceador de Carga. Você pode hospedar seus domínios no DNS do Azure. Para obter mais informações sobre como usar o DNS do Azure com o Balanceador de Carga, consulte Usando o DNS do Azure com outros serviços do Azure.
Próximos passos
- Saiba mais sobre como combinar serviços de balanceamento de carga no Azure em Usando serviços de balanceamento de carga no Azure.
- Saiba como você pode usar diferentes tipos de logs no Azure para gerenciar e solucionar problemas do balanceador de carga nos logs do Azure Monitor para o Balanceador de Carga do Azure.