Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Configuração e Lançamento de Deployment no Kubernetes | CI/CD e Automação
Introdução ao DevOps

bookConfiguração e Lançamento de Deployment no Kubernetes

Deslize para mostrar o menu

Agora que sua aplicação está funcionando perfeitamente dentro de containers, o próximo desafio é orquestrar e gerenciar esses containers em escala. É aqui que o Kubernetes entra para ajudar.

Para começar, defina o estado desejado da sua aplicação utilizando arquivos YAML. Um arquivo irá descrever um Deployment, que gerencia atualizações e escalabilidade, enquanto outro definirá um Service, que expõe sua aplicação para a rede e a torna acessível aos usuários.

Note
Estude Mais

YAML (YAML Ain't Markup Language) é um formato legível por humanos para arquivos de configuração. É frequentemente utilizado para descrever infraestrutura, automatizar processos e armazenar configurações de aplicações.

Um Deployment garante que o número desejado de instâncias da aplicação (Pods) esteja sempre em execução e facilita a implementação de atualizações ou o retorno a versões anteriores. Um Service expõe esses containers para a rede e distribui o tráfego de entrada entre eles.

Executando o Minikube

Note
Definição

Minikube é uma ferramenta leve que permite executar um cluster Kubernetes localmente em seu computador. Ela cria um ambiente virtual onde é possível testar e explorar o Kubernetes sem a necessidade de serviços em nuvem.

Após instalar o Minikube e adicioná-lo ao PATH do sistema, abra o PowerShell (ou o terminal de sua preferência) e execute:

Este comando verifica se o Minikube está disponível e exibe a versão instalada.

Após confirmar que o Minikube está instalado, inicie seu cluster local do Kubernetes com:

Este comando cria e inicia um cluster local do Kubernetes em sua máquina. Ele faz o download dos componentes necessários e inicia o plano de controle e os nós de trabalho.

Deployment: Application Rollout

Comece criando o arquivo deployment.yaml. Um Deployment no Kubernetes garante que um número específico de Pods (instâncias da aplicação) esteja sempre em execução e pode ser atualizado ou revertido sem tempo de inatividade.

deployment.yaml

deployment.yaml

copy

Neste manifesto, o parâmetro replicas especifica quantas instâncias de Pod devem ser executadas simultaneamente — neste caso, duas. Para identificar quais Pods gerenciar, o Deployment utiliza uma combinação de selector e labels: o selector atua como um filtro para localizar Pods com um label específico, e o template do Pod define esse label. Quando os labels coincidem, o Deployment considera esses Pods como seus e se responsabiliza por manter sua quantidade, atualizá-los e reiniciá-los, se necessário.

Todos os Pods operam na porta 3000. Eles podem utilizar a mesma porta porque cada Pod funciona em seu próprio espaço de rede isolado, evitando conflitos entre eles.

Service: Acesso de Rede à Aplicação

Após a criação do Deployment, é necessário um Service para fornecer acesso de rede e balanceamento de carga entre os Pods. Crie o arquivo service.yaml:

service.yaml

service.yaml

copy

Este manifesto define um Service chamado my-app-service que direciona o tráfego para Pods com o rótulo app: my-app. Ele escuta na porta 80 externamente e encaminha as requisições para a porta 3000 dentro dos Pods.

O tipo LoadBalancer é importante porque expõe a aplicação externamente e distribui o tráfego entre os Pods.

Implantação da Aplicação no Kubernetes

Após os arquivos YAML estarem prontos, eles podem ser aplicados ao cluster:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

O comando kubectl apply -f cria ou atualiza recursos no cluster com base no conteúdo do arquivo YAML.

Verificação do Status

Após aplicar os arquivos de configuração, é importante confirmar que tudo foi implantado conforme o esperado. Como Pods e Services levam um momento para iniciar, comece listando os Pods em execução:

Se o arquivo deployment.yaml especificar replicas: 2, dois Pods devem aparecer no resultado.

Para confirmar que o Service está em execução e acessível:

Isso exibirá o endereço IP do Service e as portas pelas quais o aplicativo pode ser acessado.

Obter a URL do Serviço

Para acessar sua aplicação, execute o seguinte comando no PowerShell ou no seu terminal:

Este comando solicita ao Minikube que retorne a URL onde sua aplicação está exposta. O Minikube verifica o Serviço que você criou (my-app-service) e fornece um link que pode ser aberto no navegador.

Escalando a Aplicação

O Kubernetes facilita o ajuste do número de Pods em execução sem interromper a aplicação.

Por exemplo, para escalar de 2 para 4 réplicas:

Executar kubectl get pods novamente agora listará quatro Pods ativos.

Kubernetes oferece ferramentas avançadas para gerenciar aplicações conteinerizadas em qualquer escala. Um Deployment garante que o número correto de Pods esteja em execução e pode ser atualizado ou revertido facilmente. Um Service expõe a aplicação para a rede e balanceia o tráfego de entrada. Arquivos de configuração YAML tornam a configuração clara e legível, enquanto comandos kubectl permitem aplicar e gerenciar essas configurações em tempo real.

1. Qual é o principal objetivo de um Deployment no Kubernetes?

2. Por que vários Pods podem executar na mesma porta (por exemplo, 3000) sem conflitos?

question mark

Qual é o principal objetivo de um Deployment no Kubernetes?

Selecione a resposta correta

question mark

Por que vários Pods podem executar na mesma porta (por exemplo, 3000) sem conflitos?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 9

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 9
some-alt