Cómo configurar un Docker Swarm Cluster en un CentOS 7 VPS o servidor dedicado

Docker Swarm, también conocido como motor Docker en modo enjambre, es una nueva herramienta de agrupación y orquestación para contenedores Docker que se utiliza para administrar un grupo de hosts Docker.


En este artículo, presentamos Docker en Docker 1.12. Permite sumar y restar contenedores en el proceso informático. Hay dos componentes principales de Docker Swarm:

Nodo Gerente: Se ocupa de la administración de tareas de clúster, como la programación de servicios, el mantenimiento del estado de los clústeres y el servicio de puntos finales de modo enjambre de acopladores.

Nodo de trabajador: Se usa para ejecutar el contenedor de clúster.

En este tutorial, entraremos en detalles sobre la instalación y configuración de Docker Swarm Mode en CentOS 7. Para este artículo, utilizaremos tres CentOS 7 para instalar y ejecutar Docker Engine. De estos, dos servidores actuarán como nodo Worker o Docker Engine y el restante será un administrador

Prerrequisitos

En este caso, necesitaremos lo siguiente:

  • Una máquina local instalada con Docker. La máquina puede ejecutarse en Windows, Linux o macOS.
  • Tres servidores con CentOS 7 totalmente instalado. Un servidor será el nodo Administrador mientras que los otros dos servidores serán el nodo Trabajador.
  • Utilizaremos la siguiente dirección IP: 172.168.0.101 para el nodo de administrador, 172.168.0.102 para el nodo de trabajo1 y 172.168.0.103 para el nodo de trabajo2.

Echa un vistazo a estos 3 principales servicios de VPS:

Alojamiento A2

Precio inicial:
$ 5.00


Fiabilidad
9.3


Precios
9.0


Fácil de usar
9.3


Apoyo
9.3


Caracteristicas
9.3

Leer comentarios

Visita A2 Hosting

ScalaHosting

Precio inicial:
$ 12.00


Fiabilidad
9.4


Precios
9.5


Fácil de usar
9.5


Apoyo
9.5


Caracteristicas
9.4

Leer comentarios

Visita ScalaHosting

Hostinger

Precio inicial:
$ 3.95


Fiabilidad
9.3


Precios
9.3


Fácil de usar
9.4


Apoyo
9.4


Caracteristicas
9.2

Leer comentarios

Visita Hostinger

Inicie sesión en https://ecs.console.aliyun.com/?spm=a3c0i.o25424en.a3.13.388d499ep38szx y elija CentOS 7. Una vez que haya iniciado sesión, ejecute el siguiente comando para asegurarse de que el sistema se actualice con el últimos paquetes disponibles:

yum update -y

Empezar

Antes de comenzar el proceso, asegúrese de configurar el archivo / etc / hosts en cada nodo para que sea más fácil comunicarse entre sí utilizando nombres de host.

Use el siguiente comando para actualizar el archivo host:

172.168.0.101dkmanager.example.com dkmanager

172.168.0.102 trabajadornodo1.example.com trabajadornodo1

172.168.0.103 workernode2.example.com workernode2

Guarda el archivo una vez que hayas terminado.

Ahora configure el nombre de host de cada nodo según el archivo de hosts.

Ejecute el siguiente comando para cada nodo.

Nodo administrador:

hostnamectl set-hostname managernode

Trabajador nodo1:

hostnamectl set-hostname workernode1

Trabajador nodo2:

hostnamectl set-hostname workernode2

Paso 1: Instalación de Docker Engine

Ahora, instale la versión de Docker en cada nodo. Configure el sistema de repositorio de Docker y ejecute el siguiente comando en todos los nombres de host.

Haga lo mismo para los dos servidores del nodo Trabajador.

Paso 2: configurar el firewall en cada nodo

El siguiente paso es abrir los puertos en el firewall para asegurarse de que el clúster de enjambre funciona correctamente.

Continúe y ejecute el siguiente comando en todos los nodos:

Reinicie el servicio acoplable:

Abra los puertos de firewall a continuación en cada nodo de trabajo y luego reinicie el servicio de docker:

Paso 3: inicia el enjambre o grupo

Inicializó el enjambre en su nodo Manager. Para hacer esto, ejecuta el siguiente comando.

docker swarm init –advertise-addr 192.168.0.101

Asegúrese de ver el resultado a continuación:

El token generado por el resultado anterior ayuda a unir el nodo administrador y los nodos trabajadores

Verifique el estado del administrador con el siguiente comando:

información del acoplador

La salida debería verse así:

Contenedores: 0
Corriendo: 0
Pausado: 0
Detenido: 0
Imágenes: 0
Versión del servidor: 17.12.0-ce
Controlador de almacenamiento: devicemapper
Nombre del grupo: docker-253: 0-618740-pool
Pool Blocksize: 65.54kB
Tamaño base del dispositivo: 10.74GB
Sistema de archivos de respaldo: xfs
Sincronización Udev compatible: verdadero
Archivo de datos: / dev / loop0
Archivo de metadatos: / dev / loop1
Archivo de bucle de datos: / var / lib / docker / devicemapper / devicemapper / data
Archivo de bucle de metadatos: / var / lib / docker / devicemapper / devicemapper / metadata
Espacio de datos utilizado: 11.8 MB
Total de espacio de datos: 107,4 GB
Espacio de datos disponible: 3.817 GB
Espacio de metadatos utilizado: 581.6kB
Espacio total de metadatos: 2.147GB
Espacio de metadatos disponible: 2.147 GB
Espacio libre mínimo de piscina delgada: 10,74 GB
Eliminación diferida habilitada: verdadero
Eliminación diferida habilitada: verdadero
Recuento de dispositivos eliminados diferidos: 0
Versión de biblioteca: 1.02.140-RHEL7 (2017-05-03)
Controlador de registro: archivo json
Cgroup Driver: cgroupfs
Complementos
Volumen: local
Red: superposición nula del host del puente macvlan
Registro: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Enjambre: activo
NodeID: viwovkb0bk0kxlk98r78apopo
Es gerente: cierto
ClusterID: ttauawqrc8mmd0feluhcr1b0d
Gerentes: 1
Nodos: 1
Orquestación:
Límite de retención del historial de tareas: 5
Balsa:
Intervalo de instantánea: 10000
Número de instantáneas antiguas para conservar: 0
Tick ​​Heartbeat: 1
Marca de elección: 3
Despachador:
Período de latidos: 5 segundos
Configuración de CA:
Duración de vencimiento: 3 meses
Rotación forzada: 0
Gerentes de bloqueo automático: falso
Rotación de la raíz en curso: falso
Dirección de nodo: 192.168.0.102
Direcciones del gerente:
192.168.0.102:2377
Tiempos de ejecución: runc
Tiempo de ejecución predeterminado: runc
Binario Init: docker-init
versión en contenedor: 89623f28b87a6004d4b785663257362d1658a729
versión runc: b2567b37d7b75eb4cf325b77297b140ea686ce8f
versión init: 949e6fa
Opciones de seguridad:
seccomp
Perfil: predeterminado
Versión de Kernel: 3.10.0-693.11.1.el7.x86_64
Sistema operativo: CentOS Linux 7 (Core)
OSType: linux
Arquitectura: x86_64
CPU: 1
Memoria total: 1.102GiB
Nombre: centOS-7
ID: DN4N: BHHJ: 6DJ7: SZPG: FJJC: XP6T: 23R4: CESK: E5PO: SJ6B: BOST: HZQ5
Dir. Raíz de Docker: / var / lib / docker
Modo de depuración (cliente): falso
Modo de depuración (servidor): falso
Registro: https://index.docker.io/v1/
Etiquetas:
Experimental: falso
Registros inseguros:
127.0.0.0/8
Restauración en vivo habilitada: falso

Debería ver la lista completa de nodos presentes en su clúster utilizando el siguiente comando:

docker node ls

La salida debería ser así:

Paso 4: Agregar nodos de trabajo al nodo Administrador

Agregue los nodos de trabajo al servicio de enjambre Docker con el siguiente comando:

unión de enjambre acoplable –token SWMTKN-1
3793hvb71g0a6ubkgq8zgk9w99hlusajtmj5aqr3n2wrhzzf8z-1s38lymnir13hhso1qxt5pqru 192.168.0.101:2377

La salida debe ser:

Para verificar el estado de los nodos, ejecute el siguiente comando:

docker node ls

Si el proceso es exitoso, debería obtener el resultado que se muestra a continuación:

En caso de que desee recuperar un token de unión perdido, ejecute el siguiente comando:

docker swarm join-token manager -q

En este momento, el modo de enjambre Docker debería ejecutarse correctamente con dos nodos de trabajo.

Paso 5: Configure el Servicio en modo Enjambre

Ahora inicie el servicio en modo Enjambre. En este caso, lanzaremos un servicio web en modo Docker Swarm usando los tres contenedores.

Ejecute el siguiente comando solo desde Docker Manager:

docker service create -p 80:80 –name webservice –replicas 3 httpd

La salida debería verse así:

Para verificar el estado de su servicio, ejecute el siguiente comando:

servicio de estibador ls

La salida será:

Con el resultado anterior, los contenedores se implementan correctamente en los nodos del clúster. Ahora, es más fácil iniciar sesión en la página web desde cualquier nodo utilizando las siguientes direcciones de navegador web.

http: // 172.168. 0,101
http: //172.168. 0,102
http: //172.168. 0,103

Paso 6: Prueba de la autocuración del contenedor

El modo de enjambre Docker contiene características únicas como la autocuración del contenedor. En caso de que un contenedor no funcione, el administrador se asegurará de que los contenedores se reinicien automáticamente en ese nodo en particular.

Para probar si el proceso está funcionando, eliminemos un contenedor de workernode2 y descubramos si se inicia un nuevo contenedor o no.

Ejecute el siguiente comando para enumerar la ID del contenedor en Workernode2:

docker ps

La salida debería ser así:

Ahora, ejecute el siguiente comando para eliminar el contenedor 9b01b0a55cb7:

docker rm 9b01b0a55cb7 -f

Ahora compruebe si se implementa un nuevo contenedor desde el nodo Administrador:

servicio de docker servicio web ps

A estas alturas, puede darse cuenta de que un contenedor ha fallado e inmediatamente, otro contenedor se ha iniciado en workernode2:

Paso 7: escalar contenedores hacia arriba y hacia abajo para el servicio

En el Docker Cluster, es posible escalar contenedores hacia arriba y hacia abajo. En este caso, intentemos escalar los contenedores a 5 para el servicio.

[root @ dkmanager ~] # servidor web de escala de servicio de acoplador = 5
servidor web escalado a 5
[root @ dkmanager ~] #

Verifique nuevamente el estado del servicio utilizando el siguiente comando:

Ahora, intentemos reducir el contenedor a 2 para el servicio:

[root @ dkmanager ~] # servidor web de escala de servicio de acoplador = 2
servidor web escalado a 2
[root @ dkmanager ~] #

Verifique si el proceso se realiza con el siguiente comando:

Ahora, debe tener un clúster Docker Swarm totalmente configurado en CentOS7.

Conclusión

Ahí tienes. Así de fácil es configurar Docker Swarm con la ayuda del nuevo modo Swarm y el motor Docker. Es importante tener en cuenta que, una vez realizada la configuración, asegúrese de proteger los servidores proporcionando una capa adicional de seguridad. Un buen comienzo es una característica de seguridad con firewall y capacidades de monitoreo.

Echa un vistazo a los 3 principales servicios de alojamiento de servidores dedicados:

Alojamiento A2

Precio inicial:
$ 99.59


Fiabilidad
9.3


Precios
9.0


Fácil de usar
9.3


Apoyo
9.3


Caracteristicas
9.3

Leer comentarios

Visita A2 Hosting

FastComet

Precio inicial:
$ 139.00


Fiabilidad
9,7


Precios
9.5


Fácil de usar
9,7


Apoyo
9,7


Caracteristicas
9.6

Leer comentarios

Visita FastComet

Hostwinds

Precio inicial:
$ 99.00


Fiabilidad
9.3


Precios
9.2


Fácil de usar
9.2


Apoyo
9.3


Caracteristicas
9.2

Leer comentarios

Visita Hostwinds

Artículos de procedimientos relacionados

  • Cómo implementar contenedores Docker con OpenStack Heat
    experto
  • Cómo instalar Django en un CentOS 7 VPS o servidor dedicado
    intermedio
  • Cómo configurar un Docker Swarm Cluster en Ubuntu 16.04 VPS o servidor dedicado
    experto
  • Instalar en pc & Configure el servidor web Caddy en un CentOS 7 VPS
    intermedio
  • Cómo configurar SSH en un Ubuntu 16.04 VPS o servidor dedicado
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me