Краткое руководство. Создание внутренней подсистемы балансировки нагрузки для балансировки нагрузки виртуальных машин с помощью 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

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

  1. Войдите на портал Azure.

  2. Найдите частный IP-адрес для подсистемы балансировки нагрузки на странице Обзор. В меню слева выберите Все службы>Все ресурсы>myLoadBalancer.

  3. Скопируйте адрес рядом с частным IP-адресом на странице обзора myLoadBalancer. Если частный IP-адрес не отображается, выберите Показать больше.

  4. В меню слева выберите Все службы>Все ресурсы. В списке ресурсов в группе ресурсов CreateIntLBQS-rg выберите myTestVM.

  5. На странице Обзор выберите Подключиться>Бастион.

  6. Введите имя пользователя и пароль, которые вы ввели при создании виртуальной машины.

  7. На виртуальной машине myTestVM откройте браузер Internet Explorer.

  8. Введите IP-адрес с предыдущего шага в адресную строку браузера. В браузере отображается страница веб-сервера IIS по умолчанию.

    Снимок экрана с IP-адресом в адресной строке браузера.

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

Когда ресурсы больше не нужны, можно удалить группу ресурсов, подсистему балансировки нагрузки и все связанные с ней ресурсы, выполнив команду az group delete.

  az group delete \
    --name CreateIntLBQS-rg

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

В этом кратком руководстве:

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

  • подключили к ней две виртуальные машины;

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

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

Чтобы узнать больше об Azure Load Balancer, ознакомьтесь со следующей статьей: