🔁 Rollout
El rollout es la actualización gradual de una aplicación: los pods antiguos se reemplazan por los nuevos poco a poco, sin derribar el servicio. Si la versión nueva no queda lista, Kubernetes mantiene los pods antiguos atendiendo.
Los rollouts 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-deployde la página Deploy (imagennginx:1.26).
🚀 1. Actualizar la versión de la imagen
kubectl set image deployment/web-deploy nginx=nginx:1.27
El formato es NOMBRE-DEL-CONTENEDOR=NUEVA-IMAGEN. En el modelo de la página Deploy, el contenedor se llama nginx.
🚀 2. Seguir la actualización
kubectl rollout status deployment/web-deploy
kubectl get pods -l app=web-deploy
Verá pods nuevos subiendo mientras los antiguos salen. El final es
successfully rolled out.
🚀 3. Registrar el motivo del cambio
kubectl annotate deployment/web-deploy kubernetes.io/change-cause="Atualiza nginx para 1.27" --overwrite
El texto aparece en el historial del paso 4.
🚀 4. Ver el historial
kubectl rollout history deployment/web-deploy
Cada versión del Deployment es una revisión numerada.
🚀 5. Controlar el ritmo de la actualización
Por defecto, Kubernetes actualiza por etapas. Puede ajustarlo en el Deployment:
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
| Campo | Significado |
|---|---|
maxUnavailable: 0 | Nunca quedar con menos pods de los deseados |
maxSurge: 1 | Puede crear 1 pod adicional durante el cambio |
🚀 6. Pausar y reanudar (opcional)
kubectl rollout pause deployment/web-deploy
kubectl rollout resume deployment/web-deploy
✅ Cómo saber si funcionó
kubectl get deployment web-deploy -o jsonpath='{.spec.template.spec.containers[0].image}'
El comando muestra nginx:1.27.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
rollout status queda esperando | Los pods nuevos no quedan listos | Vea kubectl get pods: si aparece ImagePullBackOff, la imagen no existe. Deshaga con Rollback |
unable to find container named | Nombre del contenedor incorrecto | Vea el nombre con kubectl describe deployment web-deploy |
timed out waiting for the condition | La actualización pasó del plazo | Verifique los Events y haga el Rollback |
➡️ Próximo paso: Rollback
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!