Estratégia de implementação do Kubernetes

Encontre a estratégia de implementação do Kubernetes ideal para a sua aplicação

Conheça as opções de implementação do Kubernetes

Quer pretenda encurtar o tempo de comercialização, criar implementações resilientes sem tempo de inatividade, lançar aplicações e funcionalidades mais depressa ou com maior frequência ou trabalhar com mais flexibilidade, é fundamental escolher a estratégia de implementação do Kubernetes certa para proporcionar aplicações e infraestruturas resilientes. Cada estratégia de implementação do Kubernetes tem as suas vantagens, consoante os seus objetivos e necessidades.

Novo no Kubernetes? Aprender as noções básicas

Como funcionam as implementações do Kubernetes

Antes de adotar uma estratégia de implementação do Kubernetes, tem de compreender as várias partes em que as implementações consistem e saber como funcionam em conjunto.

O que uma implementação do Kubernetes inclui

Ficheiro Yaml

O estado pretendido para o cluster do Kubernetes - a configuração dos pods - descrito por si e que funciona como a base de uma implementação do Kubernetes.

Pods

Os contentores, os recursos partilhados e o ambiente de que a aplicação ou o fluxo de trabalho precisa para ser executado.

ReplicaSet

ReplicaSets são grupos de pods configurados de forma idêntica que garantem que o tipo e o número de pods descritos no ficheiro YAML de uma implementação do Kubernetes estão sempre em execução. Se um pod falhar, é criado um novo.

Kube-controller-manager

Altera o estado atual do cluster para que corresponda ao estado pretendido descrito no YAML, criando pods e ReplicaSets novos, bem como atualizando ou removendo já existentes.

Kube-scheduler

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

Lançar

O processo de reconfigurar o cluster do estado atual para o estado pretendido; realizado, na maior parte dos casos, sem tempo de inatividade.

Arquitetura de implementação do K

Como funcionam as implementações do Kubernetes

  1. Crie um ficheiro YAML que descreva a configuração de estado pretendido do cluster.
  2. Aplique o ficheiro YAML ao cluster através de kubectl, a interface de linha de comandos do Kubernetes.
  3. O Kubectl submete o pedido para o kube-apiserver, o qual autentica e autoriza o pedido antes de registar a alteração numa base de dados, etcd.
  4. O kube-controller-manager monitoriza continuamente o sistema quanto a pedidos novos e trabalha para reconciliar o estado do sistema para o estado pretendido, criando ReplicaSets, implementações e pods ao longo do processo.
  5. Após a execução de todos os controladores, o kube-scheduler vê que existem pods no estado "pendente" porque ainda não foram agendados para execução num nó. O agendador encontra nós adequados para os pods e comunica com o kubelet em cada nó para assumir o controlo e iniciar a implementação.

Casos de utilização de implementação do Kubernetes

Pode lançar aplicações e fluxos de trabalho contentorizados através de implementações do Kubernetes de quatro formas. A estratégia de implementação do Kubernetes que utilizar poderá servir-se de um ou mais destes casos de utilização.

Create

Implemente pods e ReplicaSets do Kubernetes completamente novos.

Atualizar

Declare um estado pretendido novo e lance os pods e os ReplicaSets novos de forma controlada.

Reverter

Reverta a implementação do Kubernetes para um estado anterior; é útil se o estado atual não for estável.

Escalabilidade

Aumente o número de pods e ReplicaSets na implementação do Kubernetes sem os alterar.

Estratégias de implementação do Kubernetes

A melhor estratégia de implementação do Kubernetes para o seu cenário depende de muitos fatores, como quanto tempo de inatividade pode suportar (se é que puder), o ambiente da implementação, a confiança que tem na estabilidade de uma versão ou plataforma nova, se tem de fazer testes, bem como o que espera aprender, os custos e a disponibilidade de recursos e os objetivos empresariais. Seguem-se quatro estratégias de implementação comuns que as organizações utilizam na produção.

Transitória

O método de implementação predefinido do Kubernetes é a implementação transitória. Esta implementação substitui lentamente os pods um de cada vez, para evitar tempos de inatividade. Os pods antigos são reduzidos verticalmente quando os novos estiverem prontos. Se a implementação se deparar com problemas, pode cancelar ou pôr a implementação do Kubernetes em pausa sem colocar todo o cluster offline.

Azul/verde

Numa implementação azul/verde, é lançada uma versão nova (azul) da aplicação ou fluxo de trabalho enquanto a versão atual (verde) ainda está em execução. Desta forma, pode testar a versão azul em produção e expor os utilizadores apenas à versão estável, a verde. Depois de testada, a versão azul substitui gradualmente a verde.

Versão canary

Permita que os clientes testem a sua implementação do Kubernetes ao lançar uma versão nova para um pequeno grupo deles. Executará um ReplicaSet da versão nova juntamente com a versão atual e, depois, após um período de tempo especificado sem erros, aumente verticalmente a versão nova quando remover a antiga.

Testes A/B

À semelhança da estratégia de implementação do Kubernetes com versões canary, a estratégia de testes A/B segmenta um grupo específico de clientes. No entanto, a implementação de um teste A/B procura estabelecer mais do que a estabilidade de uma versão. É utilizada para testar a eficácia da versão na obtenção dos objetivos empresariais. A versão nova é distribuída aos utilizadores com base em fatores como cookies, geolocalização, sistema operativo e tipo de dispositivo e é muitas vezes executada juntamente com a versão atual, aumentado verticalmente à medida que a versão nova prova o seu valor.

Ferramentas de implementação do Kubernetes

Embora possa utilizar a linha de comandos ou os ficheiros YAML para executar qualquer uma destas estratégias de implementação do Kubernetes, tirará mais partido dos clusters e das implementações se implementar estas ferramentas e serviços de implementação do Kubernetes.

DevOps do Azure

Uma rede de distribuição de aplicações completa para automatizar implementações do Kubernetes. Equilibre a velocidade e a segurança enquanto entrega código mais depressa em escala.

Saiba mais

Helm

Uma ferramenta de pacotes open-source. Instale, atualize e faça a gestão de aplicações Kubernetes com gráficos criados, geridos, partilhados e publicados por si.

Saiba mais

Azure Kubernetes Service (AKS)

Um serviço do Kubernetes totalmente gerido, seguro e de elevada disponibilidade. Implemente e faça a gestão de aplicações contentorizadas na cloud.

Saiba mais

Estamos prontos quando quiser. Experimente o Kubernetes gratuitamente no Azure