⏪ 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.
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-deploycom 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.
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
| Sintoma | Causa | Solução |
|---|---|---|
no rollout history found | O Deployment nunca foi atualizado | Faça uma atualização primeiro (Rollout) |
unable to find specified revision | A revisão não existe ou já foi removida | Veja as disponíveis em kubectl rollout history |
| O rollback não resolveu | O 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!