Visão geral
Uma implantação Kubernetes é um objeto de recurso no Kubernetes que oferece atualizações declarativas para aplicações. Além disso, ela permite descrever o ciclo de vida das aplicações, incluindo quais imagens usar, o número de pods necessários e como devem ser feitas as atualizações.
Um objeto do Kubernetes é um meio de instruir o sistema do Kubernetes sobre como você quer que seja a carga de trabalho do seu cluster. Após a criação de um objeto, seu cluster do Kubernetes funcionará de modo a assegurar que o objeto exista, mantendo o estado desejado do próprio cluster.
A atualização manual de aplicações em containers pode ser um processo demorado e tedioso. Fazer o upgrade de um serviço para uma versão avançada requer iniciar a nova versão do pod, interromper a versão antiga, aguardar e verificar se a versão nova foi iniciada corretamente e, às vezes, reverter tudo para a versão anterior caso ocorra alguma falha.
Executar essas etapas manualmente pode resultar em erros humanos. Além disso, escrever o script adequado exige um esforço significativo. Esses dois fatores podem criar obstáculos para o processo de lançamento.
Usar uma implantação Kubernetes automatiza o processo e torna-o reproduzível. As implantações são totalmente gerenciadas pelo back-end do Kubernetes e todo o processo de atualização é executado no lado do servidor, sem interação do cliente.
Com uma implantação, o número desejado de pods permanece sempre em execução e disponíveis. Além disso, o processo de atualização é completamente registrado, com controle de versão que inclui opções para pausar, continuar e reverter para versões anteriores.
Com um objeto de implantação Kubernetes, você pode:
- Implantar um pod ou conjunto de réplicas
- Atualizar pods e conjuntos de réplicas
- Reverter para versões anteriores da implantação
- Escalar implantações
- Pausar ou continuar uma implantação
Estratégias de gerenciamento de aplicações usando a implantação Kubernetes
Gerenciar aplicações com uma implantação Kubernetes inclui a definição de como essas aplicações devem ser atualizadas. Uma das principais vantagens dessa implantação é que ela confere a possibilidade de iniciar e interromper conjuntos de pods de maneira previsível.
Estratégia de atualizações contínuas
Ao estabelecer uma estratégia de atualizações contínuas, você define a substituição controlada e em etapas dos pods de uma aplicação. Assim, poderá ter a certeza de que sempre haverá um número mínimo de pods disponíveis.
Por padrão, a implantação faz com que, no máximo, apenas 25% dos pods estejam indisponíveis por vez. Além disso, impede o provisionamento acima de 25% do número de pods especificados no estado desejado.
A implantação não eliminará os pods antigos até que haja pods novos disponíveis em quantidade suficiente para manter o limite de disponibilidade. No entanto, ela também não criará pods novos até que um determinado número de pods antigos sejam removidos.
Com o objeto de implantação, você pode controlar a extensão de pods disponíveis e em excesso nos campos maxSurge e maxUnavailable.
E com uma estratégia de atualizações contínuas, não haverá tempo de inatividade durante o processo de atualização. Entretanto, é necessário que as aplicações sejam arquitetadas de forma a tolerar as operações de destruição e criação de pods.
Durante o processo de atualização, duas versões do container são executadas simultaneamente, o que pode resultar em problemas para os clientes do serviço.
Estratégia de recriação
Com uma estratégia de recriação, todos os pods existentes são removidos antes que novos sejam criados. Primeiro, o Kubernetes encerra todos os containers da versão atual e depois inicia todos os containers novos simultaneamente, assim que os antigos forem eliminados.
Ao adotar uma estratégia de recriação da implantação, haverá algum tempo de inatividade enquanto todos os containers com as versões antigas estiverem sendo encerrados e ainda não houver qualquer container novo pronto para processar as solicitações que chegarem.
No entanto, duas versões dos containers não serão executadas ao mesmo tempo, o que facilita a vida dos consumidores do serviço.
Recursos da Red Hat
Padrão de implantação declarativa para o Kubernetes
As implantações são criadas com a escrita de um manifesto. Esse manifesto é aplicado ao cluster do Kubernetes usando o comando kubectl apply. Ou, se preferir, você pode usar um padrão declarativo de implantação. Os arquivos de configuração do Kubernetes podem ser escritos na linguagem YAML ou JSON.
Ao criar uma implantação, você descreverá o estado desejado, e o Kubernetes implantará esse estado usando a estratégia de atualizações contínuas ou de recriação da implantação.
Ao utilizar um padrão declarativo, você poderá usar a implantação Kubernetes para automatizar a execução de processos de upgrade e reversão de um grupo de pods. Os padrões para Kubernetes têm design reutilizável para aplicações e serviços baseados em containers.
Para atualizar uma implantação, basta alterar a especificação de template dos pods. Quando qualquer alteração é feita no campo de especificação, automaticamente a distribuição da atualização é acionada.
O ciclo de vida da distribuição é formado pelos status "em andamento", "concluído" e "falha". Uma implantação está em andamento quando as tarefas de atualizações, como atualização ou escalonamento de pods, estão sendo realizadas no momento.
O status de concluído indica que todas as tarefas foram concluídas com êxito e o sistema está no estado desejado. O status de falha resulta da ocorrência de algum erro que impede a implantação de concluir as tarefas.
Para verificar ou monitorar o status de uma implantação, você pode usar o comando kubectl rollout status.
Precisa de ajuda para começar a usar o Kubernetes? Aprenda a criar e gerenciar containers para implantação em um cluster do Kubernetes e do Red Hat® OpenShift®. Nosso treinamento ajudará você a ampliar seu conhecimento básico sobre gerenciamento de containers na prática, usando containers e o Kubernetes.
Kubernetes para empresas
O Red Hat OpenShift é uma plataforma de Kubernetes para empresas. Com ele, os desenvolvedores têm ambientes de autosserviço para criação e recursos de automatização das operações de todo o stack em qualquer infraestrutura.
O Red Hat OpenShift vem com todos os elementos extras que tornam o Kubernetes potente e viável para as empresas, incluindo componentes de registro, rede, telemetria, segurança, automação e serviços.
Com ele, os desenvolvedores da sua empresa poderão criar novas aplicações em containers, hospedá-las e implantá-las na nuvem. Tudo isso com a escalabilidade, o controle e a orquestração necessários para transformar boas ideias em negócios valiosos de forma rápida e fácil.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.