Partilhar via


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:

  1. 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.

  2. 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.

  3. 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"
    
  4. 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.

  5. 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.

  6. 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.

  7. 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
    
  8. Crie duas configurações de IP frontend:

    $frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1
    $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
    
  9. 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
    
  10. 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
    
  11. 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
    
  12. 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
    
  13. 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