Краткое руководство. Создание внутренней подсистемы балансировки нагрузки для балансировки нагрузки виртуальных машин с помощью Azure CLI
Начните работу с Azure Load Balancer, создав с помощью Azure CLI внутреннюю подсистему балансировки нагрузки и две виртуальные машины. Дополнительные ресурсы включают Бастион Azure, шлюз NAT, виртуальную сеть и необходимые подсети.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этим кратким руководством требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание или изменение группы ресурсов
Группа ресурсов Azure — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими.
Создайте группу ресурсов с помощью команды az group create.
az group create \
--name CreateIntLBQS-rg \
--location westus2
При создании внутренней подсистемы балансировки нагрузки виртуальная сеть настраивается в качестве сети для подсистемы балансировки нагрузки.
Создание виртуальной сети
Прежде чем развертывать виртуальные машины и тестировать подсистему балансировки нагрузки, создайте для них виртуальную сеть и подсеть. Виртуальная сеть и подсеть содержат ресурсы, развернутые далее в этой статье.
Создайте виртуальную сеть с помощью команды az network vnet create.
az network vnet create \
--resource-group CreateIntLBQS-rg \
--location westus2 \
--name myVNet \
--address-prefixes 10.1.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.1.0.0/24
Создание узла-бастиона Azure
В этом примере создается узел Бастиона Azure. Узел Бастиона Azure используется далее в этой статье для безопасного управления виртуальными машинами и тестирования развертывания подсистемы балансировки нагрузки.
Внимание
Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.
Создание общедоступного IP-адреса бастиона
Чтобы создать общедоступный IP-адрес узла Бастиона Azure, воспользуйтесь командой az network public-ip create.
az network public-ip create \
--resource-group CreateIntLBQS-rg \
--name myBastionIP \
--sku Standard \
--zone 1 2 3
Создание подсети бастиона
Используйте команду az network vnet subnet create, чтобы создать подсеть.
az network vnet subnet create \
--resource-group CreateIntLBQS-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.1.1.0/27
Создание узла-бастиона
Используйте команду az network bastion create для создания узла.
az config set extension.use_dynamic_install=yes_without_prompt
az network bastion create \
--resource-group CreateIntLBQS-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location westus2 \
--only-show-errors \
--no-wait
Развертывание узла-бастиона может занять несколько минут.
Создание подсистемы балансировки нагрузки
В этом разделе описано, как создать и настроить следующие компоненты подсистемы балансировки нагрузки:
интерфейсный пул IP-адресов, который получает входящий трафик в подсистеме балансировки нагрузки;
внутренний пул IP-адресов, на который интерфейсный пул отправляет трафик с балансировкой нагрузки;
проба работоспособности, определяющая работоспособность внутренних экземпляров виртуальной машины;
правило подсистемы балансировки нагрузки, определяющее распределение трафика между виртуальными машинами.
Создание ресурса подсистемы балансировки нагрузки
С помощью команды az network lb create создайте внутреннюю подсистему балансировки нагрузки.
az network lb create \
--resource-group CreateIntLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--vnet-name myVNet \
--subnet myBackendSubnet \
--backend-pool-name myBackEndPool \
--frontend-ip-name myFrontEnd
Создание зонда работоспособности
При пробе работоспособности выполняется проверка всех экземпляров виртуальной машины, чтобы убедиться, что они могут отправлять сетевой трафик.
Виртуальная машина с неудачной пробой удаляется из подсистемы балансировки нагрузки и снова добавляется в нее после устранения сбоя.
Создайте пробу работоспособности с помощью команды az network lb probe create.
az network lb probe create \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer \
--name myHealthProbe \
--protocol tcp \
--port 80
Создание правила подсистемы балансировки нагрузки
Правило подсистемы балансировки нагрузки определяет:
конфигурацию интерфейсных IP-адресов для входящего трафика;
серверный пул IP-адресов для приема трафика;
требуемые порты источника и назначения.
Создайте правило балансировщика нагрузки с помощью команды az network lb rule create.
az network lb rule create \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer \
--name myHTTPRule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool \
--probe-name myHealthProbe \
--idle-timeout 15 \
--enable-tcp-reset true
Создание группы безопасности сети
Для подсистемы балансировки нагрузки уровня "Стандартный" в серверных пулах виртуальных машин должны быть сетевые интерфейсы, связанные с группой безопасности сети.
Чтобы создать группу безопасности сети, используйте команду az network nsg create.
az network nsg create \
--resource-group CreateIntLBQS-rg \
--name myNSG
Создание правила группы безопасности сети
Чтобы создать правило группы безопасности сети, используйте команду az network nsg rule create.
az network nsg rule create \
--resource-group CreateIntLBQS-rg \
--nsg-name myNSG \
--name myNSGRuleHTTP \
--protocol '*' \
--direction inbound \
--source-address-prefix '*' \
--source-port-range '*' \
--destination-address-prefix '*' \
--destination-port-range 80 \
--access allow \
--priority 200
Создание внутренних серверов
В этом разделе показано, как создать:
два сетевых интерфейса для виртуальных машин;
две виртуальные машины, которые будут использоваться в качестве серверов для подсистемы балансировки нагрузки.
Создание сетевых интерфейсов для виртуальных машин
Создайте два сетевых интерфейса с помощью команды az network nic create.
array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic create \
--resource-group CreateIntLBQS-rg \
--name $vmnic \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
done
Создание виртуальных машин
Создайте виртуальные машины с помощью команды az vm create.
array=(1 2)
for n in "${array[@]}"
do
az vm create \
--resource-group CreateIntLBQS-rg \
--name myVM$n \
--nics myNicVM$n \
--image win2022datacenter \
--admin-username azureuser \
--zone $n \
--no-wait
done
На развертывание виртуальных машин может потребоваться несколько минут.
Примечание.
Azure предоставляет IP-адрес исходящего доступа по умолчанию для виртуальных машин, которые либо не назначены общедоступным IP-адресом, либо находятся в серверном пуле внутренней подсистемы балансировки нагрузки Azure. Механизм IP-адреса исходящего трафика по умолчанию предоставляет исходящий IP-адрес, который нельзя настроить.
IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:
- Общедоступный IP-адрес назначается виртуальной машине.
- Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
- Ресурс шлюза NAT Azure назначается подсети виртуальной машины.
Виртуальные машины, созданные с помощью масштабируемых наборов виртуальных машин в гибком режиме оркестрации, не имеют исходящего доступа по умолчанию.
Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.
Добавление виртуальных машин во внутренний пул
Добавьте виртуальные машины во внутренний пул, используя команду az network nic ip-config address-pool add.
array=(VM1 VM2)
for vm in "${array[@]}"
do
az network nic ip-config address-pool add \
--address-pool myBackendPool \
--ip-config-name ipconfig1 \
--nic-name myNic$vm \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer
done
Создание шлюза NAT
Чтобы предоставить исходящий доступ к Интернету для ресурсов во внутреннем пуле, создайте шлюз NAT.
Создание общедоступного IP-адреса
Используйте команду az network public-ip create, чтобы создать отдельный IP-адрес для исходящего подключения.
az network public-ip create \
--resource-group CreateIntLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1 2 3
Создание ресурса шлюза NAT
Выполните команду az network nat gateway create для создания ресурса шлюза NAT. Общедоступный IP-адрес, созданный на предыдущем шаге, связывается с шлюзом NAT.
az network nat gateway create \
--resource-group CreateIntLBQS-rg \
--name myNATgateway \
--public-ip-addresses myNATgatewayIP \
--idle-timeout 10
Сопоставление шлюза NAT с подсетью
Настройте исходную подсеть в виртуальной сети, чтобы использовать конкретный ресурс шлюза NAT в команде az network vnet subnet update.
az network vnet subnet update \
--resource-group CreateIntLBQS-rg \
--vnet-name myVNet \
--name myBackendSubnet \
--nat-gateway myNATgateway
Создание тестовой виртуальной машины
Создайте сетевой интерфейс с помощью команды az network nic create.
az network nic create \
--resource-group CreateIntLBQS-rg \
--name myNicTestVM \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
Создайте виртуальную машину с помощью команды az vm create:
az vm create \
--resource-group CreateIntLBQS-rg \
--name myTestVM \
--nics myNicTestVM \
--image Win2019Datacenter \
--admin-username azureuser \
--no-wait
Возможно, вам придется подождать несколько минут, пока виртуальная машина развернется.
Установить IIS
С помощью команды az vm extension set установите службы IIS на внутренних виртуальных машинах и укажите для веб-сайта по умолчанию имя компьютера.
array=(myVM1 myVM2)
for vm in "${array[@]}"
do
az vm extension set \
--publisher Microsoft.Compute \
--version 1.8 \
--name CustomScriptExtension \
--vm-name $vm \
--resource-group CreateIntLBQS-rg \
--settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
done
Тестирование подсистемы балансировки нагрузки
Найдите частный IP-адрес для подсистемы балансировки нагрузки на странице Обзор. В меню слева выберите Все службы>Все ресурсы>myLoadBalancer.
Скопируйте адрес рядом с частным IP-адресом на странице обзора myLoadBalancer. Если частный IP-адрес не отображается, выберите Показать больше.
В меню слева выберите Все службы>Все ресурсы. В списке ресурсов в группе ресурсов CreateIntLBQS-rg выберите myTestVM.
На странице Обзор выберите Подключиться>Бастион.
Введите имя пользователя и пароль, которые вы ввели при создании виртуальной машины.
На виртуальной машине myTestVM откройте браузер Internet Explorer.
Введите IP-адрес с предыдущего шага в адресную строку браузера. В браузере отображается страница веб-сервера IIS по умолчанию.
Очистка ресурсов
Когда ресурсы больше не нужны, можно удалить группу ресурсов, подсистему балансировки нагрузки и все связанные с ней ресурсы, выполнив команду az group delete.
az group delete \
--name CreateIntLBQS-rg
Следующие шаги
В этом кратком руководстве:
вы создали внутреннюю подсистему балансировки нагрузки;
подключили к ней две виртуальные машины;
настроили правило трафика подсистемы балансировки нагрузки и пробу работоспособности;
Протестировали подсистему балансировки нагрузки
Чтобы узнать больше об Azure Load Balancer, ознакомьтесь со следующей статьей: