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


Состояния Экземпляров контейнеров Azure

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

Где отображаются значения состояния

На портале Azure состояние отображается в различных местах. Все значения состояний можно получить через определение ресурса в формате JSON. Это значение можно найти в разделе "Основные сведения" в колонке "Обзор", показанном на следующем рисунке.

Вкладка

Состояние также отображается в других разделах портала Azure. В следующей таблице указано, где можно найти значения состояния.

Имя. Путь JSON Расположение на портале Azure
Состояние группы контейнеров properties.instanceView.state В разделе "Основные компоненты" на вкладке "Обзор"
Текущее состояние контейнера properties.containers/initContainers[x].instanceView.currentState.state В столбце Состояние таблицы панели "Контейнеры"
Предыдущее состояние контейнера properties.containers/initContainers[x].instanceView.previousState.state Доступно по ссылке Просмотр JSON в разделе "Основные компоненты" на вкладке "Обзор"
Состояние подготовки properties.provisioningState Доступно по ссылке Просмотр JSON в разделе "Основные компоненты" на вкладке "Обзор", а также в тексте ответа HTTP

Группы контейнеров

Это значение обозначает состояние развернутой группы контейнеров на серверной части.

На странице веб-браузера отображается вкладка обзорных сведений для ресурса на портале Azure. В тексте выделена строка

  • Выполнение: группа контейнеров выполняется и продолжает выполняться до тех пор, пока не будет выполнено действие пользователя или остановка, вызванная политикой перезапуска.

  • Остановлено: группа контейнеров остановлена и не будет выполняться без действия пользователя.

  • Ожидает: Группа контейнеров ожидает инициализации (завершения выполнения init-контейнеров или монтирования файловых томов Azure, если применимо). Такой контейнер будет постоянно пытаться перейти в состояние Выполняется, пока пользователь не выполнит для него действие остановки или удаления.

  • Выполнено: группа контейнеров успешно завершила выполнение. Может возникать только при использовании политик перезапуска Никогда и При сбое.

  • Сбой. Означает, что группа контейнеров не смогла выполнить операцию. Может возникать только при использовании политики перезапуска Никогда. Это состояние указывает на сбой инфраструктуры (например, неверные учетные данные общей папки Azure) или сбой пользовательского приложения (например, приложение ссылается на переменную среды, которая не существует).

В следующей таблице указано, какие состояния могут существовать для группы контейнеров в зависимости от политики перезапуска.

Значение Никогда При сбое Всегда
Выполняется Да Да Да
Остановлена Да Да Да
Не завершено Да Да Да
Успешно Да Да Нет
Неудачно Да Нет Нет

Контейнеры

Для каждого контейнера сохраняются два значения состояния — текущее и предыдущее. На портале Azure, показанном на следующем рисунке, отображается только текущее состояние. Все значения состояния могут существовать для любого контейнера, независимо от выбранной для группы контейнеров политики перезапуска.

Примечание.

Значения JSON currentState и previousState содержат дополнительные сведения, например код завершения или причину, которые не отображаются более нигде на портале Azure.

На портале Azure отображается раздел

  • Выполняется: Контейнер запущен.

  • Ожидание: контейнер ждёт запуска. Такое состояние может существовать, если еще не завершена операция init containers или контейнер приостановил работу из-за цикла аварийных завершений.

  • Завершено: контейнер завершился, сопровождаемый значением кода выхода.

Подготовка

Это значение обозначает состояние последней операции, которая выполнялась для группы контейнеров. Обычно это операция PUT (create), но возможны также POST (start/restart/stop) или DELETE (delete).

Внимание

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

Помимо представления JSON состояние подготовки также можно найти в тексте ответа http-вызова.

Создавайте, запускайте и перезапускайте операции

Внимание

Операции PUT (create) выполняются асинхронно. Возвращаемое в теле ответа на операцию PUT значение не соответствует окончательному состоянию. Чтобы отслеживать состояние развертывания, следует после таких запросов выполнять вызов GET с тем же идентификатором ресурса группы контейнеров или с идентификатором AsyncOperation, который возвращается в заголовках ответа на операцию PUT.

Следующие состояния применяются к событиям PUT (create) и POST (start/restart).

  • Ожидание. Группа контейнеров ожидает настройки инфраструктуры, например назначение узла, подготовка виртуальной сети или что-либо другое, необходимое перед извлечением образа пользователя.

  • Создание: завершена настройка инфраструктуры. Теперь группа контейнеров находится в стадии подготовки и получения требуемых ресурсов (подключает файловые тома Azure, получает IP-адрес для входящего трафика и т. п.).

  • Успешно: группе контейнеров удалось привести контейнеры в состояние работы и получить все необходимые ресурсы.

  • Нездоровый: Группа контейнеров неработоспособна. В случае непредвиденных состояний, например при отключении узла, автоматически запускается задание по исправлению состояния группы контейнеров путем перемещения.

  • Исправляется. Означает, что группа контейнеров перемещается для устранения состояния неработоспособности.

  • Сбой. Означает, что группа контейнеров не смогла достичь состояния подготовки Успешно. Сбой может возникать по многим причинам (недостаточная емкость в указанном регионе, исчерпана пользовательская квота, превышено время ожидания 30 минут и т. п.). Дополнительные сведения об ошибке можно получить в разделе events представления JSON.

    Примечание.

    Несостоятельное состояние не означает, что ресурс удаляется или прекращает попытки достичь успеха. Состояние группы контейнеров обозначает текущее состояние этой группы. Если вы хотите гарантировать, что группа контейнеров не будет работать после перехода в состояние Сбой, то вам придется остановить или удалить ее.

Операции остановки и удаления

Следующие значения могут существовать для событий POST (stop) и DELETE (delete).

  • Успешно. Означает, что операция остановки или удаления группы контейнеров выполнена успешно.

  • Ошибка: группе контейнеров не удалось достичь состояния успешного предоставления ресурсов, что означает, что событие остановки или удаления не завершено. Дополнительные сведения об ошибке можно получить в разделе events представления JSON.

Мониторинг и оповещение о состояниях контейнера

Azure Monitor можно использовать для обнаружения и оповещения о проблемных состояниях контейнеров, таких как контейнеры, зависшие в цикле перезапуска или группах контейнеров в неработоспособном состоянии.

Полные сведения о мониторинге и оповещении для экземпляров контейнеров Azure см. в статье "Мониторинг экземпляров контейнеров Azure".