Creación y Gestión de Swarm Multinodo en Docker

Clase 11 de 24Curso de Swarm

Resumen

¿Cómo podemos crear un Swarm multinodo con Docker?

Desplegar un Swarm multinodo en Docker es una experiencia reveladora que nos permite gestionar nodos de forma eficiente. Inicializar un Swarm requiere configurar nuestro Swarm Manager, que actúa como coordinador central de las operaciones.

¿Qué pasos debemos seguir para iniciar un Swarm Manager?

  1. Inicializar el Swarm: En primer lugar, utilizamos el comando docker swarm init. Este comando configura la máquina actual como el nodo administrador principal. Sin embargo, en un entorno con múltiples interfaces, es importante especificar en qué dirección IP se escuchará, debido a que el sistema podría presentar múltiples redes conectadas.

  2. Configurar la dirección de escucha: Para resolverlo, ejecutamos el comando docker swarm init --advertise-addr [IP_ADDRESS], reemplazando [IP_ADDRESS] con la IP de la interfaz que se desea utilizar. Por ejemplo:

    docker swarm init --advertise-addr 192.168.0.33
    

¿Cómo se unen otros nodos al Swarm?

Una vez que el Swarm Manager esté configurado, podemos sumar otros nodos al Swarm. Para esto, cada nodo debe ejecutar el token de unión (Join Token) en sus sistemas:

  1. Obtener el Join Token: Tras crear el Swarm, el comando inicial proporciona un token que otros nodos necesitan para unirse al Swarm como workers.

  2. Unirse al Swarm: Para cada nodo nuevo, ejecutar el comando brindado, similar a:

    docker swarm join --token SWMTKN-1-61ykxgntbp2j4c0epce2fywz3z7g567ctdqkhdbnh4ayngoballc8s9mr2zisd192c7wv 192.168.0.33:2377
    

¿Cómo podemos verificar el estado del Swarm?

El estatuto del Swarm y quién lo integra es crucial. Como vimos:

  • Ver el estado de los nodos: Solo desde el Manager se puede verificar la organización de los nodos con:
    docker node ls
    

El comando muestra información importante como qué nodo actúa como líder y nos identifica en cuál estamos trabajando actualmente, señalándolos como Manager o Worker.

¿Cómo ejecutar un servicio en un Swarm multinodo?

Un Swarm no es solo para gestionar máquinas, sino para ejecutar aplicaciones distribuidas. Veamos cómo:

  1. Crear un servicio: Filial al concepto de contenedores, los servicios Docker permiten replicarse y trasladarse a lo largo de los nodos disponibles. Por ejemplo, para crear un simple servicio que haga ping a Google, utilizamos:

    docker service create --name pinger alpine ping www.google.com
    
  2. Verificar dónde corren los servicios: Deseamos saber en qué nodo está corriendo el servicio, y para eso ejecutamos:

    docker service ps pinger
    

¿Qué más podemos aprender sobre la gestión de Swarm?

El manejo de Swarms nos brinda una poderosa herramienta para escalar y administrar aplicaciones. Es importante que eventualmente aprendamos a:

  • Configurar restricciones, especificando en qué nodos queremos que corran determinadas aplicaciones.
  • Evaluar políticas de replicación y distribución de carga para eficiencia y redundancia.

A medida que continúes sumergiéndote en el mundo del manejo de Docker, emocionantes y más complejas capacidades te esperan, prometiendo un aprendizaje técnico continuo. ¡Sigue explorando!