Saltar al contenido principal

⏪ 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.

info

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-deploy con 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.

aviso

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íntomaCausaSolución
no rollout history foundEl Deployment nunca fue actualizadoHaga primero una actualización (Rollout)
unable to find specified revisionLa revisión no existe o ya fue eliminadaVea 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!