Pular para o conteúdo principal

⏪ Rollback

O rollback desfaz uma atualização que deu problema, voltando o Deployment para uma versão anterior. É o "desfazer" do Kubernetes, e funciona em segundos.

informação

Rollbacks são feitos com o kubectl. O Painel Nuvion não tem esse recurso.


🚀 Antes de começar​

  • Ter o acesso ao cluster configurado (veja Acesso ao Cluster).
  • Ter o Deployment web-deploy com pelo menos uma atualização feita (veja Rollout).

🚀 1. Ver as versões disponíveis​

kubectl rollout history deployment/web-deploy

Cada linha é uma revisão. Anote o número da versão que funcionava.

🚀 2. Simular uma atualização com problema​

Atualize para uma imagem que não existe:

kubectl set image deployment/web-deploy nginx=nginx:versao-que-nao-existe
kubectl get pods -l app=web-deploy

Os pods novos ficam em ErrImagePull ou ImagePullBackOff, mas os pods antigos continuam rodando e atendendo, porque o Kubernetes não os remove até os novos ficarem prontos.

🚀 3. Desfazer a última atualização​

kubectl rollout undo deployment/web-deploy
kubectl rollout status deployment/web-deploy

O Deployment volta para a revisão anterior (neste exemplo, nginx:1.27).

🚀 4. Voltar para uma revisão específica​

kubectl rollout history deployment/web-deploy --revision=1
kubectl rollout undo deployment/web-deploy --to-revision=1

O primeiro comando mostra o que tinha na revisão 1 (incluindo a imagem). O segundo volta para ela.

🚀 5. Confirmar​

kubectl get deployment web-deploy -o jsonpath='{.spec.template.spec.containers[0].image}'
kubectl get pods -l app=web-deploy

O primeiro mostra a imagem atual. Todos os pods devem estar Running.

aviso

O rollback desfaz o que está no modelo do pod (imagem, variáveis, recursos). Ele não desfaz o número de réplicas, nem o conteúdo de um ConfigMap ou de um Secret.

✅ Como saber se deu certo​

kubectl rollout status termina com successfully rolled out, e a imagem mostrada no passo 5 é a versão que funcionava.

❗ Problemas comuns​

SintomaCausaSolução
no rollout history foundO Deployment nunca foi atualizadoFaça uma atualização primeiro (Rollout)
unable to find specified revisionA revisão não existe ou já foi removidaVeja as disponíveis em kubectl rollout history
O rollback não resolveuO problema está em outro lugar (ConfigMap, Secret, banco de dados)Veja Logs e Events

🧹 Limpeza​

Se não for usar o Deployment nas próximas páginas:

kubectl delete deployment web-deploy

➡️ Próximo passo: Terminal

🧠 Dúvidas?​

Fale com nosso time de suporte técnico da SaveinCloud!