Trace Id is missing
Avançar para o conteúdo principal

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.

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.

Como funcionam as implementações do Kubernetes

  • Crie um ficheiro YAML que descreva a configuração de estado pretendido do cluster.
  • Aplique o ficheiro YAML ao cluster através de kubectl, a interface de linha de comandos do Kubernetes.
  • 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.
  • 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.
  • 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.
Uma implementação do Kubernetes

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.

Criar

Implemente pods e ReplicaSets do Kubernetes completamente novos.

Atualização

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.

Dimensionar

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.

Diagrama de implementação incremental

Incremental

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.

Diagrama de implementação azul/verde

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.

Diagrama de implementação de versão canary

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.

Diagrama de teste A/B

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.

Azure DevOps

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.

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.

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.

Estamos prontos quando quiser. Experimente o Kubernetes gratuitamente no Azure