Gerenciar Ciclos de Vida de Aplicações

Entendendo como gerenciar o ciclo de vida das aplicações em um cluster Kubernetes.

Rolling Updates e Rollbacks

  • Rolling Updates permitem que a atualização de um Deployment ocorra com tempo de inatividade zero, atualizando incrementalmente as instâncias de novos Pods .

Link’s úteis:

  • Rollbacks permitem retornar a uma versão anterior de um Deployment , por padrão o Kubernetes mantém um histórico de 10 versões.

Link’s úteis:

Configurando aplicações

Veremos abaixo algumas formas de permitir a portabilidade e a reusabilidade das imagens de container, usando a abordagem de separação do código da aplicação das configurações e variáveis que podemos passar durante a inicialização dos Pods .

Comandos e Argumentos

O comando e os argumentos que definimos na especificação do Pod substituem o comando e os argumentos padrão fornecidos pela imagem do contêiner.

Se definirmos argumentos, mas não definirmos um comando, o comando padrão será usado com seus novos argumentos.

Link’s úteis:

Variáveis de ambiente

Ao criarmos um Pod , podemos definir variáveis ​​de ambiente para os containers executados no Pod , para tanto inclua o campo env ou envFrom na especificação do container.

Link’s úteis:

ConfigMaps

Um ConfigMap é um objeto de API usado para armazenar dados não confidenciais em pares de chave-valor.

Os Pods podem consumir ConfigMaps como variáveis ​​de ambiente, argumentos de linha de comando ou como arquivos de configuração em um volume.

Link’s úteis:

Secrets

Secrets são semelhantes aos ConfigMaps mas destinam-se especificamente a manter dados confidenciais.

Link’s úteis:

Pods com multiplos containers

Os Pods são projetados para oferecer suporte a vários processos cooperativos (como containers) que formam uma unidade de serviço coesa.

Os containers em um Pod são colocados e co-agendados automaticamente na mesma máquina física ou virtual no cluster, podem compartilhar recursos e dependências, comunicar-se entre si e coordenar quando e como eles serão encerrados.

Link’s úteis:

InitContainers

Os initContainers são containers especializados que são executados antes dos containers de aplicativos em um Pod , eles são exatamente como os containers normais, exceto que:

  • Os initContainers sempre são executados até a conclusão.
  • Cada initContainers deve ser concluído com êxito antes que o próximo seja iniciado.

Link’s úteis:

Self Healing (auto cura) das aplicações

O Kubernetes oferece suporte de self healing (auto recuperação) a aplicativos por meio de ReplicaSets .

O ReplicaSets ajuda a garantir que um Pod seja recriado automaticamente quando o aplicativo dentro do Pod trava, isso ajuda a garantir que réplicas suficientes do aplicativo estejam em execução o tempo todo.

O Kubernetes fornece suporte adicional para verificar a integridade dos aplicativos executados em Pods e realizar as ações necessárias por meio de Liveness Probes e Readiness Probes , porém esses 2 (dois) tópicos são para o exame Certified Kubernetes Application Developers (CKAD) , não são abordados nesta certificação para CKA.