Cómo instalar y configurar Docker Swarm Cluster en Ubuntu

Configurar anfitriones

Docker Swarm es una herramienta que le permite implementar un clúster de Docker Hosts. Es una herramienta de agrupación en clústeres nativa proporcionada por Docker que brinda alta disponibilidad y alto rendimiento para su aplicación al distribuirla a todos los nodos dentro del clúster de enjambre.

En este tutorial, le mostraremos paso a paso cómo instalar Docker Swarm y configurar un Swarm Cluster utilizando Ubuntu 16.04. Crearemos un cluster ubuntu utilizando 2 máquinas de servidor Ubuntu, 1 nodo de servidor como administrador y 1 otro como trabajador. Y luego intentaremos implementar el servicio Nginx simple en el clúster de enjambre.

Requisitos previos

  • 2 o más – Servidor Ubuntu 16.04
    • gerente 132.92.41.4
    • trabajador01 132.92.41.5
  • Privilegios de raíz

¿Qué haremos?

  1. Configurar hosts para swarm linux
  2. Instalar Docker-ce
  3. Inicialización de Docker Swarm en Ubuntu
  4. Implementación del primer servicio en el clúster de enjambre

Paso 1: Configurar hosts

Antes de instalar cualquier paquete para el clúster de enjambre, configuraremos el archivo de hosts en ambos servidores.

Ejecute los siguientes comandos en todos los servidores, ‘manager’ y ‘worker01’.

Edite el archivo ‘/etc/hosts’ usando el editor vim.

vim /etc/hosts

Agregue la siguiente configuración al final de la línea.

132.92.41.4    manager
132.92.41.5    worker01

Guardar y Salir.

Ahora haga ping a todos los nodos usando ‘nombre de host’ en lugar de usar la dirección IP.

ping -c 3 manager
ping -c 3 worker01

Y asegúrese de que esté funcionando en todos los hosts.

Configurar anfitriones

Paso 2 – Instalar Docker-ce

Para crear el ubuntu docker swarm, debemos instalar Docker en todos los nodos del servidor. En este paso, instalaremos Docker-ce Community Edition tanto en el nodo administrador como en el trabajador01.

Instale las dependencias de Docker-ce usando el comando apt a continuación.

sudo apt install apt-transport-https software-properties-common ca-certificates -y

Ahora agregue la clave Docker y el repositorio Docker-ce a nuestros servidores.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

Actualice el repositorio e instale los paquetes Docker-ce usando el comando apt install a continuación.

sudo apt update
sudo apt install docker-ce -y

Una vez completada la instalación, inicie el servicio docker y habilítelo para que se inicie cada vez que se inicia el sistema.

systemctl start docker
systemctl enable docker

Docker-ce ahora está instalado en nuestros nodos de servidor.

A continuación, configuraremos Docker para que se ejecute como un usuario normal o no root.

Cree un nuevo usuario llamado ‘mohammad’ y agréguelo al grupo ‘docker’.

useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad

Ahora inicie sesión en el usuario ‘mohammad’ y ejecute el comando docker hello-world como se muestra a continuación.

su - mohammad
docker run hello-world

Y obtendrá el hola mundo de la ventana acoplable como se muestra a continuación.

Instalar Docker-ce

Paso 3: Instalar Docker Swarm y crear el clúster de enjambre

En este paso, vamos a instalar docker swarm y a continuación, crearemos el Docker Swarm Cluster de nuestros nodos. Para crear los nodos de clúster de enjambre, debemos inicializar el modo de enjambre en el nodo ‘administrador’ y luego unir el nodo ‘worker01’ al cluster ubuntu.

Inicialice el modo Docker Swarm ejecutando el siguiente comando docker en el nodo ‘administrador’.

docker swarm init --advertise-addr 132.92.41.4

Y obtendrá el resultado como se muestra a continuación.

Crear el clúster de enjambre

Verá que el nodo ‘administrador’ ha generado un ‘token de unión’.

A continuación, debemos agregar el nodo ‘worker01’ al ‘administrador’ del clúster. Y para hacer eso, necesitamos un ‘token de unión’ del nodo ‘administrador’ del clúster, así que asegúrese de escribirlo en su nota.

Ejecute el comando docker swarm join en el nodo ‘worker01’.

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

Ahora obtendrá el resultado como se muestra a continuación.

unión de enjambre docker

El nodo ‘worker01’ se ha unido al clúster.

Compruébelo ejecutando el siguiente comando en el nodo ‘administrador’.

docker node ls

Ahora verá que el nodo ‘worker01’ se ha unido al docker swarm ubuntu.

el nodo se ha unido al clúster de enjambre

Se ha creado el Swarm Cluster.

Paso 4: Implementación del primer servicio en el clúster de enjambre

En este paso, crearemos e implementaremos nuestro primer servicio en el clúster de enjambre. Queremos crear un nuevo servidor web Nginx de servicio que se ejecutará en el puerto HTTP predeterminado 80, y luego exponerlo al puerto 8080 en el servidor host, y luego intentar replicar el servicio nginx dentro del clúster de enjambre.

Crear servicio

Cree un nuevo servicio Nginx llamado ‘my-web’ y exponga el puerto HTTP del contenedor al puerto 8080 en el host.

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

Y cuando se cree, verifique usando el comando de servicio docker a continuación.

docker service ls

Y obtendrá el resultado como se muestra a continuación.

crear un servicio

El servicio Nginx se ha creado e implementado en el clúster de enjambre como un servicio denominado ‘mi web’, se basa en Nginx Alpine Linux, expone el puerto HTTP del servicio de contenedor al puerto ‘8080’ en el host y tiene solo 1 réplica.

Réplicas y escala del servicio

Ahora haremos réplicas para el servicio ‘my-web’. Haremos 2 réplicas del servicio ‘my-web’, de modo que se pueda acceder al servicio en los nodos ‘manager’ y ‘worker01’.

Para replicar el servicio ‘my-web’, ejecute el siguiente comando.

docker service scale my-web=2

Y una vez que esté completo, verifique nuevamente usando el comando de servicio docker.

docker service ls

Y ahora el servicio tiene 2 réplicas y está disponible en ambos nodos del swarm cluster.

Réplicas y escala del servicio

Abra su navegador web y escriba la dirección IP del nodo administrador con el puerto 8080.

http://gerente:8080/

Y obtendrá la página predeterminada de Nginx.

Nodo de gestión

A continuación se muestra el resultado del nodo ‘worker01’.

http://trabajador01:8080/

nodo trabajador

Se ha completado la configuración de ubuntu docker swarm y la implementación del servicio Nginx en nuestro Swarm Cluster.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *