top of page

Como utilizar o Deployment Rollback no Kubernetes

  • Foto do escritor: Rodrigo Saito
    Rodrigo Saito
  • há 2 dias
  • 2 min de leitura

Fala pessoal, tudo bem?


Quando o seu deployment deu alguma coisa errada, precisamos utilizar o Dewployment Rollback, para voltarmos a uma versão anterior do Deployment.


Vamos fazer a listagem das nossas revisões


kubectl rollout history deployment.apps/frontend-deployment

Posso também fazer com que a revisão tenha uma versão específica:

kubectl rollout history deployment.apps/frontend-deployment --revision=2

Veja a revisão especifica 3

kubectl rollout history deployment.apps/frontend-deployment --revision=3

Veja a revisão especifica 5

kubectl rollout history deployment.apps/frontend-deployment --revision=5

Altere o seu arquiivo deployment.yaml e o salve:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend-deployment
  labels:
    app: frontend
spec:
  template:
    metadata:
      name: pod-my-nginx
      labels:
        env: production
  spec:
      containers:
        - name: nginx-container
          image: nginx:1.21.4
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique novamente o arquivo:

kubectl apply -f my-deployment.yaml

Podemos verificar que os Pods começaram a ser atualizados:

kubectl get pods

Veja o historico dos deployments

kubectl rollout history deployment.apps/frontend-deployment

Altere o arquivo my-deployment.yaml e salve:


Altere o seu arquiivo deployment.yaml e o salve:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend-deployment
  labels:
    app: frontend
spec:
  template:
    metadata:
      name: pod-my-nginx
      labels:
        env: production
  spec:
      containers:
        - name: nginx-container
          image: nginx:1.21.5
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique o arquivo, com um complemento de parametro:

kubectl apply -f my-deployment.yaml --record


Veja novamente o history:

kubectl rollout history deployment.apps/frontend-deployment

Supondo que essa versão tenha dado algum problema, podemos voltar a versão imediatamenta anterior a que estávamos:


kubectl rollout undo deployment.apps/frontend-deployment

Veja novamete os PODs sendo recriados:

kubectl get pods

Veja novamente o history e perceba que a versão 8 foi criada:

kubectl rollout history deployment.apps/frontend-deployment

Quando executamos o comando UNDO, voltamos para a revisão 6 (que não está mais na lista do history). É como se o k8s tivesse renomeado a nossa revisão 6 para a revisão 8. (pois a revisão 6 tem o mesmo conteúdo que a revisão 8)


Veja o conteúdo da revisão 8

kubectl rollout history deployment.apps/frontend-deployment --revision=8

Vamos fazer outro teste. Veja a revisao 5:

kubectl rollout history deployment.apps/frontend-deployment --revision=5

Vamos executar o comando UNDO com a revisão específica que queremos voltar:

kubectl rollout undo deployment.apps/frontend-deployment --to-revision=5

Verifique novamente o historico de revisões:

kubectl rollout history deployment.apps/frontend-deployment

Podemos perceber que o K8s criou a revisão 9. Veja especificamente a revisao 9.

kubectl rollout history deployment.apps/frontend-deployment --to-revision=9

Podemos perceber que o conteúdo da revisão 9 e 5 são iguais.


Dessa forma, conseguimos gerenciar as revisões que estão sendo executadas do deployment.


Esperamos que tenham gostado!


obrigado e até+!














Comentários


Nunca perca um post. Assine agora!

Caso queira receber noticias sobre o blog, assine!

© 2022 por datalib

  • Ícone do Facebook Cinza
  • Ícone do Linkedin Cinza
bottom of page