Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios
Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios

  • Andre Lucas
  • Mon Aug 26 2024

Deployment - mais controle sobre suas aplicações

Deployment Header

Para seguir este artigo você pode obter os arquivos em - https://github.com/ProgrammingOnMars/kubernetes-for-dev

Vimos que o ReplicaSet mantém o número desejado de pods. Mas ao tentar alterar a versão da aplicação, é necessário remover os pods para forçar o ReplicaSet a criar novos pods, e consequentemente, o pod é criado com sua nova versão.

Para resolver este problema podemos usar o kind Deployment.

Um Deployment fornece atualizações declarativas para Pods e ReplicaSets. Recuperado em 26 de agosto de 2024 de https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

Para cada atualização na versão da imagem, o Deployment cria um novo ReplicaSet.

Você descreve um estado desejado em um Deployment, e o Controller do Deployment altera o estado atual para o estado desejado de forma controlada. Você pode definir Deployments para criar novos ReplicaSets, ou para remover Deployments existentes e adotar todos os seus recursos com novos Deployments. Recuperado em 26 de agosto de 2024 de https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

Deployment Diagram

Hands-on

Vamos ver como criar um Deployment na prática:

Primeiro, você precisa definir um Deployment em um arquivo YML, especificando o número de réplicas e a versão da imagem do container a ser usada.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: programmingonmars-deployment
  labels:
    app: programmingonmars
spec:
  replicas: 3
  selector:
    matchLabels:
      app: programmingonmars
  template:
    metadata:
      labels:
        app: programmingonmars
    spec:
      containers:
      - name: programmingonmars-container
        image: andrelucastic/demo:1.0
        ports:
        - containerPort: 8080

Agora vamos aplicar no cluster Kubernetes.

kubectl apply -f 04-deployment-more-control-over-of-your-applications/deployment.yaml

A configuração cria um Deployment chamado programmingonmars-deployment que manterá três réplicas de pods.

kubectl get pods

Deployment Pods Output

Como os pods foram criados?

O ReplicaSet criado pelo Deployment

Você pode verificar usando o comando abaixo

kubectl get replicaset

Deployment ReplicaSet Output

Aplicar as mudanças

kubectl apply -f 04-deployment-more-control-over-of-your-applications/deployment.yaml

O Kubernetes criará um novo ReplicaSet para a versão atualizada e realizará um rolling update, substituindo gradualmente os pods antigos por novos.

Podemos monitorar este progresso usando o comando:

kubectl rollout status deployment/programmingonmars-deployment

Se algo der errado durante a atualização, você pode facilmente reverter para a versão anterior usando:

kubectl rollout undo deployment/programmingonmars-deployment
Tags:
InfraestruturaDeploymentk8sContainersDevOps
  • Política de Privacidade
  • Termos de Serviço
  • Contato
© 2025 Programming On Mars. Todos os direitos reservados.