Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Планы Basic, Standardи Enterprise вошли в период прекращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
План стандартного потребления и выделенный план вошли в период вывода из эксплуатации 30 сентября 2024 года, с полным завершением работы к концу марта 2025 года. Дополнительные сведения см. в статье «Миграция потребления и выделенного плана Azure Spring Apps Standard в Azure Container Apps».
Эта статья относится к:✅ Java ✅ C#
Эта статья относится к:✅ Basic/Standard ✅ Enterprise
В этой статье показано, как настроить приложения, работающие в Azure Spring Apps с помощью проб работоспособности и льготных периодов завершения.
Проба — это диагностическое действие, выполняемое Azure Spring Apps в экземпляре приложения периодически. Чтобы выполнить диагностику, Azure Spring Apps выполняет одно из следующих действий:
- Выполняет произвольную команду вашего выбора в экземпляре приложения.
- Устанавливает соединение через сокет TCP.
- Выполняет HTTP-запрос.
Azure Spring Apps предлагает правила пробы работоспособности по умолчанию для каждого приложения. В этой статье показано, как настроить приложение с тремя типами проб работоспособности:
Пробы активности определяют, когда перезапустить приложение. Проверки работоспособности могут определить взаимоблокировку, если приложение запущено, но не может продолжить выполнение. Перезапуск приложения в состоянии взаимоблокировки может сделать приложение доступным, несмотря на ошибки.
Пробы готовности определяют, когда экземпляр приложения готов к приему трафика. Например, пробы готовности могут управлять тем, какие экземпляры приложений используются в качестве бэкендов для приложения. Если экземпляр приложения не готов, он удаляется из службы обнаружения Kubernetes. Дополнительные сведения см. в статье "Обнаружение и регистрация приложений Spring Boot". Дополнительные сведения об обнаружении служб с помощью плана Enterprise см. в разделе "Использование реестра служб Tanzu".
Пробы запуска определяют, когда приложение запущено. Проба запуска отключает проверку активности и готовности до успешного запуска, что гарантирует, что пробы активности и готовности не влияют на запуск приложения. Проверки запуска можно использовать для выполнения проверок работоспособности в приложениях с медленным запуском, чтобы предотвратить завершение приложения до его полного запуска.
Предварительные условия
Azure CLI с расширением Azure Spring Apps. Используйте следующую команду, чтобы удалить предыдущие версии и установить последнее расширение. Если вы ранее установили расширение Spring-Cloud, удалите его, чтобы избежать несоответствий конфигурации и версий.
az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Настройка проб работоспособности и корректное завершение для приложений
В следующих разделах описано, как настроить пробы работоспособности и корректное завершение с помощью Azure CLI.
Корректное завершение
В следующей таблице описывается свойство terminationGracePeriodSeconds
, которое можно использовать для настройки корректного завершения.
Имя свойства | Описание |
---|---|
terminationGracePeriodSeconds |
Длительность в секундах после отправки выполняющимся процессам в экземпляре приложения сигнала завершения перед их принудительной остановкой. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Значением должно быть неотрицательное целое число. Установка периода ожидания на 0 немедленно завершает работу экземпляра приложения через сигнал завершения, без возможности корректного завершения. Если значение равно nil , Azure Spring Apps использует льготный период по умолчанию. Значение по умолчанию — 90 . |
Свойства пробы работоспособности
В следующей таблице описаны свойства, которые можно использовать для настройки проб работоспособности.
Имя свойства | Описание |
---|---|
initialDelaySeconds |
Количество секунд после запуска экземпляра приложения перед запуском проб. Значение по умолчанию — 0 , минимальное значение. |
periodSeconds |
Частота в секундах для выполнения пробы. Значение по умолчанию — 10 . Минимальное значение равно 1 . |
timeoutSeconds |
Количество секунд до истечения времени ожидания пробы. Значение по умолчанию — 1 , минимальное значение. |
failureThreshold |
Минимальное количество последовательных сбоев для того, чтобы проба считалась неудачной после успешного прохождения. Значение по умолчанию — 3 . Минимальное значение равно 1 . |
successThreshold |
Минимальное число последовательных успешных попыток, которые должны быть достигнуты после сбоя, чтобы проба считалась успешной. Значение по умолчанию — 1 . Значение должно быть 1 для жизнеобеспечения и запуска. Минимальное значение равно 1 . |
Свойства действия пробы
Существует три способа проверки экземпляра приложения с помощью пробы. Каждый датчик должен определить одно из следующих действий датчика:
HTTPGetAction
Выполняет HTTP-запрос GET к экземпляру приложения по указанному пути. Диагностика считается успешной, если ответ имеет код состояния больше или равен 200 и менее 400.
Имя свойства Описание scheme
Схема, используемая для подключения к узлу. Значение по умолчанию — HTTP
.path
Путь доступа на HTTP-сервере экземпляра приложения, например /healthz
.ExecAction
Выполняет указанную команду внутри экземпляра приложения. Диагностика считается успешной, если команда завершает работу с кодом состояния 0.
Имя свойства Описание command
Команда, выполняемая внутри экземпляра приложения. Рабочий каталог команды — это корневой каталог (/) в файловой системе экземпляра приложения. Поскольку команда выполняется с помощью exec
, а не внутри оболочки, инструкции оболочки не будут работать. Чтобы воспользоваться оболочкой, нужно напрямую обратиться к ней. Состояние выхода0
рассматривается как живое и работоспособное, и ненулевое состояние неработоспособно.TCPSocketAction
Выполняет проверку TCP для экземпляра приложения.
Нет доступных свойств для этого действия
TCPSocketAction
.
Настройка приложения
Чтобы настроить приложение с помощью портал Azure, выполните следующие действия.
В разделе "Параметры" выберите "Приложения" и выберите приложение из списка.
Выберите Конфигурация в левой панели навигации, затем выберите Проверки работоспособности и укажите их свойства.
Чтобы задать льготный период завершения, выберите общие параметры и укажите значение в поле льготного периода завершения.
Лучшие практики
При добавлении проб работоспособности в Azure Spring Apps используйте следующие лучшие практики.
Совместно используйте пробы активности и готовности. Azure Spring Apps предоставляет два подхода к обнаружению служб одновременно. При неисправности проверки готовности экземпляр приложения удаляется только из системы обнаружения сервисов Kubernetes. Правильно настроенная проба активности может удалить выданный экземпляр приложения из обнаружения службы Eureka, чтобы избежать непредвиденных случаев. Дополнительные сведения об обнаружении служб см. в статье "Обнаружение и регистрация приложений Spring Boot". Дополнительные сведения об обнаружении служб с помощью плана Enterprise см. в разделе "Использование реестра служб Tanzu".
При запуске экземпляра приложения первая проверка происходит после задержки, указанной в параметре
initialDelaySeconds
. Последующие проверки периодически происходят в соответствии с периодом, указанным в параметреperiodSeconds
. Если приложение не может отвечать на запросы несколько раз, как указаноfailureThreshold
, экземпляр приложения перезапускается. Убедитесь, что приложение может запуститься достаточно быстро или обновить эти параметры, чтобы общее время ожиданияinitialDelaySeconds + periodSeconds * failureThreshold
больше времени начала приложения.Для приложений Spring Boot поставляется поддержка групп работоспособности, что позволяет разработчикам выбирать подмножество индикаторов работоспособности и группировать их в соответствии с единой согласованной оценкой состояния работоспособности. Для получения дополнительной информации см. Liveness и Readiness Probes с использованием Spring Boot в блоге Spring.
В следующем примере показана проба активности с spring Boot:
"probe": { "initialDelaySeconds": 30, "periodSeconds": 10, "timeoutSeconds": 1, "failureThreshold": 30, "successThreshold": 1, "probeAction": { "type": "HTTPGetAction", "scheme": "HTTP", "path": "/actuator/health/liveness" } }
В следующем примере показана проба готовности с помощью Spring Boot:
"probe": { "initialDelaySeconds": 0, "periodSeconds": 10, "timeoutSeconds": 1, "failureThreshold": 3, "successThreshold": 1, "probeAction": { "type": "HTTPGetAction", "scheme": "HTTP", "path": "/actuator/health/readiness" } }
Часто задаваемые вопросы
В этом разделе приведены ответы на часто задаваемые вопросы об использовании проб работоспособности в Azure Spring Apps.
Я получил ответ 400, когда я создавал приложения с пользовательскими проверками работоспособности. Что это значит?
Сообщение об ошибке указывает, какой зонд отвечает за сбой предоставления. Убедитесь, что правила проверки работоспособности верны и что время ожидания достаточно продолжительное, чтобы приложение было в рабочем состоянии.
Каковы параметры пробы по умолчанию для существующего приложения?
В следующем примере показаны параметры по умолчанию:
"startupProbe": null, "livenessProbe": { "disableProbe": false, "failureThreshold": 3, "initialDelaySeconds": 300, "periodSeconds": 10, "probeAction": { "type": "TCPSocketAction" }, "successThreshold": 1, "timeoutSeconds": 3 }, "readinessProbe": { "disableProbe": false, "failureThreshold": 3, "initialDelaySeconds": 0, "periodSeconds": 5, "probeAction": { "type": "TCPSocketAction" }, "successThreshold": 1, "timeoutSeconds": 3 }