Últimas entradas

Orquestación de contenedores con docker swarm

Swarm es un software creado por los programadores de Docker que permite agrupar una serie de hosts de Docker en un clúster y gestionar los clústeresde forma centralizada así como orquestar los contenedores.

Docker Swarm se basa en una arquitectura maestro-esclavo. Cada clúster de Docker está formado al menos por un nodo maestro o manager y nodos esclavos o workers.

El manager de Swarm es responsable de la gestión del clúster y la delegación de tareas, el worker se encarga de ejecutar las unidades de trabajo (tasks o tareas).

Características:

  • Alta disponibilidad – tiene como objetivo no ofrecer tiempo de inactividad ni interrupciones.
  • Balanceo de carga – Asignar los recursos y las solicitudes en otros nodos del clúster automáticamente si falla algún nodo.
  • Descentralizado – varios nodos manager se ejecutan en un entorno de producción; por lo tanto, el clúster nunca depende de un solo nodo manager.
  • Escalabilidad – Con un solo comando de docker, puede escalar o reducir fácilmente los contenedores del clúster.

Haremos unas pruebas tomando como referencia 4 servidores

  • server-1 – IP 10.128.0.2
  • server-2 – IP 10.128.0.3
  • server-3 – IP 10.128.0.4
  • server-4 – IP 10.128.0.5

Los cuales deben de tener la misma versión de docker.

En el servidor de IP 10.128.0.2 ejecutaremos lo siguiente:

docker swarm init --advertise-addr 10.128.0.2
Swarm initialized: current node (slzrvwiz9nvsq00sepv38sgh0) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-0ddef9nfr239nycrahi4ymmw00o2i2lgrsrmcnl7zjt0xmjwhr-5o9ktrwjcs55ctqi5tsm5o3a4 10.128.0.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Para agregar un nodo manager, ejecutamos lo siguiente en el servidor de IP interna 10.128.0.2.

docker swarm join-token manager

En los servidores de IP 10.128.0.3, 10.128.0.4, 10.128.0.5 ejecutamos lo siguiente, para agregarlos como managers.

docker swarm join --token SWMTKN-1-0ddef9nfr239nycrahi4ymmw00o2i2lgrsrmcnl7zjt0xmjwhr-7qke83g1trhnkbbb4znvyjxhg 10.128.0.2:2377

El resultado lo ejecutamos en el nodo que queremos asociar como manager, para agregar nodos worker ejecutamos el siguiente comando.

docker swarm join-token worker

Finalmente podremos ver nuestros nodos, y sus estados con docker node ls

docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
slzrvwiz9nvsq00sepv38sgh0     server-1   Ready     Active         Leader           20.10.6
qkms8p2foe2on2aipzfr5n8fk     server-2   Ready     Active         Reachable        20.10.6
nefbo2xv5tbsrvnozti3dlnxv     server-3   Ready     Active         Reachable        20.10.6
37nfd0y47hy82d64xjbwnfiax *   server-4   Ready     Active         Reachable        20.10.6

Fuente: https://docs.docker.com/engine/swarm/

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *