Поделиться через


Присоединение серверной части между подписками к Azure Load Balancer

Из этой статьи вы узнаете, как подключить серверную часть между подписками к Azure Load Balancer, создав серверный пул между подписками и подключив сетевые интерфейсы между подписками к внутреннему пулу подсистемы балансировки нагрузки.

Подсистема балансировки нагрузки между подписками может ссылаться на виртуальную сеть, которая находится в другой подписке, отличной от подсистем балансировки нагрузки. Эта функция позволяет развертывать подсистему балансировки нагрузки в одной подписке и ссылаться на виртуальную сеть в другой подписке.

Необходимые компоненты

  • Две подписки Azure.
  • Учетная запись Azure с активными подписками. Создание бесплатной учетной записи
  • Существующий виртуальная сеть. развернуто в одной из подписок. В этом примере виртуальная сеть находится в подписке Azure A.
  • Локальная установка Azure PowerShell или Azure Cloud Shell.

Чтобы установить и использовать PowerShell локально, для работы с этой статьей вам понадобится модуль Azure PowerShell 5.4.1 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount, чтобы создать подключение к Azure.

Внимание

Все примеры кода будут использовать примеры имен и заполнителей. Не забудьте заменить их значениями из вашей среды. Значения, необходимые для замены, будут заключены в угловые скобки, как показано ниже <example value>.

Вход в Azure

С помощью Azure PowerShell вы войдите в Azure Connect-AzAccountи измените контекст подписки на Set-AzContext подписку Azure A. Затем получите сведения о виртуальной сети с Get-AzVirtualNetworkпомощью . Вам потребуется идентификатор подписки Azure, имя группы ресурсов и имя виртуальной сети из вашей среды.


# 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

Создание или изменение группы ресурсов

В этом разделе описано, как создать группу ресурсов в подписке Azure B. Эта группа ресурсов используется для всех ресурсов, связываемых с подсистемой балансировки нагрузки.

С помощью Azure PowerShell вы переключаете контекст подписки и Set-AzContext создаете группу ресурсов с 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

Примечание.

При создании группы ресурсов для подсистемы балансировки нагрузки используйте тот же регион Azure, что и виртуальная сеть в подписке Azure A.

Создание подсистемы балансировки нагрузки

В этом разделе описано, как создать подсистему балансировки нагрузки в подписке Azure B. Вы создаете подсистему балансировки нагрузки с внешним IP-адресом.

С помощью Azure PowerShell вы выполните следующие действия.

# 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

Создание правила пробы работоспособности и подсистемы балансировки нагрузки

Создайте пробу работоспособности, которая определяет работоспособность экземпляров внутренних виртуальных машин и правило подсистемы балансировки нагрузки, определяющее конфигурацию внешнего IP-адреса для входящего трафика, внутренний пул IP-адресов для получения трафика и необходимый исходный и конечный порт.

С помощью Azure PowerShell создайте пробу работоспособности, Add-AzLoadBalancerProbeConfig определяющую работоспособность экземпляров серверной виртуальной машины. Затем создайте правило подсистемы балансировки нагрузки, Add-AzLoadBalancerRuleConfig определяющее конфигурацию внешнего IP-адреса для входящего трафика, серверный пул IP-адресов для получения трафика и необходимый исходный и конечный порт.

## 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

Подключение сетевых карточек к подсистеме балансировки нагрузки

В этом разделе описано, как подключить карту сетевого интерфейса (NIC) в подписке Azure A к подсистеме балансировки нагрузки в подписке Azure B. Вы создаете сетевой интерфейс, New-AzNetworkInterface а затем создаете IP-конфигурацию для сетевой карты интерфейса.New-AzNetworkInterfaceIpConfig

Примечание.

Сетевая карта (сетевая карта) должна находиться в той же виртуальной сети, что и серверный пул подсистемы балансировки нагрузки.


# 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 = '<Resource Group Subscription A>'
    Location = 'eastus'
    IpConfiguration = $IP1Config
}
New-AzNetworkInterface @nic

Очистка ресурсов

При отсутствии необходимости можно использовать команду Remove-AzResourceGroup для удаления группы ресурсов, созданной вместе с подсистемой балансировки нагрузки, и остальных ресурсов.

Remove-AzResourceGroup -Name 'myResourceGroupLB'

Следующие шаги