Docker Swarm: escalado y rolling updates
Clase 12 de 24 • Curso de Swarm
Contenido del curso
Primeros pasos
- 6

Instalación de Docker en Mac, Ubuntu y Windows
10:13 min - 7

Cómo iniciar Docker Swarm en tu máquina
08:35 min - 8

Creando servicios en Docker Swarm
05:36 min - 9

Cómo funciona docker service ps internamente
11:09 min - 10

Qué es Play with Docker para practicar
06:27 min - 11

Creando un Docker Swarm multinodo real
06:15 min
Administrando Servicios
Swarm avanzado
- 15

Cómo Docker Swarm enruta tráfico sin perder peticiones
06:56 min - 16

Docker Swarm constraints: dónde correr cada tarea
09:04 min - 17

Cómo drenar nodos en Docker Swarm sin downtime
07:56 min - 18

Redes Overlay en Docker Swarm: Comunicación entre Servicios
13:39 min - 19

Docker Stack: automatiza despliegues multinodo
10:49 min - 20

Implementación de Reverse Proxy con Traefik en Docker Swarm
16:49 min
Swarm productivo
Conclusiones
Domina cómo escalar y actualizar servicios en Docker Swarm sin detenerlos. Aquí verás el rol de réplicas, tareas, el scheduler y el rolling update, además de cómo inspeccionar el estado, seguir logs en tiempo real y ejecutar un rollback cuando algo falla. Todo sobre un swarm con un manager y dos workers.
¿Cómo escalar servicios en Docker Swarm sin downtime?
Escalar un servicio crea múltiples tareas que el scheduler distribuye entre los nodos disponibles. A diferencia de docker ps, en Swarm observas tareas del servicio, que a su vez crean contenedores en distintos nodos.
- Usa réplicas para atender más usuarios sin cambiar tu código.
- El scheduler reparte las tareas entre nodos automáticamente.
- Verás tareas y contenedores distribuidos en manager y workers.
Ejemplo de escalado a 5 réplicas:
docker service scale pinger=5
Ver el estado de las tareas del servicio:
docker service ps pinger
Comprobar contenedores en cada nodo:
# en cada nodo
docker ps
¿Qué muestran service ps y logs para controlar réplicas?
service ps lista las tareas del servicio con su ID, nombre, imagen y nodo donde corren. Es normal ver algunas en un nodo y otras en los restantes: Swarm busca balance y disponibilidad.
- Las tareas recientes aparecen con IDs y nombres únicos.
- No todas corren en el mismo nodo: el reparto es automático.
- Puedes validar en cada nodo con docker ps.
Seguir los logs de todas las tareas en tiempo real es clave para observabilidad:
docker service logs -f pinger
- El prefijo indica la tarea/contendor que emitió la línea.
- Reúne el output de todas las réplicas sin perder eventos.
- Sal con Control+C.
¿Cómo actualizar, inspeccionar y hacer rollback de un servicio?
Cada servicio tiene una plantilla de tareas con su configuración: imagen y argumentos de ejecución. Puedes inspeccionarla y modificarla en caliente.
Inspeccionar la spec del servicio:
docker service inspect pinger
- Verás el número de réplicas y el bloque ContainerSpec.
- Allí están la imagen y los args actuales.
Actualizar argumentos en caliente con rolling update por defecto (uno a uno) para evitar downtime:
docker service update --args "ping amazon" pinger
- Swarm reemplaza tareas de a una para mantener el servicio disponible.
- Este patrón es un rolling update o rolling deployment.
Tras un update, Swarm guarda la configuración previa como previous spec. Eso permite un rollback inmediato si algo sale mal:
docker service rollback pinger
- El rollback también se hace de forma progresiva, tarea por tarea.
- Vuelves a una versión que sabes que funcionaba, sin perder tiempo.
Al revisar de nuevo service ps, pueden aparecer tareas “antiguas” con marcas que indican versiones previas. Es útil para inspeccionar qué cambió, dónde corrieron y por qué fallaron.
- Puedes ver varias “generaciones” de una misma tarea.
- La retención de versiones anteriores es configurable.
- Todo funciona en múltiples nodos de forma transparente.
¿Quieres que profundicemos en estrategias de despliegue y exposición externa de servicios en Swarm? Cuéntame en comentarios qué escenarios te interesan y qué comandos te gustaría practicar.