Share via


Balanceamento de carga em várias configurações de IP com o PowerShell

Este artigo descreve como utilizar Balanceador de Carga do Azure com vários endereços IP numa interface de rede secundária (NIC). Neste cenário, temos duas VMs a executar o Windows, cada uma com uma NIC primária e secundária. Cada um dos NICs secundários tem duas configurações de IP. Cada VM aloja os sites contoso.com e fabrikam.com. Cada site está vinculado a uma das configurações de IP na NIC secundária. Utilizamos Balanceador de Carga do Azure para expor dois endereços IP de front-end, um para cada site, para distribuir o tráfego para a respetiva configuração de IP do site. Este cenário utiliza o mesmo número de porta em ambos os front-ends, bem como em ambos os endereços IP do conjunto de back-end.

Passos para o balanceamento de carga em várias configurações de IP

Nota

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Siga os passos 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 com as seguintes definições:

    $location = "westcentralus".
    $myResourceGroup = "contosofabrikam"
    

    Para obter mais informações, veja o Passo 2 de Criar um Grupo de Recursos.

  3. Crie um Conjunto de Disponibilidade para conter as VMs. Para este cenário, utilize o seguinte comando:

    New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
    
  4. Siga as instruções dos passos 3 a 5 no artigo Criar uma VM do Windows para preparar a criação de uma VM com uma única NIC. Execute o passo 6.1 e utilize o seguinte em vez do passo 6.2:

    $availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset"
    New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
    

    Em seguida, conclua os passos Criar uma VM do Windows 6.3 a 6.8.

  5. Adicione uma segunda configuração de IP a cada uma das VMs. Siga as instruções no artigo Atribuir vários endereços IP a máquinas virtuais . Utilize 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 precisa de associar as configurações de IP secundário a IPs públicos para efeitos deste tutorial. Edite o comando para remover a parte de associação de IP público.

  6. Conclua os passos 4 a 6 deste artigo novamente para VM2. Certifique-se de que substitui o nome da VM para VM2 ao fazê-lo. Tenha em atenção que não precisa de criar uma rede virtual para a segunda VM. Pode ou não criar uma nova sub-rede com base no seu caso de utilização.

  7. Crie dois endereços IP públicos e armazene-os nas variáveis adequadas, 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 de front-end:

    $frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1
    $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
    
  9. Crie os conjuntos de endereços de back-end, uma sonda e as 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 estes recursos, crie o 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 conjunto 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 de IP de cada NIC secundária ao conjunto 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. Por fim, tem de configurar os registos de recursos DNS para apontarem para o respetivo endereço IP de front-end do Balanceador de Carga. Pode alojar os seus domínios no DNS do Azure. Para obter mais informações sobre como utilizar o DNS do Azure com Balanceador de Carga, veja Utilizar o DNS do Azure com outros serviços do Azure.

Passos seguintes