Руководство: создание подсистемы балансировки нагрузки шлюза в помощью Azure PowerShell
В службе Azure Load Balancer предусмотрены SKU "Стандартный", "Базовый" и "Шлюз". Подсистема балансировки нагрузки шлюза используется для прозрачного добавления сетевых виртуальных модулей (NVA). Подсистема балансировки нагрузки шлюза предназначена для сценариев, требующих высокой производительности и высокой масштабируемости NVA.
В этом руководстве описано следующее:
- Создайте виртуальную сеть.
- Создание группы безопасности сети.
- Создание подсистемы балансировки нагрузки шлюза.
- Связывание интерфейса подсистемы балансировки нагрузки с подсистемой балансировки нагрузки шлюза.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте бесплатную учетную запись.
- Существующий общедоступный SKU уровня "Стандартный" службы Azure Load Balancer. Дополнительные сведения о создании подсистемы балансировки нагрузки см. в статье Создание общедоступной подсистемы балансировки нагрузки с помощью Azure PowerShell.
- В рамках этого руководства существующая подсистема балансировки нагрузки в примерах называется myLoadBalancer.
- Локальная установка Azure PowerShell или Azure Cloud Shell
Чтобы установить и использовать PowerShell локально, для работы с этой статьей вам понадобится модуль Azure PowerShell 5.4.1 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount
, чтобы создать подключение к Azure.
Создание или изменение группы ресурсов
Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
Создайте группу ресурсов с помощью командлета New-AzResourceGroup:
New-AzResourceGroup -Name 'TutorGwLB-rg' -Location 'eastus'
Создание виртуальной сети
Виртуальная сеть необходима для ресурсов, которые находятся во внутреннем пуле подсистемы балансировки нагрузки шлюза. Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork. Используйте командлет New-AzBastion для развертывания узла-бастиона с целью безопасного управления ресурсами в виртуальной сети.
Внимание
Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create Azure Bastion subnet. ##
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.1.1.0/24'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
## Create the virtual network ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
## Create public IP address for bastion host. ##
$ip = @{
Name = 'myBastionIP'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
}
$publicip = New-AzPublicIpAddress @ip
## Create bastion host ##
$bastion = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myBastion'
PublicIpAddress = $publicip
VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob
Создание NSG
В примере ниже создается группа безопасности сети. Вы настроите правила NSG, необходимые для обслуживания сетевого трафика в созданной ранее виртуальной сети.
Используйте командлет New-AzNetworkSecurityRuleConfig, чтобы создать правила для NSG. Используйте командлет New-AzNetworkSecurityGroup, чтобы создать группу безопасности сети.
## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
Name = 'myNSGRule-AllowAll'
Description = 'Allow all'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1
$nsgrule2 = @{
Name = 'myNSGRule-AllowAll-TCP-Out'
Description = 'Allow all TCP Out'
Protocol = 'TCP'
SourcePortRange = '*'
DestinationPortRange = '*'
SourceAddressPrefix = '0.0.0.0/0'
DestinationAddressPrefix = '0.0.0.0/0'
Access = 'Allow'
Priority = '100'
Direction = 'Outbound'
}
$rule2 = New-AzNetworkSecurityRuleConfig @nsgrule2
## Create network security group ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'TutorGwLB-rg'
Location = 'eastus'
SecurityRules = $rule1,$rule2
}
New-AzNetworkSecurityGroup @nsg
Создание подсистемы балансировки нагрузки шлюза
В этом разделе вы создадите конфигурацию и развернете подсистему балансировки нагрузки шлюза. Используйте Командлет New-AzLoadBalancerFrontendIpConfig, чтобы создать конфигурацию внешних IP-адресов подсистемы балансировки нагрузки.
Используйте командлет New-AzLoadBalancerTunnelInterface, чтобы создать два туннельных интерфейса для подсистемы балансировки нагрузки.
Создайте серверный пул с помощью командлета New-AzLoadBalancerBackendAddressPoolConfig для сетевых виртуальных модулей (NVA).
Проба работоспособности необходима для отслеживания работоспособности экземпляров серверной части в подсистеме балансировки нагрузки. Используйте командлет New-AzLoadBalancerProbeConfig, чтобы создать пробу работоспособности.
Трафик, предназначенный для экземпляров серверной части, направляется с помощью правила подсистемы балансировки нагрузки. Используйте командлет New-AzLoadBalancerRuleConfig, чтобы создать правило балансировки нагрузки.
Используйте командлет New-AzLoadBalancer, чтобы развернуть подсистему балансировки нагрузки.
## Place virtual network configuration in a variable for later use. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'TutorGwLB-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Create load balancer frontend configuration and place in variable. ##
$fe = @{
Name = 'myFrontend'
SubnetId = $vnet.subnets[0].id
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
## Create backend address pool configuration and place in variable. ##
$int1 = @{
Type = 'Internal'
Protocol = 'Vxlan'
Identifier = '800'
Port = '10800'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1
$int2 = @{
Type = 'External'
Protocol = 'Vxlan'
Identifier = '801'
Port = '10801'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2
$pool = @{
Name = 'myBackendPool'
TunnelInterface = $tunnelInterface1,$tunnelInterface2
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @pool
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe'
Protocol = 'http'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$para = @{
Name = 'myLBRule'
Protocol = 'All'
FrontendPort = '0'
BackendPort = '0'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
$rule = New-AzLoadBalancerRuleConfig @para
## Create the load balancer resource. ##
$lb = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
Location = 'eastus'
Sku = 'Gateway'
LoadBalancingRule = $rule
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
Probe = $healthprobe
}
New-AzLoadBalancer @lb
Добавление сетевых виртуальных модулей в пул серверной части подсистемы балансировки нагрузки шлюза
Разверните NVA с помощью Azure Marketplace. После развертывания добавьте виртуальные машины в пул серверной части с помощью командлета Add-AzVMNetworkInterface
Связывание интерфейсной части подсистемы балансировки нагрузки с подсистемой балансировки нагрузки шлюза
В этом примере вы свяжете интерфейсную часть стандартной подсистемы балансировки нагрузки к подсистеме балансировки нагрузки шлюза.
Вы добавите интерфейсную часть к интерфейсному IP-адресу существующей подсистемы балансировки нагрузки в подписке.
Используйте командлет Set-AzLoadBalancerFrontendIpConfig, чтобы связать интерфейсную часть подсистемы балансировки нагрузки шлюза с существующей подсистемой балансировки нагрузки.
## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1
## Place the existing load balancer into a variable. ##
$par2 = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par2
## Place the existing public IP for the existing load balancer into a variable.
$par3 = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myPublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3
## Chain the gateway load balancer to your existing load balancer frontend. ##
$par4 = @{
Name = 'myFrontEndIP'
PublicIPAddress = $publicIP
LoadBalancer = $lb
GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4
$config | Set-AzLoadBalancer
Создание цепочки виртуальных машин для подсистемы балансировки нагрузки шлюза
Кроме того, можно связать конфигурацию IP-адреса сетевой карты виртуальной машины с подсистемой балансировки нагрузки шлюза.
Вы добавите интерфейс подсистемы балансировки нагрузки шлюза в конфигурацию IP сетевой карты существующей виртуальной машины.
Используйте командлет Set-AzNetworkInterfaceIpConfig, чтобы связать интерфейс подсистемы балансировки нагрузки шлюза с конфигурацией IP-адреса сетевой карты существующей виртуальной машины.
## Place the gateway load balancer configuration into a variable. ##
$par1 = @{
ResourceGroupName = 'TutorGwLB-rg'
Name = 'myLoadBalancer-gw'
}
$gwlb = Get-AzLoadBalancer @par1
## Place the existing NIC into a variable. ##
$par2 = @{
ResourceGroupName = 'MyResourceGroup'
Name = 'myNic'
}
$nic = Get-AzNetworkInterface @par2
## Chain the gateway load balancer to your existing VM NIC. ##
$par3 = @{
Name = 'myIPconfig'
NetworkInterface = $nic
GatewayLoadBalancerId = $gwlb.FrontendIpConfigurations.Id
}
$config = Set-AzNetworkInterfaceIpConfig @par3
$config | Set-AzNetworkInterface
Очистка ресурсов
Чтобы удалить группу ресурсов, подсистему балансировки нагрузки и все остальные ресурсы, можно воспользоваться командлетом Remove-AzResourceGroup.
Remove-AzResourceGroup -Name 'TutorGwLB-rg'
Следующие шаги
Создайте сетевые виртуальные модули в Azure.
При создании NVA выберите ресурсы, созданные в этом руководстве:
Виртуальная сеть
Подсеть
группу безопасности сети;
Gateway Load Balancer
Перейдите к следующей статье, чтобы узнать, как создать службу Azure Load Balancer между регионами.