⏪ Rollback
El rollback deshace una actualización que tuvo problemas, devolviendo el Deployment a una versión anterior. Es el "deshacer" de Kubernetes, y funciona en segundos.
Los rollbacks se realizan con kubectl. El Panel Nuvion no tiene este recurso.
🚀 Antes de comenzar
- Tener el acceso al clúster configurado (vea Acceso al Clúster).
- Tener el Deployment
web-deploycon al menos una actualización realizada (vea Rollout).
🚀 1. Ver las versiones disponibles
kubectl rollout history deployment/web-deploy
Cada línea es una revisión. Anote el número de la versión que funcionaba.
🚀 2. Simular una actualización con problemas
Actualice a una imagen que no existe:
kubectl set image deployment/web-deploy nginx=nginx:versao-que-nao-existe
kubectl get pods -l app=web-deploy
Los pods nuevos quedan en ErrImagePull o ImagePullBackOff, pero los pods
antiguos siguen funcionando y atendiendo, porque Kubernetes no los elimina
hasta que los nuevos estén listos.
🚀 3. Deshacer la última actualización
kubectl rollout undo deployment/web-deploy
kubectl rollout status deployment/web-deploy
El Deployment vuelve a la revisión anterior (en este ejemplo, nginx:1.27).
🚀 4. Volver a una revisión específica
kubectl rollout history deployment/web-deploy --revision=1
kubectl rollout undo deployment/web-deploy --to-revision=1
El primer comando muestra lo que tenía la revisión 1 (incluida la imagen). El segundo vuelve a ella.
🚀 5. Confirmar
kubectl get deployment web-deploy -o jsonpath='{.spec.template.spec.containers[0].image}'
kubectl get pods -l app=web-deploy
El primero muestra la imagen actual. Todos los pods deben estar Running.
El rollback deshace lo que está en el modelo del pod (imagen, variables, recursos). No deshace el número de réplicas, ni el contenido de un ConfigMap o de un Secret.
✅ Cómo saber si funcionó
kubectl rollout status termina con successfully rolled out, y la imagen mostrada
en el paso 5 es la versión que funcionaba.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
no rollout history found | El Deployment nunca fue actualizado | Haga primero una actualización (Rollout) |
unable to find specified revision | La revisión no existe o ya fue eliminada | Vea las disponibles en kubectl rollout history |
| El rollback no resolvió | El problema está en otro lugar (ConfigMap, Secret, base de datos) | Vea Logs y Events |
🧹 Limpieza
Si no va a usar el Deployment en las próximas páginas:
kubectl delete deployment web-deploy
➡️ Próximo paso: Terminal
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!