Swarm es una arquitectura simple y poderosa que se puede usar a escala para distribuir cargas de trabajo y crear réplicas de servicios apropiados.

Swarm fue desarrollado para administrar contenedores que se ejecutan en Docker en un clúster. En este artículo, se explicará cómo instalar una distribución de Docker Swarm que consta de dos trabajadores y dos nodos de administrador en el servidor Pardus.

Al preparar las instrucciones, se utilizaron los documentos de instalación publicados oficialmente por Docker. Una instalación típica de Swarm tiene múltiples servidores en dos grupos principales. Esta situación, que es válida incluso para las instalaciones más básicas, se muestra en la siguiente figura;

Construcción general de Docker Swarm
Figura 1: Estructura general de Docker Swarm

Como puede verse en la figura, Swarm consta de servidores que se ejecutan en dos grupos principales. Un grupo se hizo cargo de las actividades administrativas, mientras que el otro grupo asumió la tarea de ejecutar las cargas de trabajo. Las siguientes secciones de este documento describirán la instalación de los siguientes componentes, que son suficientes para una instalación mínima.

Figura 2: Componentes que se instalarán en este estudio

Preparándose para instalar Docker y Swarm

En esta configuración, no se utilizará un servidor DNS y, en consecuencia, se crearán relaciones IP/nombre de máquina en el archivo de hosts locales. Se supone que los servidores que se utilizarán en la instalación (físicos o virtuales, o se pueden utilizar otras direcciones IP) se configuran de la siguiente manera;

Dirección IP Nombre de la máquina

192.168.100.10 gerente01 192.168.100.11 gerente02 192.168.100.12 trabajador01 192.168.100.13 trabajador02

Si es necesario cambiar los nombres de las máquinas más tarde, el nombre se puede cambiar con el siguiente comando:

usuario@equipo:~$ sudo hostnamectl set-hostname

En este punto /etc/hosts Es importante que el nombre recién dado coincida con la dirección IP de la máquina en el archivo. Luego, es posible que la máquina deba reiniciarse según los servicios que se ejecuten en ella. Después de esta etapa, las máquinas que se utilizarán en swarm deben configurarse de tal manera que puedan resolverse entre sí por su nombre. Para ello cada servidor por separado /etc/hosts los archivos necesitan ser editados. Para este propósito;

usuario@máquina:~$ sudo vi /etc/hosts

El archivo abierto con el comando debe editarse de la siguiente manera.

127.0.0.1 localhost 192.168.100.10 manager01.swarm manager01 192.168.100.11 manager02.swarm manager02 192.168.100.12 trabajador01.swarm trabajador01 192.168.100.13 trabajador02.swarm trabajador02

Para este proceso vieditor usó. Si se desea, se puede utilizar otro editor. Se observa que los recién llegados a Linux generalmente usan el editor nano. En esta etapa, todas las máquinas se encuentran en un estado en el que pueden encontrarse entre sí por su nombre. Esta es una condición necesaria para la comunicación entre los nodos de enjambre.

Instalación Docker-CE

En primer lugar, debe asegurarse de que la máquina en funcionamiento esté actualizada y que algunas bibliotecas utilizadas por Docker estén instaladas. Instalación de Docker de manera más amplia allí Aunque te lo dijimos, no volvería a doler. Para instalacion;

usuario@máquina:~$ sudo apt update usuario@máquina:~$ sudo apt install ca-certificates curl gnupg lsb-release

Se pueden usar comandos. Después de este proceso, si los paquetes proporcionados por la distribución que se ejecuta en los servidores existentes están instalados, deben eliminarse. Para este proceso;

usuario@máquina:~$ sudo apt-get remove docker docker-engine docker.io containerd runc

Usar el comando será suficiente. Luego es necesario introducir las claves GPG del repositorio de paquetes proporcionado por Docker al servidor. Este proceso; 

usuario@máquina:~$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Se puede hacer muy rápidamente usando comandos. Ahora es posible introducir el repositorio Docker al sistema. Para esto;  

usuario@máquina:~$ echo "deb [arch=$(dpkg --print-architecture) firmado-por=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/ linux/debian $(lsb_release -cs) estable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Se puede usar el comando. Ahora el servidor está listo para la instalación de Docker. En esta etapa, será útil actualizar la información del paquete actualizando los repositorios y verificar que los paquetes de Docker provengan del repositorio. Para esto;

usuario@equipo:~$ sudo apt-get update usuario@equipo:~$ apt-cache policy docker-ce

Se pueden usar comandos. Si la dirección del repositorio de Docker apunta al sitio de Docker, la configuración es correcta. Para continuar con la instalación de Docker-CE;

usuario@máquina:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io usuario@máquina:~$ sudo usermod -aG docker ${USUARIO}

Se pueden usar comandos. En esta etapa, Docker está instalado y el usuario actual es docker grubSe ha agregado al sistema, haciéndolo operable en el sistema. Las operaciones descritas hasta ahora deben realizarse en todas las máquinas.

Configuración de enjambre

Primera máquina a configurar gerente01 estarán. Swarm comienza a instalarse con el primer servidor administrador. Se debe hacer una conexión con SSH (también se puede usar la consola directa) y se deben realizar las siguientes operaciones en orden;

user@manager01:~$ sudo docker swarm init --advertise-addr 192.168.100.10 user@manager01:~$ user@manager01:~$ docker swarm join-token manager

Para agregar un administrador a este Swarm, aplicamos la siguiente residencia:

docker swarm join --token SWMTKN-1-5ia7cvius1ms788g1rjn7nvlzjt8sllnbgm0rgo6mffkxjvyb0-d9n5m4meb6gfrs8ittxs2zsi6 192.168.100.10:2377
user@manager01:~$ docker swarm join-token worker

Ahora agregamos trabajador:

docker swarm join --token SWMTKN-1-5ia7cvius1ms788g1rjn7nvlzjt8sllnbgm0rgo6mffkxjvyb0-9ltqct33tewcw8hqsf68mtu71 192.168.100.10:2377

Como puede verse, el primer servidor administrador ha inicializado Swarm y luego se han completado los procesos necesarios para agregar otros servidores administradores y trabajadores a esta nueva estructura. En este punto gerente02 conectarse al servidor;

user@manager02:~$ docker swarm join --token SWMTKN-1-5ia7cvius1ms788g1rjn7nvlzjt8sllnbgm0rgo6mffkxjvyb0-d9n5m4meb6gfrs8ittxs2zsi6 192.168.100.10:2377

Con el comando, también se incluye el servidor de administrador secundario en el sistema. Al realizar las siguientes operaciones en los servidores de trabajo, los componentes del sistema que ejecutarán las cargas de trabajo también se agregarán al sistema;

user@worker01:~$ docker swarm join --token SWMTKN-1-5ia7cvius1ms788g1rjn7nvlzjt8sllnbgm0rgo6mffkxjvyb0-9ltqct33tewcw8hqsf68mtu71 192.168.100.10:2377
user@worker02:~$ docker swarm join --token SWMTKN-1-5ia7cvius1ms788g1rjn7nvlzjt8sllnbgm0rgo6mffkxjvyb0-9ltqct33tewcw8hqsf68mtu71 192.168.100.10:2377

De esta manera, la instalación se completa. En esta etapa, también se requerirán configuraciones detalladas como el equilibrador de carga, el espacio en disco compartido, pero no se incluyen en este documento ya que no son el tema de este artículo. Para verificar que el sistema está configurado correctamente, conéctese nuevamente al servidor manager01;

user@manager01:~$ docker node ls ID              HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS  ENGINE VERSION h00bd7pqahxoz2hu8zqzg73y3 *  manager01  Ready   Active     Leader      20.10.12 zckfz7r1ou7k8ao9vq3brdviy   manager02  Ready   Active     Reachable    20.10.12 p7ke2f97bhwmpgj098e1xaw5p   worker01  Ready   Active             20.10.12 1gwvqwqqmqv4te4oy7cym5o3p   worker02  Ready   Active             20.10.12

Es posible ver el estado activo de los servidores Swarm con el comando.

CEmONC

Swarm es una arquitectura simple pero poderosa que se puede usar para escalar para distribuir cargas de trabajo y crear réplicas de servicios apropiados. Es una estructura segura y flexible para uso de equipos de trabajo cerrados.