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


Управление жизненным циклом приложения в Контейнерах приложений Azure

Жизненный цикл приложения для Контейнеров приложений Azure основан на редакциях.

При развертывании приложения-контейнера первая редакция создается автоматически. Дополнительные изменения создаются при изменении контейнеров или изменениях в разделе конфигурации template.

Приложение контейнера проходит через четыре этапа: развертывание, обновление, деактивация и завершение работы.

Примечание.

Задания приложений контейнеров Azure не поддерживают редакции. Задания развертываются и обновляются напрямую.

Развертывание

При развертывании приложения-контейнера вы автоматически создаете первую редакцию.

Приложения контейнеров Azure: этап развертывания

Обновить

При обновлении приложения-контейнера с изменением области редакции создается новая редакция. Можно выбрать , следует ли автоматически деактивировать старые редакции (один режим редакции) или разрешить им оставаться доступными (несколько режимов редакции).

Приложения контейнеров Azure: этап обновления

При использовании режима одной ревизии приложения в контейнерах автоматически переключаются между версиями для поддержки развертывания без простоя.

Деактивировать

Если вам больше не нужна версия, вы можете деактивировать ее и затем повторно активировать позже при необходимости. Во время деактивации контейнеры в версии выключаются.

Приложения контейнеров Azure: этап деактивации

Завершение работы

Контейнеры завершаются в следующих ситуациях:

  • Когда приложение-контейнер масштабируется внутрь
  • При удалении приложения-контейнера
  • При деактивации ревизии

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

Если приложение не отвечает в течение 30 секунд на SIGTERM сообщение, SIGKILL завершает контейнер.

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

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