Управление серверным пулом
Внутренний пул является важнейшим компонентом подсистемы балансировки нагрузки. Серверный пул определяет группу ресурсов, обслуживающих трафик для заданного правила балансировки нагрузки.
У вас есть два способа настроить внутренний пул:
с помощью сетевой карты;
IP-адрес
Чтобы предварительно выделить внутренний пул с диапазоном IP-адресов, который будет содержать виртуальные машины и Масштабируемые наборы виртуальных машин, настройте пул по IP-адресу и идентификатору виртуальной сети. Эта статья посвящена настройке внутренних пулов по IP-адресам.
Настройка внутреннего пула по IP-адресу и виртуальной сети
В сценариях с использованием предварительно заполненных внутренних пулов следует применять сочетание IP-адресов и виртуальной сети.
Управление серверным пулом настраивается в объекте серверного пула, как демонстрируется в следующих примерах.
PowerShell
Создайте новый внутренний пул:
$be = @{
ResourceGroupName = 'myResourceGroup'
LoadBalancerName = 'myLoadBalancer'
Name = 'myBackendPool'
}
$backendPool = New-AzLoadBalancerBackendAddressPool @be
Обновите внутренний пул с новым IP-адресом из существующей виртуальной сети:
$vnet = @{
Name = 'myVnet'
ResourceGroupName = 'myResourceGroup'
}
$virtualNetwork = Get-AzVirtualNetwork @vnet
$add1 = @{
IpAddress = '10.0.0.5'
Name = 'TestVNetRef'
VirtualNetworkId = $virtualNetwork.Id
}
$ip1 = New-AzLoadBalancerBackendAddressConfig @add1
$backendPool.LoadBalancerBackendAddresses.Add($ip1)
Set-AzLoadBalancerBackendAddressPool -InputObject $backendPool
Получите сведения о внутреннем пуле для подсистемы балансировки нагрузки и убедитесь, что внутренние адреса добавлены во внутренний пул:
$pool = @{
ResourceGroupName = 'myResourceGroup'
LoadBalancerName = 'myLoadBalancer'
Name = 'myBackendPool'
}
Get-AzLoadBalancerBackendAddressPool @pool
Создайте сетевой интерфейс и добавьте его во внутренний пул. Присвойте IP-адрес одному из внутренних адресов:
$net = @{
Name = 'myNic'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus'
PrivateIpAddress = '10.0.0.5'
Subnet = $virtualNetwork.Subnets[0]
}
$nic = New-AzNetworkInterface @net
Создайте виртуальную машину и подключите к ней сетевую карту с IP-адресом из внутреннего пула:
# Create a username and password for the virtual machine
$cred = Get-Credential
# Create a virtual machine configuration
$net = @{
Name = 'myNic'
ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net
$vmc = @{
VMName = 'myVM1'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'myVM1'
Credential = $cred
}
$vmi = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2019-Datacenter'
Version = 'latest'
}
$vmConfig =
New-AzVMConfig @vmc | Set-AzVMOperatingSystem -Windows @vmos | Set-AzVMSourceImage @vmi | Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine using the configuration
$vm = @{
ResourceGroupName = 'myResourceGroup'
Zone = '1'
Location = 'eastus'
VM = $vmConfig
}
$vm1 = New-AzVM @vm
CLI
С помощью CLI вы можете заполнить внутренний пул, указав аргументы командной строки либо применив файл конфигурации в формате JSON.
Создайте и заполните внутренний пул с помощью аргументов командной строки:
az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address name=addr1 ip-address=10.0.0.4 \
--backend-address name=addr2 ip-address=10.0.0.5
Создайте и заполните внутренний пул, используя файл конфигурации в формате JSON:
az network lb address-pool create \
--resource-group myResourceGroup \
--lb-name myLB \
--name myBackendPool \
--vnet {VNET resource ID} \
--backend-address-config-file @config_file.json
Файл конфигурации в формате JSON:
[
{
"name": "address1",
"virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
"ipAddress": "10.0.0.4"
},
{
"name": "address2",
"virtualNetwork": "/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/virtualNetworks/{vnet-name}",
"ipAddress": "10.0.0.5"
}
]
Получите сведения о внутреннем пуле для подсистемы балансировки нагрузки и убедитесь, что внутренние адреса добавлены во внутренний пул:
az network lb address-pool show \
--resource-group myResourceGroup \
--lb-name MyLb \
--name MyBackendPool
Создайте сетевой интерфейс и добавьте его во внутренний пул. Присвойте IP-адрес одному из внутренних адресов:
az network nic create \
--resource-group myResourceGroup \
--name myNic \
--vnet-name myVnet \
--subnet mySubnet \
--network-security-group myNetworkSecurityGroup \
--lb-name myLB \
--private-ip-address 10.0.0.4
Создайте виртуальную машину и подключите к ней сетевую карту с IP-адресом из внутреннего пула:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--nics myNic \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Ограничения
- Внутренние пулы на основе IP-адресов могут использоваться только для Load Balancer цен. категории "Стандартный".
- Ресурсы внутреннего пула должны находиться в той же виртуальной сети, что и Load Balancer на основе IP-адресов.
- Серверные экземпляры подсистем балансировки нагрузки на основе IP-адресов по-прежнему должны быть виртуальными машинами или масштабируемыми наборами виртуальных машин. Присоединение других служб PaaS к внутреннему пулу подсистемы балансировки нагрузки на основе IP-адресов не поддерживается.
- Подсистема балансировки нагрузки с внутренним пулом на основе IP-адресов не может выполнять роль службы Приватного канала.
- Ресурсы частной конечной точки не могут размещаться в серверном пуле на основе IP-адресов.
- Подсистемы балансировки нагрузки на основе IP-адресов не поддерживают контейнеры ACI
- Подсистемы балансировки нагрузки или службы, такие как Шлюз приложений, нельзя помещать во внутренний пул подсистемы балансировки нагрузки
- Правила NAT для входящего трафика не могут определяться IP-адресом.
- Вы можете настроить серверные пулы на основе IP и сетевых карт для одной и той же подсистемы балансировки нагрузки. Вы не можете создать один серверный пул, в котором сочетаются адреса с поддержкой сетевых карт и отдельные IP-адреса.
- Виртуальная машина в той же виртуальной сети, что и внутренняя подсистема балансировки нагрузки, не может одновременно получить доступ к интерфейсной части подсистемы балансировки нагрузки и ее внутренним виртуальным машинам.
- Ip-адреса, предпочитаемые через Интернет, в настоящее время не поддерживаются серверными пулами на основе IP-адресов. Все IP-адреса маршрутизации в пулах серверных серверов на основе IP-адресов будут выставляться и направляться через глобальную сеть Майкрософт по умолчанию.
- Если серверные пулы постоянно меняются (из-за постоянного добавления или удаления внутренних ресурсов). Это может привести к сбросу сигналов, отправляемых обратно источнику из внутреннего ресурса. В качестве обходного решения можно использовать повторные попытки.
Внимание
Если серверный пул настроен по IP-адресу, он будет вести себя как Load Balancer категории "Базовый" с включенным исходящим трафиком по умолчанию. Для безопасной по умолчанию конфигурации и приложений с большим объемом исходящего трафика настройте серверный пул по сетевой карте.
Следующие шаги
Из этой статьи вы узнали об управлении внутренним пулом Azure Load Balancer и о настройке внутреннего пула с использованием IP-адреса и виртуальной сети.
Дополнительные сведения об Azure Load Balancer.
Изучите REST API для управления серверным пулом на основе IP-адресов.