Partilhar via


Atualizar contentores no Azure Container Instances

Durante a operação normal de suas instâncias de contêiner, você pode achar necessário atualizar os contêineres em execução em um grupo de contêineres. Por exemplo, talvez você queira atualizar uma propriedade, como uma versão de imagem, um nome DNS ou uma variável de ambiente, ou atualizar uma propriedade em um contêiner cujo aplicativo falhou.

Atualize os contêineres em um grupo de contêineres em execução reimplantando um grupo existente com pelo menos uma propriedade modificada. Quando você atualiza um grupo de contêineres, todos os contêineres em execução no grupo são reiniciados no local, geralmente no mesmo host de contêiner subjacente.

Nota

Os grupos de contêineres encerrados ou excluídos não podem ser atualizados. Depois que um grupo de contêineres for encerrado (estiver no estado Êxito ou Falha) ou tiver sido excluído, o grupo deverá ser implantado como novo. Veja outras limitações.

Atualizar um grupo de contêineres

Para atualizar um grupo de contêineres existente:

  • Emita o comando create (ou use o portal do Azure) e especifique o nome de um grupo existente
  • Modifique ou adicione, pelo menos, uma propriedade do grupo que suporta a atualização quando realizar a reimplementação. Algumas propriedades não suportam atualizações.
  • Defina as outras propriedades com os valores que indicou anteriormente. Se não definir um valor para uma propriedade, este reverterá para o valor predefinido.

Nota

Se você definir todas as propriedades para os valores fornecidos anteriormente e não modificar ou adicionar nenhum, o contêiner será reiniciado em resposta ao comando create.

Gorjeta

Um arquivo YAML ajuda a manter a configuração de implantação de um grupo de contêineres e fornece um ponto de partida para implantar um grupo atualizado. Se você usou um método diferente para criar o grupo, você pode exportar a configuração para YAML usando az container export,

Exemplo

O exemplo da CLI do Azure a seguir atualiza um grupo de contêineres com um novo rótulo de nome DNS. Como a propriedade DNS name label do grupo pode ser atualizada, o grupo de contêineres é reimplantado e seus contêineres reiniciados.

Implantação inicial com rótulo de nome DNS myapplication-staging:

# Create container group
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication-staging

Atualize o grupo de contêineres com um novo rótulo de nome DNS, aplicativo e defina as propriedades restantes com os valores usados anteriormente:

# Update DNS name label (restarts container), leave other properties unchanged
az container create --resource-group myResourceGroup --name mycontainer \
    --image nginx:alpine --dns-name-label myapplication

Atualizar benefícios

O principal benefício de atualizar um grupo de contêineres existente é a implantação mais rápida. Quando você reimplanta um grupo de contêineres existente, suas camadas de imagem de contêiner são extraídas de camadas armazenadas em cache pela implantação anterior. Em vez de extrair todas as camadas de imagem frescas do registro, como é feito com novas implantações, apenas as camadas modificadas (se houver) são extraídas.

Aplicativos baseados em imagens de contêiner maiores, como o Windows Server Core, podem ver melhorias significativas na velocidade de implantação quando você atualiza em vez de excluir e implantar novos.

Limitações

  • Nem todas as propriedades de um grupo de contentores suportam atualizações. Para alterar algumas propriedades de um grupo de contentores, primeiro tem de eliminar e, em seguida, reimplementar o grupo. Consulte Propriedades que exigem exclusão de contêiner.
  • Todos os contentores num grupo de contentores são reiniciados quando atualiza o grupo de contentores. Não é possível executar uma atualização ou o reinício no local de um contentor específico num grupo de vários contentores.
  • O endereço IP de um grupo de contêineres normalmente é mantido entre as atualizações, mas não é garantido que permaneça o mesmo. Desde que o grupo de contêineres seja implantado no mesmo host subjacente, o grupo de contêineres mantém seu endereço IP. Embora raros, há alguns eventos internos do Azure que podem causar a reimplantação em um host diferente. Para atenuar esse problema, recomendamos o uso de um rótulo de nome DNS para suas instâncias de contêiner.
  • Os grupos de contêineres encerrados ou excluídos não podem ser atualizados. Quando um grupo de contêineres é interrompido (está no estado Terminado ) ou excluído, o grupo é implantado como novo.

Nota

O comando update pode não funcionar se o Grupo de Contêineres do Azure estiver anexado a um perfil de Armazenamento do Azure.

Propriedades que exigem exclusão de contêiner

Nem todas as propriedades do grupo de contêineres podem ser atualizadas. Por exemplo, para alterar a política de reinicialização de um contêiner, você deve primeiro excluir o grupo de contêineres e, em seguida, criá-lo novamente.

As alterações nessas propriedades exigem a exclusão do grupo de contêineres antes da reimplantação:

  • Tipo de SO
  • Recursos de CPU, memória ou GPU
  • Política de reinício
  • Perfil de rede
  • Availability zone

Importante

Os perfis de rede foram retirados a partir da versão da 2021-07-01 API. Se estiver a utilizar esta ou uma versão mais recente, ignore quaisquer passos e ações relacionados com perfis de rede.

Quando você exclui um grupo de contêineres e o recria, ele não é "reimplantado", mas criado novo. Todas as camadas de imagem são extraídas do Registro, não de camadas armazenadas em cache por uma implantação anterior. O endereço IP do contêiner também pode mudar devido à implantação em um host subjacente diferente.

Próximos passos

Este artigo menciona grupos de contêineres várias vezes. Cada contêiner nas Instâncias de Contêiner do Azure é implantado em um grupo de contêineres e os grupos de contêineres podem conter mais de um contêiner. Os seguintes artigos fornecem mais informações sobre grupos de contêineres: