Estratégia de implantação do Kubernetes
Encontre a estratégia ideal de implantação 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.
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 para o cluster do Kubernetes—a configuração dos pods—que você descreve, 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.
Como as distribuições do Kubernetes funcionam
- Crie um arquivo YAML descrevendo a configuração de estado desejado do cluster.
- Aplique o arquivo YAML ao cluster usando kubectl, a interface de linha de comando do Kubernetes.
- 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.
- O kube-controller-manager monitora continuamente o sistema em busca de novas solicitações e trabalha para reconciliar o estado do sistema com o estado desejado—criando ReplicaSets, implantações e pods no processo.
- Depois que todos os controladores forem executados, o kube-scheduler verá que há pods no estado "pendente" porque eles 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
Criar
Implante pods e ReplicaSets do Kubernetes completamente novos.
Atualização
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.
Escalar
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 aos usuários com base em fatores como cookies, geolocalização, sistema operacional e tipo de dispositivo, e é frequentemente executada junto com a versão atual—dimensionada à medida que a nova versão prova seu valor.
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.
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.
Serviço de Kubernetes do Azure (AKS)
Um serviço do Kubernetes altamente disponível, seguro e totalmente gerenciado. Implante e gerencie aplicativos em contêiner na nuvem.