Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пул серверов является важнейшим компонентом балансировщика нагрузки. Серверный пул определяет группу ресурсов, обслуживающих трафик для заданного правила балансировки нагрузки.
Существует два способа конфигурировать пул серверной части:
Сетевая карта (NIC)
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-адресов могут использоваться только для стандартных балансировщиков нагрузки.
- Ресурсы бэкенда должны находиться в той же виртуальной сети, что и балансировщик нагрузки на основе IP-адресов.
- Серверные экземпляры подсистем балансировки нагрузки на основе IP-адресов по-прежнему должны быть виртуальными машинами или масштабируемыми наборами виртуальных машин. Присоединение других служб PaaS к внутреннему пулу подсистемы балансировки нагрузки на основе IP-адресов не поддерживается.
- Подсистема балансировки нагрузки с внутренним пулом на основе IP-адресов не может выполнять роль службы Приватного канала.
- Ресурсы частной конечной точки не могут размещаться в серверном пуле с IP-адресацией.
- Подсистемы балансировки нагрузки на основе IP-адресов не поддерживают контейнеры ACI
- Подсистемы балансировки нагрузки или службы, такие как Шлюз приложений, нельзя помещать во внутренний пул подсистемы балансировки нагрузки
- Правила NAT для входящего трафика не могут определяться IP-адресом.
- Вы можете настроить серверные пулы на основе IP и сетевых карт для одного и того же балансировщика нагрузки. Вы не можете создать один бекендный пул, в котором сочетаются адреса, нацеленные на сетевые карты (NIC), и отдельные IP-адреса в одном и том же пуле.
- Виртуальная машина в той же виртуальной сети, что и внутренняя подсистема балансировки нагрузки, не может одновременно получить доступ к интерфейсной части подсистемы балансировки нагрузки и ее внутренним виртуальным машинам.
- IP-адреса с приоритетом маршрутизации через Интернет в настоящее время не поддерживаются пулами серверов на основе IP-адресов. Все IP-адреса маршрутизации в пулах серверов на основе IP-адресов будут выставляться и направляться через глобальную сеть Microsoft, использующуюся по умолчанию.
- Если серверные пулы постоянно меняются (из-за постоянного добавления или удаления внутренних ресурсов). Это может привести к сбросу сигналов, отправляемых обратно источнику из внутреннего ресурса. В качестве обходного решения можно использовать повторные попытки.
Внимание
Если серверный пул настроен по IP-адресу, он будет вести себя как Load Balancer категории "Базовый" с включенным исходящим трафиком по умолчанию. Для конфигурации с безопасностью по умолчанию и приложений с высокими требованиями к исходящему трафику настройте серверный пул по сетевому интерфейсу.
Следующие шаги
Из этой статьи вы узнали об управлении внутренним пулом Azure Load Balancer и о настройке внутреннего пула с использованием IP-адреса и виртуальной сети.
Дополнительные сведения об Azure Load Balancer.
Изучите REST API для управления серверным пулом на основе IP-адресов.