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.
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ónicossudo 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 computadorasudo 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 UNIXdocker 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 efectivosdocker 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 PCdocker 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
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 PCSuscrí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