Optimización de Swarm: Mantenimiento, Logs y Monitoreo Avanzado
Clase 23 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
Si vas a usar Docker Swarm en producción, evita caídas y downtime con tres prácticas clave: housekeeping de disco, gestión de logs y monitoreo. Aquí se explican riesgos reales, cómo mitigarlos con modo global, elegir log drivers y limitar su tamaño, además de visualizar métricas con herramientas probadas.
¿Cómo hacer housekeeping de disco en Docker Swarm?
Mantener limpio el disco es crítico. Aunque los servicios parezcan stateless, bajo el capó se acumulan imágenes y capas en cada nodo, y con deployments frecuentes el espacio se agota. Swarm depende del algoritmo Raft, por lo que un nodo sin disco puede degradar el clúster.
- Implementa un servicio de cleanup que borre imágenes sin contenedores activos y contenedores detenidos tras N tiempo.
- Ejecútalo en todos los nodos con modo global. Así siempre habrá un contenedor limpiando por nodo.
- Conéctalo al Docker daemon vía el socket para usar comandos como eliminación de imágenes y contenedores.
- Recuerda: las imágenes son locales a cada host. No se gestionan desde el plano de Swarm.
¿Qué es el modo global y cuándo usarlo?
El modo global asegura una tarea por nodo, incluido cualquier nodo nuevo que se una. Es perfecto para utilidades de sistema como cleanup. A diferencia de mode replicated, no defines réplicas; defines cobertura total por nodo.
docker service ls
Verás servicios comunes en mode replicated y, para la limpieza, en mode global. Esto garantiza que cada host mantenga su disco bajo control.
¿Por qué “stateless” no evita llenar disco?
Con muchas versiones y rollouts, los layers se acumulan. Al cabo de días o semanas, el disco puede llenarse. Sin espacio, el Docker daemon no descarga nuevas imágenes ni escribe metadatos, y el nodo puede quedar inutilizable.
¿Cómo limitar y enrutar los logs en Swarm?
Los logs también consumen disco. Un servicio ruidoso como un pinger puede crecer sin control y bloquear el nodo. La elección del log driver importa: necesitas ver logs desde Swarm y, a la vez, limitar su tamaño.
- json-file es el predeterminado y junto con journald soporta
docker service logs. - También puedes enviar logs a Logstash de AWS, Splunk o syslog de Linux.
- Si quieres ver los logs vía Swarm, usa journald o json-file y configura límites.
¿Qué configuración mínima evita sorpresas?
Define rotación con tamaño y conteo de archivos. Ejemplo: un máximo de 1 MB y 2 archivos. Cuando el segundo llega a 1 MB, se borra el primero y se reinicia el ciclo. Así garantizas que un servicio nunca supere el espacio asignado a logs.
¿Cuándo usar servicios externos de logs?
Cuando necesites centralización, búsqueda y retención amplia, envía logs a Logstash, Splunk o syslog. Aun así, mantén límites locales para que un pico de logs no consuma todo el disco del host.
¿Qué monitoreo necesitas para un Swarm productivo?
Además de fijar límites de CPU y RAM por servicio, necesitas ver qué sucede. Sin visibilidad no hay diagnóstico. El enfoque recomendado es adoptar monitoreo desde el primer día y activar alertas.
- Usa herramientas abiertas como Prometheus con Grafana y CI2. Permiten tableros y alertas por Slack.
- Considera opciones de pago como Datadog o New Relic si buscas menos mantenimiento.
- Visualiza estrés por nodo, consumo por servicio y eventos del clúster.
- Principio clave: no puedes arreglar lo que no puedes ver.
¿Qué prácticas incorporar desde el primer día?
- Definir límites de CPU y RAM por servicio. Evita acaparamiento de recursos.
- Desplegar tableros de métricas y alertas operativas. Reacciona a tiempo.
- Probar escenarios de disco lleno por logs. Verifica que la rotación funciona.
- Auditar la limpieza periódica en todos los nodos. Evita acumulación silenciosa.
¿Qué estrategia de limpieza, logs y monitoreo estás aplicando en tu Swarm? Comparte tu enfoque y dudas en los comentarios.