Tutorial passo a passo: Criar Kubernetes Deployment
A criação bem-sucedida de um Kubernetes Deployment é fundamental para gerenciar aplicações de contêiner com eficiência. Neste tutorial, apresentaremos o passo a passo e as melhores práticas para criar um Deployment robusto no ambiente do Kubernetes.
O que é Kubernetes Deployment?
Kubernetes Deployment é um conceito essencial dentro da plataforma Kubernetes que simplifica a implementação e o gerenciamento de aplicações em contêineres. Esse mecanismo de controle age como um intermediário entre a configuração e a execução no cluster do Kubernetes. O usuário determina o estado desejado de suas aplicações, incluindo detalhes de replicação, imagens de contêiner e definições de configuração.
Em seguida, o Kubernetes Deployment assume a implementação automatizada, organiza contêineres em pods no Kubernetes e os distribui pelos recursos disponíveis no cluster. O mecanismo também possibilita executar atualizações graduais e minimizar o tempo de inatividade. Funções de escalonamento automático asseguram o ajuste dinâmico do número de instâncias em execução com base na carga atual.
Com a solução Managed Kubernetes da IONOS, você desfruta de todos os benefícios da orquestração de contêineres sem se preocupar com as tarefas administrativas que exigem muito tempo, como monitoramento, atualizações e manutenções de rotina. Com o serviço de gerenciamento gratuito da IONOS Cloud, você aumenta sua produtividade e economiza recursos valiosos.
A criação de um Kubernetes Deployment é realizada com um dos métodos básicos:
- Método imperativo
- Método declarativo
Como criar Kubernetes Deployment pelo método imperativo
No método imperativo, o usuário insere comandos específicos para realizar as ações desejadas. Isso pode incluir a criação de recursos, como pods e serviços, ou atualização de configurações. O método imperativo é adequado para requisitos situacionais ou experimentais.
O comando a seguir cria um Kubernetes Deployment chamado nginx-deployment
e o configura para implementar um servidor web Nginx em um contêiner da imagem oficial do Nginx na porta 80.
Embora a implementação do método imperativo seja rápida, ela também tem algumas desvantagens. As etapas da abordagem imperativa têm ligação direta com o status atual, o que pode dificultar a repetição de ações. Isso significa que a execução do mesmo comando nem sempre produz o mesmo resultado, especialmente se o status inicial tiver mudado.
Como criar Kubernetes Deployment pelo método declarativo
Se comparado ao método imperativo, o método declarativo segue uma abordagem mais abstrata. O usuário define o estado desejado para a aplicação em um arquivo de configuração, e o Kubernetes assegura que o cluster atenda a ele. Basta descrever o que você deseja que seja feito e a plataforma assumirá sua implementação e manutenção.
Passo 1: Criar arquivo de configuração YAML
Primeiro, abra um editor de texto e crie o arquivo YAML nginx-deployment.yaml
para definir a configuração do Kubernetes Deployment:
Na seção spec
, você especifica a configuração desejada. Em replicas: 3
, definimos que o deployment deve criar três réplicas (pods) da aplicação. A opção selector
define como os pods são selecionados. Nela, app=nginx
atua como o critério de seleção. A seção template
indica o modelo usado na criação dos pods, incluindo suas marcações (labels). Em containers
, o contêiner nginx-container
é configurado usando a imagem do Nginx e escutando a porta 80.
Passo 2: Aplicar configurações ao cluster
Insira o seguinte na linha de comando para aplicar as configurações ao cluster:
A opção -f
especifica o caminho para o arquivo YAML ou JSON que contém a configuração dos recursos do Kubernetes.
Passo 3: Verificar status do Deployment
Este passo informa se o Kubernetes Deployment foi criado com sucesso e quantos pods estão disponíveis no momento.
O resultado mostrará o seguinte:
- READY: Informa o número de pods em execução em relação ao número desejado.
- UP-TO-DATE: Informa o número de pods que foram atualizados com a última configuração.
- AVAILABLE: Lista o número de pods que estão disponíveis e que aceitam solicitações.
- AGE: Indica há quanto tempo o Deployment está em execução.
Passo 4: Exibir informações adicionais
O comando a seguir apresenta informações detalhadas sobre o seu Kubernetes Deployment, as estratégias usadas, as réplicas atuais e as desejadas e os rótulos do seletor.
O resultado é o seguinte:
A estratégia de atualização foi configurada como Rolling Update, com o máximo de 25% de indisponibilidade e um aumento de até 25% de pods adicionais durante uma atualização.
Passo 5: Escalonar Deployment
Para ajustar o número de pods em um Kubernetes Deployment, use o comando kubectl scale
.
Após executar esse comando, o Kubernetes atualizará o Deployment e garantirá que o número desejado de réplicas fique disponível. No nosso exemplo, reduzimos o número de pods em execução para 2.
Estratégias com Kubernetes Deployment
As estratégias que usam o Kubernetes Deployment definem a forma como as mudanças em uma aplicação são implementadas no cluster.
- Rolling Deployment (padrão): Esse é o método padrão para os Deployments no Kubernetes. Novos pods são implementados em estágios, enquanto os antigos são removidos gradualmente. Esse processo assegura disponibilidade contínua durante o processo de atualização.
- Recreate Deployment: Com essa estratégia, todos os pods existentes são removidos primeiro. Em seguida, os pods atualizados são iniciados. Esse método pode resultar em uma interrupção temporária do serviço, pois nenhum pod fica disponível durante o processo de recriação.
- Blue/Green Deployment: Nesse método, dois conjuntos de pods (azul e verde) são criados. Um deles representa a versão atual da aplicação, enquanto o outro traz a nova versão. Ao atribuir labels específicas a esses pods, o tráfego é redirecionado de maneira segura entre as duas versões. Isso permite alternar rapidamente entre ambas e reverter mudanças com facilidade.
Reverter Kubernetes Deployment
Se um erro ocorrer na versão mais recente da sua aplicação, é crucial reverter as alterações o mais rápido possível. No Kubernetes, você pode iniciar o processo de reversão ao verificar o histórico de revisões do seu Deployment e retornar a uma versão anterior, se necessário.
Verificar histórico de revisões
Para exibir o histórico de revisões do seu Deployment, use o comando a seguir:
Reverter para versão anterior
Este comando realiza a reversão para a versão anterior considerada estável:
Reverter para versão específica
Se você quer retornar a uma versão específica, insira o comando a seguir e o número da revisão desejada:
Se o Kubernetes é uma novidade para você, indicamos a leitura do tutorial de Kubernetes no nosso Digital Guide.
Instalação de clusters Kubernetes totalmente automatizada, visibilidade máxima e controle de clusters K8s.