Configuraçã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.
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
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
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
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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.7
Configuraçã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.
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
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
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
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?
Obrigado pelo seu feedback!