GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar y configurar el modo Docker Swarm en CentOS 7 / RHEL 7

El modo Docker Swarm es una herramienta de agrupación y orquestación de contenedores para administrar el host Docker. El modo Docker Swarm es la parte nativa del motor Docker. Significa que no tiene que instalar nada excepto el motor Docker porque el modo de enjambre Docker es parte del motor Docker.

El modo de enjambre de Docker se introduce en Docker 1.12. Algunos de los beneficios clave del modo de enjambre de Docker son la reparación automática del contenedor , equilibrio de carga , escala vertical de contenedores y reducir la escala , descubrimiento de servicios y actualizaciones continuas . En el último par de artículos hemos discutido los siguientes temas

  • Cómo instalar Docker en CentOS 7
  • Cómo crear imágenes de contenedores de Docker con Dockerfile

En este artículo, explicaremos cómo instalar y configurar el modo Docker Swarm en CentOS 7.x/RHEL 7.x. Para la demostración, utilizaré 3 CentOS 7.x. o RHEL 7.x Servidores en los que instalaré docker engine. De los cuales dos servidores actuarán como Docker Engine o nodo trabajador y uno actuará como gerente . En mi caso, estoy usando lo siguiente:

  • dkmanager.example.com (172.168.10.70):actuará como administrador que administrará el motor de Docker o los hosts o el nodo de trabajo y también funcionará como motor de Docker.
  •  workernode1.example.com (172.168.10.80):actuará como motor Docker o Worker Node
  • workernode2.example.com (172.168.10.90):actuará como motor Docker o Worker Node

Actualice las siguientes líneas en el archivo /etc/hosts en todos los servidores

172.168.10.70    dkmanager.example.com   dkmanager172.168.10.80    nodotrabajador1.ejemplo.com         nodotrabajador1172.168.10.90   nodotrabajador2.ejemplo.com         nodotrabajador2

Paso:1 Instale Docker Engine en todos los hosts

Primero configure el repositorio de la ventana acoplable y luego ejecútelo debajo del comando en todos los hosts.

[[email protected] ~]# yum install yum-utils –y[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/ docker-ce.repo[[email protected] ~]# yum install docker-ce docker-ce-cli containerd.io –y[[email protected] ~]# systemctl start docker[[email protected] ~]# systemctl enable docker 

Repita los pasos anteriores para el nodo trabajador 1 y el nodo trabajador 2

Nota:en el momento de escribir este artículo, Docker versión 1.13 estaba disponible.

Paso:2 Abrir puertos de cortafuegos en los nodos de administrador y trabajador

Abra los siguientes puertos en el cortafuegos del sistema operativo en Docker Manager usando los siguientes comandos

[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=2376/tcpsuccess[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=2377/tcpsuccess[ [correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=7946/tcpsuccess[[email protected]ager ~]# firewall-cmd --permanent --add-port=7946/udpsuccess[[correo electrónico protegido ] ~]# firewall-cmd --permanent --add-port=4789/udpsuccess[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#

Reinicie el servicio de la ventana acoplable en el administrador de la ventana acoplable

[[email protected] ~]# systemctl reiniciar docker

Abra los siguientes puertos en cada nodo trabajador y reinicie el servicio docker

~]# firewall-cmd --permanent --add-port=2376/tcp~]# firewall-cmd --permanent  --add-port=7946/tcp~]# firewall-cmd --permanente -- add-port=7946/udp~]#  firewall-cmd --permanent --add-port=4789/udp~]# firewall-cmd --permanent --add-port=80/tcp~]#  firewall-cmd - -recargar~]#  systemctl reiniciar ventana acoplable

Paso:3 Inicialice el enjambre o el clúster usando el comando 'docker swarm init'

Ejecute el siguiente comando desde el nodo administrador (dkmanager) para inicializar el clúster.

[[email protected] ~]# docker swarm init --advertise-addr 172.168.10.70

Este comando hará que nuestro nodo sea un nodo administrador y también publicitamos la dirección IP del administrador en el comando anterior para que el nodo esclavo o trabajador pueda unirse al clúster.

Ejecute el siguiente comando para verificar el estado del administrador y ver la lista de nodos en su clúster

[[email protected] ~]# docker node lsID                           HOSTNAME               STATUS  DISPONIBILIDAD  MANAGER STATUSn64oy2sml1w188ps109mai67b *  dkmanager.example.com  Ready   Active      

También podemos usar la “información de la ventana acoplable Comando para verificar el estado del enjambre

Paso:3 Agregar nodos trabajadores al enjambre o clúster

Para agregar nodos de trabajo al enjambre o clúster, ejecute el comando que obtenemos cuando inicializamos el enjambre. El comando de muestra se muestra en el paso 3

[[email protected] ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Este nodo se unió a un swarm ~[c[email]proteted]worker[c[email]proteted. ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Este nodo se unió a un enjambre como trabajador.[[email protected] ~]#

Verifique el estado del nodo usando el comando "docker node ls ” del administrador de ventanas acoplables

En este momento, nuestro clúster o modo de enjambre de Docker está en funcionamiento con dos nodos trabajadores. En el siguiente paso veremos cómo definir un servicio.

Paso:4 Lanzamiento del servicio en modo Docker Swarm

En el modo de enjambre de Docker, los contenedores se reemplazan con la palabra tareas y las tareas (o contenedores) se inician y se implementan como servicio y Supongamos que quiero crear un servicio con el nombre "servidor web" con cinco contenedores y quiero asegurarme de que el estado deseado de los contenedores dentro del servicio sea cinco.

Ejecute los siguientes comandos solo desde Docker Manager.

[[email protected] ~]# docker service create -p 80:80 --name webserver --replicas 5 httpd7hqezhyak8jbt8idkkke8wizi[[email protected] ~]#

El comando anterior creará un servicio con el nombre "servidor web", en el que el estado deseado de los contenedores o la tarea es 5 y los contenedores se iniciarán desde la imagen acoplable "httpd “. Los contenedores se implementarán en los nodos del clúster, es decir, dkmanager , nodotrabajador1 y workernode2

Enumere el servicio Docker con el siguiente comando

[[email protected] ~]# docker service lsID            NOMBRE       MODO        RÉPLICAS  IMAGE7hqezhyak8jb  servidor web  replicado  5/5       httpd:latest[[email protected] ~]#

Ejecute el siguiente comando para ver el estado de su servicio "servidor web"

[[email protected] ~]# docker service ps webserver

Según el resultado anterior, podemos ver que los contenedores se implementan en los nodos del clúster, incluido el nodo administrador. Ahora podemos acceder a la página web desde cualquier nodo trabajador y Docker Manager usando las siguientes URL:

http://172.168.10.70 o  http://172.168.10.80 o http://172.168.10.90

Paso:5 Ahora pruebe la recuperación automática del contenedor

La autocuración de contenedores es la característica importante del modo de enjambre docker. Como sugiere el nombre, si algo sale mal con el contenedor, el administrador se asegurará de que se estén ejecutando al menos 5 contenedores para el servicio "servidor web". Eliminemos el contenedor de workernode2 y veamos si se lanza un nuevo contenedor o no.

[[correo electrónico protegido] ~]# docker ps[[correo electrónico protegido] ~]# docker rm a9c3d2172670 -f

Ahora verifique el Servicio desde el administrador de la ventana acoplable y vea si se lanza un nuevo contenedor o no

[[email protected] ~]# docker service ps webserver

Según el resultado anterior, podemos ver que se lanza un nuevo contenedor en el nodo dkmanager porque se eliminó uno de los contenedores en workernode2

Paso:6 Escalar hacia arriba y hacia abajo los contenedores asociados a un Servicio

En el modo de enjambre de Docker podemos escalar hacia arriba y hacia abajo contenedores o tareas. Aumentemos los contenedores a 7 para el servicio 'servidor web

[[email protected] ~]# docker service scale webserver=7webserver escalado a 7[[email protected] ~]#

Verifique el estado del servicio nuevamente con los siguientes comandos

Reduzcamos la escala del contenedor a 4 para el servidor web del servicio

[[email protected] ~]# docker service scale webserver=4webserver escalado a 4[[email protected] ~]#

Verifique el Servicio nuevamente con los comandos debajo

Eso es todo por este artículo. Espero que tenga una idea de cómo instalar y configurar el modo Docker Swarm en CentOS 7.x y RHEL 7.x. Por favor, no dude en compartir sus comentarios y opiniones 🙂


Cent OS
  1. Cómo instalar y configurar R en el sistema RHEL 8/CentOS 8 Linux

  2. Cómo instalar Docker en CentOS 7 / RHEL 7

  3. Cómo instalar y configurar docker en Rocky Linux/Centos 8

  4. CentOS/RHEL 7:Cómo instalar y configurar telnet

  5. Cómo instalar y configurar Samba en CentOS/RHEL

Cómo instalar y configurar un Docker Swarm Cluster en CentOS 8

Cómo instalar y configurar el servidor VNC en CentOS 7 / RHEL 7

Cómo instalar y configurar Docker Swarm en CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Cómo instalar y configurar Jenkins en CentOS 8 / RHEL 8

Cómo instalar y configurar MariaDB en CentOS/RHEL 7

Cómo instalar y configurar el servidor VNC en CentOS/RHEL 8