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

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 à 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 à 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 ao mesmo tempo — neste caso, duas. Para saber quais Pods gerenciar, o Deployment utiliza uma combinação de selector e labels: o selector atua como um filtro para encontrar 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 encarrega de manter sua quantidade, atualizá-los e reiniciá-los, se necessário.

Todos os Pods executam na porta 3000. Todos podem usar a mesma porta porque cada Pod opera em seu próprio espaço de rede isolado, portanto, não há conflito entre eles.

Service: Acesso de Rede à Aplicação

Após o Deployment estar configurado, é 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.

Verificando o Status

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

Se o arquivo deployment.yaml especificar replicas: 2, dois Pods devem aparecer na saída.

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

Isso exibirá o endereço IP do Serviço 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 Service 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?

Select the correct answer

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 3.7

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 à 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 à 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 ao mesmo tempo — neste caso, duas. Para saber quais Pods gerenciar, o Deployment utiliza uma combinação de selector e labels: o selector atua como um filtro para encontrar 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 encarrega de manter sua quantidade, atualizá-los e reiniciá-los, se necessário.

Todos os Pods executam na porta 3000. Todos podem usar a mesma porta porque cada Pod opera em seu próprio espaço de rede isolado, portanto, não há conflito entre eles.

Service: Acesso de Rede à Aplicação

Após o Deployment estar configurado, é 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.

Verificando o Status

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

Se o arquivo deployment.yaml especificar replicas: 2, dois Pods devem aparecer na saída.

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

Isso exibirá o endereço IP do Serviço 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 Service 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?

Select the correct answer

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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