Estrategias de Despliegue en Kubernetes (Deployment Strategies) 🚀
Notas de estudio para la certificación CKA/CKAD.
1. Rolling Update (El Estándar) 🔄
- Comportamiento: Actualización incremental. Kubernetes crea Pods de la nueva versión (
v2) y elimina los de la vieja (v1) poco a poco. - Pros: Sin tiempo de inactividad (Zero Downtime).
- Contras: Durante el proceso conviven dos versiones de la app (v1 y v2) al mismo tiempo.
- Uso: La estrategia por defecto de los
Deployments.
2. Canary Deployment (El Canario en la Mina) 🐤
- Comportamiento: Despliegas la nueva versión (
v2) para un subconjunto muy pequeño de usuarios (o tráfico) mientras el resto sigue en lav1. - Objetivo: Validar logs positivos y métricas (“si el canario sobrevive”) antes de propagar la actualización al 100% de los clientes.
- Pros: Minimiza el impacto si la nueva versión tiene errores.
- Implementación: Se suele hacer con un Service Mesh (Istio/Linkerd) o controlando réplicas manuales.
3. Blue/Green Deployment (Azul/Verde) 🔵🟢
- Comportamiento: Tienes dos ambientes idénticos.
- Blue (Activo): Tiene la
v1recibiendo todo el tráfico. - Green (Inactivo): Despliegas la
v2completa aquí.
- Blue (Activo): Tiene la
- El Switch: Cuando
Greenestá listo y probado, cambias el balanceador para que apunte al 100% aGreen. Luego apagasBlue. - Pros: Rollback instantáneo (solo regresas el switch).
- Contras: Costoso (necesitas el doble de recursos/hardware temporalmente).
4. Recreate (El Interruptor) 🔌
- Comportamiento: Apaga todos los Pods viejos (
v1) → Espera → Enciende los nuevos (v2). - Pros: Estado limpio. Nunca conviven dos versiones.
- Contras: Downtime (Tiempo de inactividad). El servicio se cae mientras se hace el cambio.
- Uso: Solo cuando la app no soporta correr dos versiones a la vez (ej. migraciones de DB conflictivas).