Cómo instalar y desplegar un servicio en Docker Swarm

Docker Swarm es uno de los clústeres de contenedores más sencillos de implementar. En cuestión de minutos, puedes tener tu clúster funcionando para lograr alta disponibilidad, tolerancia a fallos y escalabilidad. Una vez que esté en funcionamiento, podrás desplegar contenedores en el clúster y aprovechar al máximo sus ventajas. Por ejemplo, podrías desplegar un servicio que se escala según la demanda que reciba.

En esta guía te mostraré cómo instalar Docker Swarm y desplegar un servicio en el nuevo clúster que pueda escalarse según las necesidades de tu empresa.

Índice de Contenido
  1. Lo que necesitarás
  2. Cómo instalar Docker
  3. Cómo desplegar un servicio en el clúster de Swarm

Lo que necesitarás

En esta demostración, utilizaré un clúster compuesto por un controlador y dos nodos, todos ejecutados en Ubuntu Server 20.04. Si estás utilizando una distribución de Linux diferente, es posible que debas ajustar los pasos de instalación de Docker (pero nada más).

Dicho esto, comencemos a trabajar con Docker Swarm.

Cómo instalar Docker

Lo primero que debemos hacer es instalar Docker. Asegúrate de seguir estos mismos pasos en tu controlador y en los nodos que planees implementar.

Inicia sesión en tu servidor y actualiza "apt" con el siguiente comando:

Los diferentes tipos de buses en los dispositivos electrónicos
sudo apt-get update

A continuación, instala las dependencias necesarias con el siguiente comando:

sudo apt-get install ca-certificates curl gnupg lsb-release -y

Agrega la clave GPG oficial de Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Agrega el repositorio estable de Docker con el siguiente comando:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instala Docker Engine con los siguientes comandos:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Inicia y habilita Docker con el siguiente comando:

sudo systemctl enable --now docker

Agrega tu usuario al grupo "docker" con el siguiente comando:

Cómo entrar al programa de configuración del BIOS en tu computadora
sudo usermod -aG docker $USER

Haz que el sistema reconozca el nuevo grupo con el siguiente comando:

newgrp docker

Repite los pasos anteriores en todos tus nodos.

De vuelta en el controlador de Docker, inicializa Swarm con el siguiente comando:

docker swarm init --advertise-addr SERVIDOR

Donde "SERVIDOR" es la dirección IP del controlador de Docker.

A continuación, se te mostrará el comando de unión que se verá así:

docker swarm join --token SWMTKN-1-46uxtlbe3wrelly1fe5e65p1wdvg95bcjo48izvptpwof62rdo-42yl4jprovhng56sgxmyv7arv 192.168.1.13:2377

Copia ese comando y ejecútalo en todos tus nodos. Una vez que hayas hecho eso, puedes verificar la unión emitiendo el siguiente comando en el controlador:

Entendiendo los permisos de archivos y directorios en UNIX
docker info

Deberías ver una salida similar a esta:

Swarm: active
NodeID: wb44efzwy68x9gek45ee1nbnb
Is Manager: true
ClusterID: vjec4hz1sjj535x9w0mspox87
Managers: 1
Nodes: 3
Default Address Pool: 10.0.0.0/8
SubnetSize: 24
Data Path Port: 4789
Orchestration:
Task History Retention Limit: 5

Cómo desplegar un servicio en el clúster de Swarm

Ahora podemos desplegar un servicio en nuestro clúster de Swarm. Comencemos con algo sencillo y despleguemos un servicio de contenedor NGINX con el que no podamos interactuar. Para ello, ejecuta el siguiente comando en el controlador:

docker service create --name nginx_test nginx

Para verificar el estado del servicio, ejecuta el siguiente comando:

docker service ls

Deberías ver que nuestro servicio NGINX se ha replicado con una salida similar a esta:

zie1n4nm5es3   nginx_test             replicated   1/1                nginx:latest

Nuestro ejemplo anterior solo aprovecha uno de nuestros nodos. ¿Y si queremos implementar ese servicio en los tres nodos? Para eso, nuestro comando sería algo así:

docker service create --replicas 3 --name nginx3nodes nginx

Ejecuta el siguiente comando:

Cómo recuperar una contraseña de BIOS perdida: dos métodos efectivos
docker service ls

Deberías ver que nuestro despliegue "nginx3nodes" se ha replicado en 3 de 3 nodos con la siguiente salida:

y1yu8fq27aab   nginx3nodes              replicated   3/3                nginx:latest

El servicio ahora aprovecha los tres nodos de nuestro clúster. Puedes reducir la escala de ese servicio a 2 nodos con el siguiente comando:

docker service scale nginx3nodes=2

Verifica el estado con:

docker service ls

Ahora deberías ver el servicio NGINX en 2/2 nodos.

Supongamos que tienes cinco nodos en tu clúster. Si deseas ampliar el servicio a los cinco nodos, el comando sería:

docker service scale nginx3nodes=5

Para eliminar el servicio, emite el comando:

Cómo funciona y cómo probar una fuente de alimentación para PC
docker service rm nginx3nodes

Supongamos que quieres actualizar la imagen del contenedor en tu despliegue. Han pasado algunos días desde que se implementó originalmente y quieres asegurarte de que estás utilizando la última imagen de contenedor disponible. Supongamos que "nginx:latest" es una imagen de contenedor actualizada y para actualizar ese servicio con la nueva imagen, emite el siguiente comando:

docker service update --image nginx:latest nginx3nodes

Una nota final, si quieres administrar el clúster de forma más sencilla, despliega Portainer en el controlador con el siguiente comando:

docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Una vez desplegado, ve a http://SERVIDOR:9443 (donde "SERVIDOR" es la dirección IP del servidor). Después de crear un usuario administrador e iniciar sesión, verás Swarm en la navegación izquierda. Haz clic en él para ver tu clúster (Figura A).

Figura A

Cómo instalar y desplegar un servicio en Docker Swarm - Centros de Datos | Imagen 1 Newsmatic

Y eso es básicamente lo fundamental para poner en marcha un Docker Swarm y desplegar un servicio en los nodos.

Cómo diagnosticar y reemplazar una fuente de alimentación defectuosa en tu PC

Suscríbete a "How To Make Tech Work" de Newsmatic en YouTube para recibir los últimos consejos tecnológicos para profesionales de negocios por parte de Jack Wallen.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a Cómo instalar y desplegar un servicio en Docker Swarm , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.