Exercício – Controlar o comportamento de reinicialização

Concluído

A facilidade e a velocidade da implantação de contêineres nas Instâncias de Contêiner do Azure fazem dela uma excelente opção para executar tarefas de execução única, tais como renderizar imagens ou criar e testar aplicativos.

Com uma política de reinicialização configurável, você pode especificar que os contêineres devem ser interrompidos quando os processos são concluídos. Como a cobrança das instâncias de contêiner é feita por segundo, você só paga pelos recursos de computação usados durante a execução do contêiner que realiza a tarefa.

O que são políticas de reinicialização de contêiner?

As Instâncias de Contêiner do Azure têm três opções de política de reinicialização:

Política de reinicialização Descrição
Always Os contêineres no grupo de contêineres sempre são reiniciados. Essa política faz sentido para tarefas de longa execução, como um servidor Web. Essa é a configuração padrão aplicada quando nenhuma política de reinicialização é especificada na criação do contêiner.
Never Os contêineres no grupo de contêineres nunca são reiniciados. Os contêineres são executados somente uma vez.
OnFailure Os contêineres no grupo de contêineres são reiniciados somente quando o processo executado no contêiner falha (quando ele termina com um código de saída diferente de zero). Os contêineres são executados pelo menos uma vez. Essa política funciona bem para contêineres que realizam tarefas de curta duração.

Executar um contêiner até a conclusão

Para ver a política de reinicialização em ação, crie uma instância de contêiner com base na imagem de contêiner azuredocs/aci-wordcount e especifique a política de reinicialização OnFailure. Este contêiner executa um script do Python que analisa o texto Hamlet de Shakespeare e grava as 10 palavras mais comuns em uma saída padrão antes de ser encerrado.

  1. Execute este comando az container create para iniciar o contêiner:

    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
    

    O serviço Instâncias de Contêiner do Azure inicia o contêiner e o interrompe quando o processo correspondente (neste caso, o script) é concluído. Quando o serviço interrompe um contêiner que tem a política de reinicialização Nunca ou OnFailure, o status do contêiner é definido como Encerrado.

  2. Execute az container show para verificar o status de seu contêiner:

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

    Repita o comando até o status ser exibido como Encerrado.

  3. Execute az container logs para ver os logs do contêiner e examinar a saída:

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

    Você obterá esta saída:

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