Compartilhar via


Anexar um back-end entre assinaturas a um Azure Load Balancer

Neste artigo, você aprenderá a anexar um back-end entre assinaturas a um Azure Load Balancer criando um pool de back-end entre assinaturas e anexando interfaces de rede entre assinaturas ao pool de back-end do balanceador de carga.

Um balanceador de carga entre assinaturas pode referenciar uma rede virtual que reside em uma assinatura diferente dos balanceadores de carga. Esse recurso permite implantar um balanceador de carga em uma assinatura e fazer referência a uma rede virtual em outra assinatura.

Pré-requisitos

  • Duas assinaturas do Azure.
  • Uma conta do Azure com assinaturas ativas. Crie uma conta gratuitamente
  • Uma Rede Virtual existente. implantada em uma das assinaturas. Para este exemplo, a rede virtual está na Assinatura A do Azure.
  • O Azure PowerShell instalado localmente ou o Azure Cloud Shell.

Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 5.4.1 ou posterior. Execute Get-Module -ListAvailable Az para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount para criar uma conexão com o Azure.

Importante

Todos os exemplos de código usarão nomes de exemplo e espaços reservados. Substitua-os pelos valores do seu ambiente. Os valores que precisam de substituição serão colocados entre colchetes angulares, assim: <example value>.

Entrar no Azure

Com o Azure PowerShell, você entra no Azure com Connect-AzAccount e altera o contexto da assinatura com Set-AzContextpara a Assinatura A do Azure. Em seguida, obtenha as informações da rede virtual com Get-AzVirtualNetwork. Você precisa da ID da assinatura do Azure, do nome do grupo de recursos e do nome da rede virtual do seu ambiente.


# Sign in to Azure
Connect-AzAccount

# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Azure Subscription A>'     

# Get the Virtual Network information with Get-AzVirtualNetwork
$net = @{
    Name = '<vnet name>'
    ResourceGroupName = '<Resource Group Subscription A>'
}
$vnet = Get-AzVirtualNetwork @net

Criar um grupo de recursos

Nesta seção, você criará um grupo de recursos na Assinatura B do Azure. Esse grupo de recursos é para todos os seus recursos associados ao balanceador de carga.

Com o Azure PowerShell, você alterna o contexto de assinatura com Set-AzContext e cria um grupo de recursos com New-AzResourceGroup.


# Set the subscription context to Azure Subscription B
Set-AzContext -Subscription '<Azure Subscription B>'  

# Create a resource group  
$rg = @{
    Name = 'myResourceGroupLB'
    Location = 'westus'
}
New-AzResourceGroup @rg

Observação

Ao criar o grupo de recursos para o balanceador de carga, use a mesma região do Azure que a rede virtual na Assinatura A do Azure.

Criar um balanceador de carga

Nesta seção, você criará um balanceador de carga na Assinatura B do Azure. Você cria um balanceador de carga com um endereço IP de front-end.

Com o Azure PowerShell, você:

# Create a load balancer
$loadbalancer = @{
    ResourceGroupName = 'resource group B'
    Name = 'LB Name'
    Location = 'eastus'
    Sku = 'Standard'
}
$LB = New-AzLoadBalancer @loadbalancer

$LBinfo = @{
    ResourceGroupName = 'resource group B'
    Name = 'my-lb'
}

# Create a public IP address
$publicip = @{
    Name = 'IP Address Name'
    ResourceGroupName = 'resource group B'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicip


# Place public IP created in previous steps into variable
$pip = @{
    Name = 'IP Address Name'
    ResourceGroupName = 'resource group B'
}
$publicIp = Get-AzPublicIpAddress @pip

## Create load balancer frontend configuration and place in variable
$fip = @{
    Name = 'Frontend Name'
    PublicIpAddress = $publicip
}
$LB = $LB | Add-AzLoadBalancerFrontendIpConfig @fip
$LB = $LB | Set-AzLoadBalancer

# Create backend address pool configuration and place in variable. ##

$be = @{
    ResourceGroupName= "resource group B"
    Name= "myBackEndPool"
    LoadBalancerName= "LB Name"
    VirtualNetwork=$vnet.id
    SyncMode= "Automatic"
}

#Create the backend pool
$backend = New-AzLoadBalancerBackendAddressPool @be
$LB = Get-AzLoadBalancer @LBinfo

Criar uma regra de investigação de integridade e balanceador de carga

Crie uma investigação de integridade que determina a integridade das instâncias de VM de back-end e uma regra de balanceador de carga que define a configuração de IP de front-end para o tráfego de entrada, o pool de IP de back-end para receber o tráfego e a porta de origem e destino necessárias.

Com o Azure PowerShell, crie uma investigação de integridade com Add-AzLoadBalancerProbeConfig que determina a integridade das instâncias de VM de back-end. Em seguida, crie uma regra de balanceador de carga com Add-AzLoadBalancerRuleConfig que define a configuração de IP de front-end para o tráfego de entrada e o pool de IP de back-end para receber o tráfego, junto com as portas de origem e de destino necessárias.

## Create the health probe and place in variable. ##
$probe = @{
    Name = 'myHealthProbe2'
    Protocol = 'tcp'
    Port = '80'
    IntervalInSeconds = '360'
    ProbeCount = '5'
}

## Create the load balancer rule and place in variable. ##
$lbrule = @{
    Name = 'myHTTPRule2'
    Protocol = 'tcp'
    FrontendPort = '80'
    BackendPort = '80'
    IdleTimeoutInMinutes = '15'
    FrontendIpConfiguration = $LB.FrontendIpConfigurations[0]
    BackendAddressPool = $backend
}
## Set the load balancer resource. ##
$LB | Add-AzLoadBalancerProbeConfig @probe
$LB | Add-AzLoadBalancerRuleConfig  @lbrule
$LB | Set-AzLoadBalancer

Anexar cartões de interface de rede ao balanceador de carga

Nesta seção, você anexa a NIC (placa de interface de rede) da Assinatura A do Azure ao balanceador de carga na Assinatura B do Azure. Crie um adaptador de rede com New-AzNetworkInterface e, em seguida, crie uma configuração de IP para a placa de interface de rede com New-AzNetworkInterfaceIpConfig.

Observação

A NIC (placa de interface de rede) deve estar na mesma VNet que o pool de back-end do balanceador de carga.


# Set the subscription context to **Azure Subscription A**
Set-AzContext -Subscription 'Sub A' 

# Create a network interface card
$IP1 = @{
    Name = 'MyIpConfig'
    subnetID= $vnet.subnets[0].Id
    PrivateIpAddressVersion = 'IPv4'
-LoadBalancerBackendAddressPool $lb-be-info
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
$nic = @{
    Name = 'MyNic'
    ResourceGroupName = '<Resoure Group Subscription A>'
    Location = 'eastus'
    IpConfiguration = $IP1Config
}
New-AzNetworkInterface @nic

Limpar os recursos

Quando não forem mais necessários, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos que você criou junto com o balanceador de carga e os recursos restantes.

Remove-AzResourceGroup -Name 'myResourceGroupLB'

Próximas etapas