Управление. Управление необходимостью перезагрузки
Благодаря простому и быстрому развертыванию контейнеров служба "Экземпляры контейнеров Azure" отлично подходит для выполнения разовых задач, таких как отрисовка изображений или сборка и тестирование приложений.
Настраиваемая политика перезапуска позволяет указать, что контейнер нужно остановить после завершения всех его процессов. Так как работа экземпляров контейнеров оплачивается посекундно, в счет включаются только те вычислительные ресурсы, которые использовались во время выполнения контейнера с задачей.
Что такое политики перезапуска контейнера?
Для службы "Экземпляры контейнеров Azure" предусмотрено три политики перезапуска.
Политика перезапуска | Description |
---|---|
Всегда | Контейнеры в группе контейнеров всегда перезапускаются. Эта политика имеет смысл для длительных задач, таких как веб-сервер. Этот параметр применяется по умолчанию , если политика перезапуска не указана при создании контейнера. |
Никогда | Контейнеры в группе контейнеров никогда не перезапускаются. Контейнеры работают только один раз. |
OnFailure | Контейнеры в группе контейнеров перезапускаются, только если процесс в контейнере завершается ошибкой (то есть с ненулевым кодом выхода). Такие контейнеры будут работать не менее одного раза. Эта политика подходит для контейнеров, в которых выполняются кратковременные задачи. |
Запуск контейнера и завершение работы
Чтобы увидеть применение политики перезагрузки, создайте экземпляр контейнера из образа контейнера azuredocs/aci-wordcount и укажите для него политику перезапуска OnFailure. Контейнер запускает скрипт Python, который анализирует текст пьесы "Гамлет" Уильяма Шекспира, выдает 10 самых употребляемых слов в виде стандартного потока вывода и завершает работу.
Выполните следующую
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, для состояния контейнера устанавливается значение Завершено.
Выполните проверку
az container show
состояния контейнера:az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
Повторяйте команду, пока не получите состояние Terminated.
Выполните команду
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)]