Arquitectura de Docker Swarm: managers y workers

Clase 4 de 24Curso de Swarm

Resumen

La arquitectura de Docker Swarm permite ejecutar aplicaciones productivas con alta disponibilidad y coordinación automática entre nodos. Aquí entenderás, de forma clara y directa, cómo se organizan los roles de managers y workers, cómo se decide dónde corren los contenedores y qué requisitos mínimos debe cumplir tu infraestructura para evitar caídas y pérdida de servicio.

¿Qué es la arquitectura de Docker Swarm y cómo organiza el clúster?

Un swarm es un clúster de máquinas conectadas en red que se comportan como una unidad homogénea donde puedes correr tus aplicaciones en Docker. En este modelo hay dos tipos de nodos: managers y workers. Un “nodo” equivale a un servidor, máquina virtual o máquina física.

  • Un swarm integra varias máquinas en una misma red lógica.
  • La plataforma administra la comunicación entre nodos para correr contenedores de forma consistente.
  • Nodos puede leer como: servidor = máquina virtual = máquina.

¿Cómo funciona la coordinación entre nodos?

Los nodos manager administran el swarm: deciden dónde se ejecutan los contenedores, cómo se comunican y detectan fallos. Si un nodo con contenedores se cae o pierde conectividad, los managers reposicionan los servicios en otros nodos disponibles para mantener la disponibilidad y el servicio a los usuarios.

  • Los managers eligen nodos con recursos disponibles para nuevas tareas.
  • Ante una caída, reubican contenedores en otros nodos del clúster.
  • El objetivo: no interrumpir el servicio productivo.

¿Qué roles cumplen managers y workers en la ejecución de contenedores?

Los workers suelen ser más numerosos y se enfocan en ejecutar contenedores. Es muy probable que tus contenedores productivos corran en workers. Aunque podrían ejecutarse en managers, no es recomendable porque estos coordinan el estado del clúster y competirían por recursos.

  • Managers: coordinación del clúster y decisiones de ubicación de contenedores.
  • Workers: núcleo de ejecución de tus contenedores productivos.
  • Separar roles evita que la coordinación crítica compita con la carga de trabajo.

¿Por qué evitar cargas productivas en managers?

Porque los managers mantienen el estado del clúster y realizan tareas sensibles. Ejecutar contenedores productivos allí compite por CPU, memoria y red, lo que puede afectar la estabilidad del swarm.

  • Priorizar la estabilidad del clúster.
  • Prevenir contención de recursos entre coordinación y carga productiva.

¿Qué requisitos de infraestructura y networking necesita el clúster?

Todos los nodos deben cumplir dos condiciones fundamentales: tener el Docker daemon instalado (idealmente la misma versión) y visibilidad de red entre sí. Pueden estar en la misma subred o en subredes distintas, siempre que exista visibilidad de networking.

  • Cada nodo con Docker daemon, preferentemente misma versión.
  • Todos los nodos visibles entre sí a nivel networking.
  • Misma subred recomendada; si son subredes distintas, asegurar ruteo y visibilidad.

¿Qué sigue para preparar tus aplicaciones?

El siguiente paso es verificar si tus aplicaciones están listas para correr en Docker Swarm y entender los requisitos para que sean “felices” dentro del clúster. ¿Qué dudas te gustaría resolver sobre esa preparación? Comparte en comentarios y sigamos la conversación.

      Arquitectura de Docker Swarm: managers y workers