Управление. Управление необходимостью перезагрузки

Завершено

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

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

Что такое политики перезапуска контейнера?

Для службы "Экземпляры контейнеров Azure" предусмотрено три политики перезапуска.

Политика перезапуска Description
Всегда Контейнеры в группе контейнеров всегда перезапускаются. Эта политика имеет смысл для длительных задач, таких как веб-сервер. Этот параметр применяется по умолчанию , если политика перезапуска не указана при создании контейнера.
Никогда Контейнеры в группе контейнеров никогда не перезапускаются. Контейнеры работают только один раз.
OnFailure Контейнеры в группе контейнеров перезапускаются, только если процесс в контейнере завершается ошибкой (то есть с ненулевым кодом выхода). Такие контейнеры будут работать не менее одного раза. Эта политика подходит для контейнеров, в которых выполняются кратковременные задачи.

Запуск контейнера и завершение работы

Чтобы увидеть применение политики перезагрузки, создайте экземпляр контейнера из образа контейнера azuredocs/aci-wordcount и укажите для него политику перезапуска OnFailure. Контейнер запускает скрипт Python, который анализирует текст пьесы "Гамлет" Уильяма Шекспира, выдает 10 самых употребляемых слов в виде стандартного потока вывода и завершает работу.

  1. Выполните следующую az container create команду, чтобы запустить контейнер:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Служба "Экземпляры контейнеров Azure" запускает контейнер, а затем останавливает его, когда завершится процесс (или скрипт, как в нашем примере). Когда служба "Экземпляры контейнеров Azure" останавливает контейнер, для которого указана политика перезапуска Never или OnFailure, для состояния контейнера устанавливается значение Завершено.

  2. Запуститеaz container show, чтобы проверка состояние контейнера:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    Повторяйте команду, пока не получите состояние Terminated.

  3. Выполните команду az container logs , чтобы просмотреть журналы контейнера, чтобы проверить выходные данные:

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    Вы получаете этот результат:

    [('the', 990),
     ('and', 702),
     ('of', 628),
     ('to', 610),
     ('I', 544),
     ('you', 495),
     ('a', 453),
     ('my', 441),
     ('in', 399),
     ('HAMLET', 386)]