Облачная платформаEvolution

Статусы контейнера и ревизии в Container Apps


Статусы контейнеров и ревизий доступны в личном кабинете, в разделе Контейнеры. Также они возвращаются в ответе на запросы по API.

Статусы в личном кабинете

Контейнер и ревизия могут находиться в одном из статусов:

  • «Публикуется» — статус устанавливается при следующих событиях:

    • после создания контейнера/ревизии;

    • после изменения образа в настройках контейнера/ревизии;

    • после изменения количества вычислительных ресурсов в настройках контейнера/ревизии.

  • «Выполняется» — статус устанавливается, когда контейнер/ревизия запущен и сейчас принимает запросы.

    В ревизии может быть запущен не только главный контейнер, но и sidecar- и init-контейнеры. Даже когда создана новая ревизия, которая активно принимает запросы пользователей, предыдущая ревизия контейнера может завершать задачи в sidecar-контейнере. Такая ревизия может какое-то время находиться в статусе «Выполняется», хотя она не принимает запросы пользователей.

  • «Готово» — статус устанавливается, когда ревизия запущена и готова принимать запросы.

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

  • «Ошибка» — статус устанавливается в случае ошибки при публикации контейнера/ревизии. Подробнее — в разделе Решение проблем в сервисе Container Apps.

Статусы API

При работе с контейнерами и ревизиями по API возвращаются их статусы.

Статусы контейнера

Контейнер может быть в одном из статусов:

  • «for_create» — запущен процесс создания контейнера. Система выполняет подготовку ресурсов и конфигурации.

  • «running» — контейнер успешно создан и запущен. Это основной рабочий статус для активных контейнеров.

  • «for_patch» — статус устанавливается, когда запущено изменение конфигурации контейнера, например, после обновления образа.

  • «for_suspend» — запущен процесс остановки контейнера по запросу пользователя.

  • «suspended» — контейнер остановлен. Контейнер не потребляет вычислительные ресурсы, но его конфигурация сохраняется.

  • «for_suspend_product» — запущен процесс автоматической остановки контейнера сервисом Container Services, например, при превышении лимитов.

  • «suspended_product» — контейнер остановлен сервисом Container Services.

  • «for_resume» — запущен процесс запуска остановленного контейнера.

  • «publishing» — промежуточный статус, который показывает, что контейнер в процессе публикации. В этот статус переходят контейнеры посту успешного завершения процесса в статусах «for_patch», «for_create», «for_resume».

  • «for_delete» — запущен процесс удаления контейнера.

  • «deleted» — контейнер удален и ресурсы освобождены.

  • «error» — возникли ошибки в системных компонентах. Это не конечный статус — сервис попробует перезапустить процесс.

    Подробнее — в разделе Решение проблем в сервисе Container Apps.

  • «rejected» — конечный статус, который возникает при неудачном создании («create») или запуске остановленного («resume») контейнера. Контейнер не был запущен из-за критических ошибок конфигурации или недоступности ресурсов.

Логика перехода статусов для контейнера

Последовательность статусов для контейнеров определяется действием пользователя.

  • При создании контейнера: «for_create» → «publishing» → «running». Если процесс создания контейнера не может быть завершен вместо статуса «running» у контейнера будет статус «rejected».

  • При изменении контейнера: «for_patch» → «publishing» → «running».

  • При остановке контейнера: «for_suspend» → «suspended».

  • При автоматической остановке контейнера сервисом Container Services: «for_suspend_product» → «suspended_product».

  • При запуске остановленного контейнера: «for_resume» → «publishing» → «running». Если процесс запуска контейнера не может быть завершен вместо статуса «running» у контейнера будет статус «rejected».

  • При удалении контейнера: «for_delete» → «deleted».

Если в процессе выполнения действий с контейнером появятся ошибки, контейнер получит статус «error». При этом сервис попробует перезапустить процесс.

Статусы ревизии

Ревизия может быть в одном из статусов:

  • «creating» — запущен процесс создания ревизии.

    В этом статусе сервис:

    • создает необходимые ресурсы;

    • загружает образ контейнера из реестра;

    • выполняет проверки готовности к запуску;

    • настраивает сетевые правила и маршрутизацию.

    После успешного завершения всех этапов ревизия переходит в статус «ready».

  • «ready» — ревизия успешно создана, все поды запущены и прошли проверки готовности. Ревизия работоспособна, но в данный момент не получает пользовательский трафик.

  • «active» — ревизия получает пользовательский трафик. При переключении трафика на новую ревизию предыдущая ревизия переходит в статус «ready».

  • «error» — возникли ошибки и работа ревизии в данный момент невозможна.

    Подробнее — в разделе Решение проблем в сервисе Container Apps.

Логика перехода статусов для ревизии

Последовательность статусов ревизии определяется ее жизненным циклом:

  • Создание ревизии: «creating» → «ready».

  • Обработка пользовательского трафика: «ready» → «active».

  • Переключение трафика на другую ревизию: «active» → «ready».