Anexar um back-end de assinatura cruzada a um Balanceador de Carga do Azure
Neste artigo, você aprenderá a anexar um back-end de assinatura cruzada a um Balanceador de Carga do Azure criando um pool de back-end de assinatura cruzada e anexando interfaces de rede de assinatura cruzada ao pool de back-end do balanceador de carga.
Um balanceador de carga entre assinaturas pode fazer referência a 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 subscrições ativas. Crie uma conta gratuitamente
- Uma rede virtual existente. implantado em uma das assinaturas. Neste exemplo, a rede virtual está na Assinatura A do Azure.
- Azure PowerShell instalado localmente ou Azure Cloud Shell.
Se optar por instalar e utilizar o PowerShell localmente, este artigo requer a versão 5.4.1 ou posterior do módulo Azure PowerShell. Execute Get-Module -ListAvailable Az
para localizar a versão instalada. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar 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. Certifique-se de substituí-los pelos valores do seu ambiente.
Os valores que necessitam de substituição serão colocados entre parênteses angulares, da seguinte forma: <example value>
.
Iniciar sessão no Azure
Com o Azure PowerShell, você entra no Azure com Connect-AzAccount
o e altera o contexto da assinatura com Set-AzContext
a Assinatura A do Azure. Em seguida, obtenha as informações da rede virtual com Get-AzVirtualNetwork
o . 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ê cria um grupo de recursos na Assinatura B do Azure. Este grupo de recursos destina-se a todos os seus recursos associados ao seu balanceador de carga.
Com o Azure PowerShell, você alterna o contexto de assinatura e Set-AzContext
cria um grupo de recursos com New-AzResourceGroup
o .
# 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
Nota
Ao criar o grupo de recursos para seu 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ê cria um balanceador de carga na Assinatura B do Azure. Você cria um balanceador de carga com um endereço IP frontend.
Com o Azure PowerShell, você:
- Um balanceador de carga com
New-AzLoadBalancer
- Crie um endereço IP público com
New-AzPublicIpAddress
- Adicione uma configuração de IP frontend com
Add-AzLoadBalancerFrontendIpConfig
- Crie um pool de endereços de back-end com
New-AzLoadBalancerBackendAddressPool
o .
# 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 teste de integridade e balanceador de carga
Crie uma investigação de integridade que determine a integridade das instâncias de VM de back-end e uma regra de balanceador de carga que defina 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ária.
Com o Azure PowerShell, crie uma investigação de integridade com Add-AzLoadBalancerProbeConfig
a qual determine a integridade das instâncias de VM de back-end. Em seguida, crie uma regra de balanceador de carga que Add-AzLoadBalancerRuleConfig
defina 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ária.
## 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 placas de interface de rede ao balanceador de carga
Nesta seção, você anexa a placa de interface de rede (NIC) na Assinatura A do Azure ao balanceador de carga na Assinatura B do Azure. Criar uma interface de rede com New-AzNetworkInterface
e, em seguida, criar uma configuração IP para a placa de interface de rede com New-AzNetworkInterfaceIpConfig
.
Nota
A placa de interface de rede (NIC) 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
Clean up resources (Limpar recursos)
Quando não for mais necessário, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos criado junto com o balanceador de carga e os recursos restantes.
Remove-AzResourceGroup -Name 'myResourceGroupLB'