Cómo usar el comando docker swarm join para agregar nodos

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo agregar nodos a un Docker Swarm existente utilizando el comando docker swarm join. Cubriremos el proceso de unir un nodo como trabajador (worker), que ejecuta las tareas asignadas por los administradores (managers), y como administrador (manager), que participa en la gestión del swarm.

También explorarás la opción --availability y entenderás cómo usarla al unir nodos para controlar su disponibilidad inicial dentro del swarm. Este laboratorio práctico te proporcionará experiencia práctica con los pasos esenciales para expandir tu clúster de Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-555241{{"Cómo usar el comando docker swarm join para agregar nodos"}} docker/ps -.-> lab-555241{{"Cómo usar el comando docker swarm join para agregar nodos"}} docker/exec -.-> lab-555241{{"Cómo usar el comando docker swarm join para agregar nodos"}} docker/network -.-> lab-555241{{"Cómo usar el comando docker swarm join para agregar nodos"}} end

Unir un nodo a un swarm como trabajador (worker)

En este paso, aprenderemos cómo unir un nodo a un Docker Swarm existente como trabajador (worker). Un nodo trabajador (worker node) es una máquina que ejecuta los servicios desplegados en el swarm. Recibe y ejecuta las tareas asignadas por los nodos administradores (manager nodes).

Antes de unir un nodo a un swarm, debes tener un nodo administrador (manager node) de Docker Swarm en ejecución. Para este laboratorio, asumimos que un swarm ya está inicializado y que tienes el token de unión (join token) para los nodos trabajadores (worker nodes).

Primero, simulemos tener un token de unión. En un escenario real, obtendrías este token del nodo administrador (manager node) utilizando el comando docker swarm join-token worker. Para este laboratorio, usaremos un token de marcador de posición.

Supongamos que el comando de unión proporcionado por el administrador (manager) es similar a este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

En este comando:

  • docker swarm join: Este es el comando para unir un nodo a un swarm.
  • --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef: Este es el token único que autentica el nodo en el swarm.
  • --advertise-addr <THIS_NODE_IP>: Esta opción (flag) especifica la dirección IP que el nodo que se une utilizará para anunciarse a otros nodos en el swarm. Reemplaza <THIS_NODE_IP> con la dirección IP real del nodo que estás uniéndote.
  • <MANAGER_IP>:2377: Esta es la dirección de un nodo administrador (manager node) en el swarm. El nodo que se une se conecta a esta dirección para unirse al swarm. Reemplaza <MANAGER_IP> con la dirección IP real de un nodo administrador (manager node). El puerto predeterminado del swarm es 2377.

Dado que estamos trabajando en un entorno de una sola máquina virtual (VM) para este laboratorio, simularemos el proceso de unión utilizando un comando simplificado. Usaremos 127.0.0.1 como la dirección IP del administrador (manager) y un token de marcador de posición.

Ejecuta el siguiente comando para simular la unión al swarm como trabajador (worker). Ten en cuenta que este comando no unirá realmente a un swarm real en esta configuración de una sola máquina virtual (VM), pero demuestra la estructura del comando.

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef 127.0.0.1:2377

Deberías ver una salida que indique que el nodo está intentando unirse al swarm. En un escenario real, si la unión es exitosa, verías un mensaje como "This node joined a swarm as a worker."

Unir un nodo a un swarm como administrador (manager)

En este paso, aprenderemos cómo unir un nodo a un Docker Swarm existente como administrador (manager). Los nodos administradores (manager nodes) se encargan de las tareas de gestión del swarm, como mantener el estado del swarm, programar servicios y manejar operaciones a nivel de swarm. Un swarm puede tener múltiples nodos administradores (manager nodes) para alta disponibilidad.

Al igual que al unirse como trabajador (worker), necesitas un token de unión (join token) de un nodo administrador (manager node) existente para unirte como administrador (manager). El comando para obtener el token de unión (join token) de un administrador (manager) desde un nodo administrador (manager node) existente es docker swarm join-token manager.

Supongamos que el comando de unión para un nodo administrador (manager node) es similar a este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Observa que la estructura del comando es la misma que al unirse como trabajador (worker), pero el token es diferente. El token para unirse como nodo administrador (manager node) es único y otorga privilegios más altos.

Para este laboratorio, nuevamente simularemos el proceso de unión en nuestro entorno de una sola máquina virtual (VM) utilizando un token de administrador (manager) de marcador de posición y 127.0.0.1 como la dirección IP del administrador (manager).

Ejecuta el siguiente comando para simular la unión al swarm como administrador (manager):

docker swarm join --token SWMTKN-1-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0987654321fedcba 127.0.0.1:2377

Deberías ver una salida que indique que el nodo está intentando unirse al swarm. En un swarm real de múltiples nodos, si la unión es exitosa, verías un mensaje como "This node joined a swarm as a manager."

Comprender y utilizar la opción (flag) --availability al unirse

En este paso, exploraremos la opción (flag) --availability, que se puede utilizar al unir un nodo a un Docker Swarm. La opción (flag) --availability controla si un nodo está disponible para la programación de tareas. Esto es especialmente útil para gestionar el mantenimiento de un nodo o para sacar temporalmente un nodo del servicio sin eliminarlo del swarm.

La opción (flag) --availability puede tomar uno de tres valores:

  • active: El nodo está disponible para la programación de tareas. Este es el estado predeterminado de un nodo recién unido.
  • pause: El nodo no se le asignarán nuevas tareas, pero las tareas existentes seguirán ejecutándose.
  • drain: El nodo no se le asignarán nuevas tareas, y las tareas existentes se detendrán y se reprogramarán en otros nodos disponibles.

Al unir un nodo, puedes especificar su disponibilidad inicial. Por ejemplo, para unir un nodo como trabajador (worker) con su disponibilidad establecida en drain, utilizarías un comando como este:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain --advertise-addr <THIS_NODE_IP> <MANAGER_IP>:2377

Para este laboratorio, simularemos la unión de un nodo con la opción (flag) --availability drain. Nuevamente, usaremos un token de marcador de posición y 127.0.0.1 como la dirección IP del administrador (manager) en nuestro entorno de una sola máquina virtual (VM).

Ejecuta el siguiente comando para simular la unión al swarm con la disponibilidad establecida en drain:

docker swarm join --token SWMTKN-1-abcdefghijklmnopqrstuvwxyz-1234567890abcdef --availability drain 127.0.0.1:2377

Deberías ver una salida que indique que el nodo está intentando unirse. En un swarm real, el nodo se uniría con su disponibilidad establecida en drain, lo que significa que no se le programarían nuevas tareas y las tareas existentes se moverían.

Resumen

En este laboratorio, aprendimos cómo utilizar el comando docker swarm join para agregar nodos a un Docker Swarm existente. Exploramos el proceso de unir un nodo como trabajador (worker), comprendiendo el papel del token de unión (join token), la dirección del administrador (manager) y la opción (flag) --advertise-addr. También examinamos cómo unir un nodo como administrador (manager), lo cual requiere un token de unión (join token) diferente obtenido del nodo administrador (manager node). Finalmente, aprendimos sobre la opción (flag) --availability y cómo se puede utilizar durante el proceso de unión para controlar la disponibilidad inicial de un nodo dentro del swarm.