Краткое руководство. Создание масштабируемого набора виртуальных машин с помощью Azure CLI

Область применения: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

Примечание.

Следующая статья предназначена для единого Масштабируемые наборы виртуальных машин. Мы рекомендуем использовать гибкие Масштабируемые наборы виртуальных машин для новых рабочих нагрузок. Дополнительные сведения об этом новом режиме оркестрации см. в обзоре гибкой Масштабируемые наборы виртуальных машин.

Масштабируемый набор виртуальных машин позволяет развертывать и управлять набором виртуальных машин автоматического масштабирования. Вы можете вручную изменить число виртуальных машин в масштабируемом наборе или определить правила для автоматического масштабирования в зависимости от использования ЦП, объема памяти или сетевого трафика. После этого Azure Load Balancer будет распределять трафик между экземплярами виртуальных машин в масштабируемом наборе. В этом кратком руководстве описано, как создать масштабируемый набор виртуальных машин и развернуть пример приложения с помощью Azure CLI.

Если у вас еще нет подписки 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.29 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Создание масштабируемого набора

Важно!

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub

Прежде чем создать масштабируемый набор, выполните команду az group create для создания группы ресурсов. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.

az group create --name myResourceGroup --location eastus

Теперь создайте масштабируемый набор виртуальных машин с помощью az vmss create. В следующем примере создается масштабируемый набор с именем myScaleSet, который настроен на автоматическое обновление при применении изменений. Также создаются ключи SSH, если они не существуют в ~/.ssh/id_rsa. Эти ключи SSH используются для входа на экземпляры виртуальных машин. Чтобы вместо создания ключей SSH применить существующий набор, используйте параметр --ssh-key-value и укажите расположение ключей.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys

Создание и настройка всех ресурсов и виртуальных машин масштабируемого набора занимает несколько минут.

Разверните пример приложения

Для проверки масштабируемого набора установите базовое веб-приложение. Расширение пользовательского скрипта Azure используется для скачивания и запуска скрипта, который устанавливает приложение на экземплярах виртуальных машин. Это расширение можно использовать для настройки после развертывания, установки программного обеспечения и других задач настройки или управления. Дополнительные сведения см. в статье Расширение Custom Script в ОС Windows.

Используйте расширение пользовательских скриптов для установки базового веб-сервера NGINX. Примените расширение пользовательского скрипта, которое устанавливает NGINX, с помощью команды az vmss extension set, как показано ниже.

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],"commandToExecute":"./automate_nginx.sh"}'

Разрешение передачи трафика в приложение

При создании масштабируемого набора была автоматически развернута служба Azure Load Balancer. Load Balancer распределяет трафик между экземплярами виртуальных машин в масштабируемом наборе. Чтобы разрешить передачу трафика в пример веб-приложения, создайте правило подсистемы балансировки нагрузки с помощью команды az network lb rule create. В следующем примере создается правило myLoadBalancerRuleWeb.

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

Проверка масштабируемого набора

Чтобы увидеть, как работает масштабируемый набор, откройте пример веб-приложения в браузере. Получите общедоступный IP-адрес балансировщика нагрузки с помощью команды az network public-ip show. Следующий пример получает IP-адрес для myScaleSetLBPublicIP, созданного ранее вместе с масштабируемым набором.

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query '[ipAddress]' \
  --output tsv

Введите в браузере общедоступный IP-адрес подсистемы балансировки нагрузки. Подсистема балансировки нагрузки передаст запрос на один из экземпляров виртуальной машины, как показано в следующем примере:

Default web page in NGINX

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

Вы можете удалить ненужную группу ресурсов, масштабируемый набор и все связанные ресурсы с помощью команды az group delete, как показано ниже. При использовании параметра --no-wait управление возвращается в командную строку без ожидания завершения операции. Параметр --yes подтверждает, что вы хотите удалить ресурсы без дополнительного запроса.

az group delete --name myResourceGroup --yes --no-wait

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

С помощью этого краткого руководства вы создали простой масштабируемый набор и с помощью расширения пользовательского скрипта установили базовый веб-сервер NGINX на экземплярах виртуальных машин. Дополнительные сведения см. в руководстве по созданию Масштабируемые наборы виртуальных машин Azure и управлению ими.