Estratégia de implantação do Kubernetes

Encontre a estratégia de distribuição ideal do Kubernetes para seu aplicativo

Conheça suas opções de implantação do Kubernetes

Seja para reduzir seu tempo para o mercado, criar implantações resilientes sem tempo de inatividade, lançar aplicativos e recursos com maior rapidez ou frequência ou operar com mais flexibilidade, escolher a estratégia certa de implantação do Kubernetes é fundamental para fornecer um aplicativo e uma infraestrutura resilientes. Cada estratégia de implantação do Kubernetes tem suas vantagens dependendo dos objetivos e das necessidades.

Você é novo no Kubernetes? Aprenda as noções básicas

Como as implantações do Kubernetes funcionam

Antes de implementar uma estratégia de implantação do Kubernetes, você precisará entender os componentes dessa implantação e como todos eles funcionam em conjunto.

O que há em uma implantação do Kubernetes

Arquivo YAML

O estado desejado de seu cluster do Kubernetes – a configuração dos pods –, que você descreve e que serve como base para uma implantação do Kubernetes.

Pods

Os contêineres, os recursos compartilhados e o ambiente de que seu aplicativo ou fluxo de trabalho precisa para ser executado.

ReplicaSet

Grupos de pods com configuração idêntica são chamados de ReplicaSets, que garantem que o tipo e o número de pods descritos no arquivo YAML para uma implantação do Kubernetes estejam em execução a todo momento. Se um pod falhar, um novo pod será criado.

Kube-controller-manager

Altera o estado atual do cluster para que corresponda ao estado desejado descrito no YAML, criando pods e ReplicaSets e atualizando ou removendo os existentes.

Kube-scheduler

Determina como seus pods e ReplicaSets são implantados entre seus nós de trabalho, além de distribuir o tráfego para esses nós.

Distribuição

O processo de reconfigurar o cluster de seu estado atual para o estado desejado – realizado na maioria das vezes sem tempo de inatividade.

Arquitetura de implantação do Kubernetes

Como as distribuições do Kubernetes funcionam

  1. Crie um arquivo YAML descrevendo a configuração de estado desejado do cluster.
  2. Aplique o arquivo YAML ao cluster usando kubectl, a interface de linha de comando do Kubernetes.
  3. O kubectl envia a solicitação ao kube-apiserver, que autentica e autoriza a solicitação antes de gravar a alteração em um banco de dados, o etcd.
  4. O kube-controller-manager monitora continuamente o sistema em busca de novas solicitações e trabalha para reconciliar o estado do sistema e o estado desejado – criando ReplicaSets, implantações e pods no processo.
  5. Após a execução de todos os controladores, o kube-scheduler vê que há pods com estado "pendente" porque ainda não foram agendados para execução em um nó. O agendador localiza os nós adequados para os pods e se comunica com o kubelet em cada nó para assumir o controle e iniciar a implantação.

Casos de uso das implantações do Kubernetes

Há quatro maneiras de distribuir fluxos de trabalho e aplicativos em contêiner por meio das implantações do Kubernetes. A estratégia de implantação do Kubernetes que você usar poderá empregar mais de um desses casos de uso.

Criar

Implante pods e ReplicaSets do Kubernetes completamente novos.

Atualizar

Declare um novo estado desejado e distribua novos pods e ReplicaSets de modo controlado.

Reversão

Reverta a implantação do Kubernetes para um estado anterior – útil caso o estado atual não seja estável.

Escala

Aumente o número de pods e ReplicaSets na implantação do Kubernetes sem alterá-los.

Estratégias de implantação do Kubernetes

A melhor estratégia de implantação do Kubernetes para seu cenário depende de muitos fatores: quanto tempo de inatividade você consegue administrar (se for o caso), seu ambiente de implantação, o quanto você confia na estabilidade de uma nova versão ou plataforma, se você precisa ou não testar e o que espera aprender, o custo e a disponibilidade de recursos e as metas de negócios. Aqui, temos quatro estratégias de implantação comuns que as organizações usam na produção.

Em rampa

O método de distribuição padrão do Kubernetes é uma implantação em rampa ou dinâmica. Essa implantação substitui lentamente os pods um por vez para evitar tempo de inatividade. Pods antigos são reduzidos verticalmente apenas quando novos pods estiverem prontos. Se sua implantação tiver problemas, você poderá pausar ou cancelar a implantação do Kubernetes sem que o cluster inteiro precise ficar offline.

Azul/verde

Em uma implantação azul/verde, você lança uma nova versão (azul) de seu aplicativo ou fluxo de trabalho enquanto a versão atual (verde) ainda está em execução. Isso lhe permite testar a versão azul em produção enquanto expõe os usuários apenas à versão verde, que é estável. Após testada, a versão azul substitui gradativamente a versão verde.

Canário

Permita que seus clientes testem sua implantação do Kubernetes lançando a nova versão para um pequeno grupo deles. Você executará um ReplicaSet da nova versão em conjunto com a versão atual e então, após um período especificado sem erros, escalará verticalmente a nova versão conforme remove a antiga.

Testes de A/B

Muito semelhante à estratégia de implantação canário do Kubernetes, a estratégia de testes de A/B destina-se a um grupo específico de clientes. No entanto, uma implantação de teste de A/B busca estabelecer mais do que apenas a estabilidade de uma versão – ela é usada para testar o quanto a versão é eficiente em termos de cumprir as metas de negócios. A nova versão é distribuída para os usuários com base em fatores como cookies, geolocalização, sistema operacional e tipo do dispositivo e frequentemente é executada em conjunto com a versão atual – escalando verticalmente conforme a nova versão demonstra sua eficácia.

Ferramentas de implantação do Kubernetes

Embora você possa usar a linha de comando ou arquivos YAML para executar qualquer uma dessas estratégias de implantação do Kubernetes, aproveite melhor seus clusters e implantações implementando ferramentas e serviços de implantação do Kubernetes como estes.

Azure DevOps

Uma cadeia de fornecimento de aplicativos completa para automatizar implantações do Kubernetes. Equilibre velocidade e segurança enquanto fornece código com mais velocidade e em escala.

Saiba mais

Helm

Uma ferramenta de empacotamento de software livre. Instale, atualize e gerencie aplicativos Kubernetes usando gráficos que você cria, gerencia versões, compartilha e publica.

Saiba mais

AKS (Serviço de Kubernetes do Azure)

Um serviço do Kubernetes altamente disponível, seguro e totalmente gerenciado. Implante e gerencie aplicativos em contêiner na nuvem.

Saiba mais

O Kubernetes está pronto para você – experimente-o gratuitamente no Azure