Поделиться через


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

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

Веб-страница NGINX по умолчанию

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

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

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

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

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