Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании масштабируемого набора вы определяете количество экземпляров виртуальных машин для запуска. По мере изменения потребностей вашего приложения, можно автоматически увеличивать или уменьшать число экземпляров виртуальных машин. Возможность автоматического масштабирования позволяет удовлетворить пользовательский спрос или среагировать на изменения производительности приложения на протяжении его жизненного цикла. В этом руководстве описано, как:
- автомасштабирование масштабируемого набора;
- создание и использование правил автомасштабирования;
- Имитация загрузки ЦП для активации правил автомасштабирования
- Мониторинг действий автоматического масштабирования по мере изменения спроса
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этим учебником требуется Azure CLI версии 2.0.32 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создать набор для масштабирования
Создайте группу ресурсов с помощью az group create.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
Теперь создайте масштабируемый набор виртуальных машин с помощью az vmss create. В следующем примере создается масштабируемый набор с числом экземпляров 2, создаются ключи SSH, если они не существуют, и используется допустимый образ Ubuntu2204.
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
Определение профиля автомасштабирования
Чтобы включить автомасштабирование в масштабируемом наборе, сначала необходимо определить профиль автомасштабирования. Этот профиль определяет используемую по умолчанию, минимальную и максимальную емкости масштабируемого набора. Эти ограничения позволяют контролировать затраты за счет того, что экземпляры виртуальных машин не создаются непрерывно, и сбалансировать приемлемую производительность с минимальным числом экземпляров, которые остаются в масштабируемом событии. Создайте профиль автомасштабирования с помощью команды az monitor autoscale create. В следующем примере устанавливается стандартная и минимальная емкость, равная 2 экземплярам виртуальных машин, и максимальная емкость, равная 10 экземплярам.
az monitor autoscale create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--resource $MY_SCALE_SET_NAME \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 2
Создание правила для автоматического горизонтального увеличения масштаба
При увеличении потребностей вашего приложения увеличивается нагрузка на экземпляры виртуальных машин в наборе масштабирования. Если эта повышенная нагрузка постоянна, а не просто кратковременная потребность, можно настроить правила автомасштабирования, чтобы увеличить количество экземпляров виртуальных машин. При создании этих экземпляров и развертывании приложения масштабируемый набор начинает распространять трафик к ним через подсистему балансировки нагрузки. Вы контролируете, какие метрики следует отслеживать, сколько времени нагрузка должна соответствовать заданному пороговому значению и сколько экземпляров виртуальных машин необходимо добавить.
Создайте правило с помощью команды az monitor autoscale rule create, которое увеличивает количество экземпляров виртуальных машин, когда средняя загрузка ЦП превышает 70% за 5 минут. При активации правила количество экземпляров виртуальных машин увеличивается до трех.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Создание правила для автоматического горизонтального уменьшения масштаба
При уменьшении спроса на приложение нагрузка на экземпляры виртуальной машины снижается. Если эта снижение нагрузки сохраняется в течение определенного периода времени, можно настроить правила автомасштабирования, чтобы уменьшить количество экземпляров виртуальных машин в масштабируемом наборе. Это масштабирование помогает сократить затраты, запуская только необходимое количество экземпляров для удовлетворения текущего спроса.
Создайте другое правило с помощью правила автомасштабирования az monitor , которое уменьшает количество экземпляров виртуальных машин, когда средняя загрузка ЦП снижается до 30% за 5 минут. В следующем примере увеличивается количество экземпляров виртуальной машины на один.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Имитация загрузки ЦП в масштабируемом наборе
Чтобы протестировать правила автомасштабирования, необходимо имитировать устойчивую нагрузку ЦП на экземпляры виртуальных машин в масштабируемом наборе. В этом минималистском подходе мы избегаем установки дополнительных пакетов с помощью встроенной yes
команды для создания загрузки ЦП. Следующая команда запускает 3 фоновых процесса, которые непрерывно выводят данные в /dev/null
течение 60 секунд, а затем завершают их.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Эта команда имитирует загрузку ЦП без возникновения ошибок установки пакета.
Мониторинг активных правил автомасштабирования
Чтобы отслеживать количество экземпляров виртуальных машин в наборе масштабирования watch
, используйте команду. Может потребоваться до 5 минут, чтобы правила автоматического масштабирования начали процесс горизонтального масштабирования в ответ на загрузку процессора. Тем не менее, как только это произойдет, вы можете выйти из режима наблюдения, используя клавиши CTRL+C.
К тому же масштабируемый набор автоматически увеличит количество экземпляров виртуальных машин для удовлетворения спроса. Следующая команда содержит список экземпляров виртуальных машин в масштабируемом наборе:
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
Когда достигается порог нагрузки на ЦП, в соответствии с правилами автомасштабирования увеличивается число экземпляров виртуальных машин в масштабируемом наборе. В выводе будет показан список экземпляров виртуальных машин по мере создания новых.
InstanceId LatestModelApplied Location Name ProvisioningState ResourceGroup VmId
------------ -------------------- ---------- --------------- ------------------- -------------------- ------------------------------------
1 True WestUS2 myScaleSet_1 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 True WestUS2 myScaleSet_2 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 True WestUS2 myScaleSet_4 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5 True WestUS2 myScaleSet_5 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 True WestUS2 myScaleSet_6 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
После утихания загрузки ЦП средняя загрузка ЦП возвращается в нормальное состояние. На протяжении следующих 5 минут в соответствии с правилами автомасштабирования осуществляется горизонтальное уменьшение масштаба для числа виртуальных машин. Действия по уменьшению масштаба сначала удаляют экземпляры виртуальных машин с самыми большими идентификаторами. Если масштабируемый набор использует группы доступности или зоны доступности, действия масштабирования равномерно распределяются между экземплярами виртуальных машин. В следующем примере выводимых данных показано, как один экземпляр виртуальной машины удаляется в процессе уменьшения размера масштабируемого набора.
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Очистите ресурсы
Чтобы удалить набор масштабируемых ресурсов и связанные с ним ресурсы, вручную удалите группу ресурсов, используя предпочтительный метод.
Дальнейшие шаги
Из этого руководства вы узнали, как выполнять горизонтальное увеличение или уменьшение масштаба для масштабируемого набора с помощью Azure CLI:
- автомасштабирование масштабируемого набора;
- создание и использование правил автомасштабирования;
- Имитация загрузки ЦП для активации правил автомасштабирования
- Мониторинг действий автоматического масштабирования по мере изменения спроса