Краткое руководство. Настройка автомасштабирования для приложений в режиме потребления Azure Spring Apps standard и выделенного плана

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья относится к: ✔️ стандартное потребление и выделенная (предварительная версия) ❌ Basic/Standard ❌ Enterprise

В этой статье описывается настройка правил автомасштабирования для приложений в Azure Spring Apps Standard и выделенного плана. План использует среду приложений контейнеров Azure для размещения приложений Spring и обеспечивает следующее управление и поддержку:

  • Управляет автоматическим горизонтальным масштабированием с помощью набора декларативных правил масштабирования.
  • Поддерживает все правила масштабирования, поддерживаемые приложениями контейнеров Azure.

Дополнительные сведения см . в документации по приложениям контейнеров Azure.

Необходимые компоненты

Определение масштабирования

Масштабирование определяется сочетанием ограничений и правил.

  • Ограничения — это минимальное и максимальное количество экземпляров, разрешенных в Spring.

    Предел масштабирования Default value Минимальное значение Максимальное значение
    Минимальное количество экземпляров на развертывание 1 0 30
    Максимальное количество экземпляров на развертывание 10 1 30

    По умолчанию минимальное количество экземпляров приложения Spring имеет значение 1, чтобы гарантировать, что развертывание всегда выполняется. Если вы хотите масштабировать до нуля, можно задать минимальное число экземпляров равным нулю.

  • Правила — это критерии, которые выполняет автоматическое масштабирование для добавления или удаления экземпляров. Правила масштабирования включают правила HTTP, TCP и пользовательские правила, как описано в разделе " Правила масштабирования" в разделе "Настройка правил масштабирования" в приложениях контейнеров Azure.

    Если вы определяете несколько правил масштабирования, автомасштабирование начинается при выполнении первого условия любого правила.

  • Интервал опроса и период охлаждения — это два интервала времени, которые происходят во время автомасштабирования.

    • Интервал опроса определяет интервал времени между каждым действием опроса данных в режиме реального времени в соответствии с правилами. Интервал опроса по умолчанию равен 30 секундам.
    • Период охлаждения применяется только при масштабировании до нуля , например, чтобы ждать пять минут после последнего автомасштабирования проверка очереди сообщений и было пусто.

Настройка параметров автомасштабирования

Параметры автомасштабирования для приложения можно настроить с помощью портал Azure или Azure CLI.

Чтобы определить параметры и правила автомасштабирования, выполните следующие действия.

  1. Войдите на портал Azure.
  2. Выберите Azure Spring Apps в службах Azure.
  3. В столбце "Имя" выберите экземпляр Azure Spring Apps, который требуется автомасштабировать.
  4. На странице обзора для экземпляра Azure Spring Apps выберите "Приложения " в области навигации.
  5. Выберите приложение, которое требуется автомасштабировать.
  6. На странице обзора выбранного приложения выберите "Горизонтальное масштабирование " в области навигации.
  7. На странице горизонтального масштабирования (предварительная версия) выберите развертывание, которое требуется автомасштабировать.
  8. Настройте ограничения экземпляра развертывания.
  9. Нажмите кнопку "Добавить", чтобы добавить правила масштабирования.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Пользовательские правила масштабирования

Дополнительные сведения об определении настраиваемых правил см. в разделе "Масштабировщики Keda". В следующих разделах показаны два примера настройки правил масштабирования в MySQL и Cron.

Настройка правил автоматического масштабирования в базе данных MySQL

В следующих командах CLI показано, как автомасштабировать приложение Spring на основе Keda MySQL Scaler. Сначала создайте секрет для хранения строка подключения SQL. Этот секрет используется для проверки подлинности правила масштабирования. Затем настройте правило, которое масштабирует приложение на основе количества строк таблицы.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Создание правила на основе cron Linux

В следующих командах показано, как настроить правило на основе Keda Cron Scaler. Реплика масштабируются до требуемого числа во время интервала времени крона.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Масштабирование событий

События масштабирования можно найти в системных журналах базового приложения контейнера и отфильтровать EventSource с помощью KEDA, как показано в следующем примере:

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

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

Не забудьте удалить ресурсы, созданные в этой статье, если они больше не нужны. Чтобы удалить ресурсы, просто удалите группу ресурсов, содержащую их. Группу ресурсов можно удалить с помощью портал Azure. Кроме того, чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

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