Cómo configurar un Docker Swarm Cluster en Ubuntu 16.04 VPS o servidor dedicado

Docker Machine es una herramienta que ofrece soluciones mediante la implementación de un clúster de Docker que se ejecuta en una máquina local o una plataforma en la nube. Puede usar Docker Swarm para mejorar el alto rendimiento al asignarlo a diferentes hosts Docker en un clúster.


La función de clúster es una característica esencial para una alta disponibilidad. Permite al usuario administrar clústeres en lo que se conoce como administrador de clúster de enjambre. Esto permite al usuario aumentar el número de instancias de contenedor para una sola aplicación..

En este caso, usaremos Docker 1.12, que no requiere un servicio de descubrimiento externo, ya que viene con un almacén de valores de clave de memoria incorporado para este propósito. Intentaremos configurar el clúster Docker Swarm en Ubuntu versión 16.04.

Para comenzar, necesitará:

  • Conocimiento de Docker y Ubuntu versión 16.04
  • Al menos dos nodos con Docker instalado.
  • Una dirección IP configurada en el nodo de trabajo y el nodo de administrador.

Echemos un vistazo a los nodos

Docker Clusters consta de dos partes principales:

Nodos de administrador: Se ocupan de la gestión de clústeres, incluido el mantenimiento del estado de los clústeres, la preparación de servicios y el mantenimiento de puntos finales en modo enjambre (HTTP API). Una característica clave en el quórum del administrador que almacena datos críticos sobre el clúster Swarm.

Nodos de trabajo: Estos ejecutan contenedores. No están involucrados en las decisiones de programación. Un nodo de trabajador debe tener no menos de un nodo de administrador. Es posible actualizar un nodo trabajador a un nodo Administrador cuando este último se encuentra en mantenimiento.

Antes de comenzar, asegúrese de que su sistema de repositorio esté actualizado. Use el siguiente comando para actualizarlo:

sudo apt-get update -y && sudo apt-get upgrade -y

Una vez que su sistema se actualiza con el sistema de repositorio actual, reinicie su máquina para aplicar estas actualizaciones.

Paso 1: Instalación de Docker

Instale la máquina Docker en cada uno de los nodos. Dado que Docker Swarm no existe en el modo predeterminado de Ubuntu versión 16.04 predeterminado, primero debe ejecutarlo.

Ejecute el siguiente comando para instalar los paquetes necesarios:

sudo apt-get install apt-transport-https software-properties-common ca-certificados -y

No olvide incluir la clave GPG para la aplicación de su Docker:

wget https://download.docker.com/linux/ubuntu/gpg && sudo apt-key agregar gpg

Además, incluya el repositorio Docker Swarm y luego actualice el sistema:

sudo echo "deb [arch = amd64]
https://download.docker.com/linux/ubuntu xenial stable" >>
/etc/apt/sources.list
sudo apt-get update -y

Por último, use el siguiente comando para instalar el motor Docker:

sudo apt-get install docker-ce -y

Una vez que se realiza la instalación del motor Docker, ejecute el Docker y déjelo funcionar dentro del tiempo de arranque:

sudo systemctl start docker && sudo systemctl habilitar docker

En su modo predeterminado, Docker daemon solo puede ejecutarse como usuario root del sistema, por lo que otros usuarios no pueden acceder a él a menos que usen sudo. Para ejecutar su Docker sin sudo, debe crear un grupo uniforme conocido como docker y luego agregar la cantidad de usuarios que desee. Ejecute el siguiente comando para que el proceso sea exitoso:

sudo groupadd docker && sudo usermod -aG docker dockeruser

Cierre la sesión del sistema y luego inicie sesión para actualizar su membresía. Ejecute el comando individualmente para cada nodo.

Paso 2: configurar el firewall

Un clúster específico debe tener al menos un nodo que actúe como un nodo Administrador, pero para un proceso fluido, se deben usar tres administradores. Para este tutorial, tomemos el primer nodo como administrador de Enjambre, mientras que los dos nodos restantes representarán los nodos de trabajo.

A continuación, debe abrir los puertos de red en estos nodos para formar parte de un clúster que hará que la aplicación funcione correctamente. Por lo tanto, el uso del firewall UFW permite el acceso a los siguientes puertos 80, 2377, 2376, 2376, 4789 y 7946. Luego ejecute el siguiente comando:

sudo ufw permite 2376 / tcp && sudo ufw permite 7946 / udp &&
sudo ufw permite 7946 / tcp && sudo ufw permite 80 / tcp &&
sudo ufw permite 2377 / tcp && sudo ufw permite 4789 / udp

Ahora, vuelva a cargar el firewall y configúrelo para que se inicie una vez que se inicie:

sudo ufw reload && sudo ufw enable

Reinicie su sistema Docker para aplicar las nuevas reglas:

sudo systemctl reiniciar docker

Paso 3: Creación del Docker Cluster

En este caso, hemos decidido que nuestro administrador de clúster será el nodo 1, así que inicie sesión en su nodo de la siguiente manera:

docker-machine ssh nodo-1

Después de ejecutar este símbolo del sistema, el sistema cambiará para mostrar que ha iniciado sesión en ese nodo. Para identificar el nodo como el administrador de Swarm, ejecute el siguiente comando:

root @ node-1: ˜ # docker swarm init –advertise-addr node_ip_address

En este caso, nope_ip_address indica la dirección IP del nodo.

La salida debería verse así:

Para agregar un trabajador a este enjambre, ejecute el siguiente comando:

docker swarm join –token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377

Para agregar un administrador a este enjambre, ejecute ‘docker swarm join-token manager’ y siga las instrucciones.

Este token será útil para agregar nodos al clúster de enjambre en el siguiente proceso. La máquina Docker se unirá al grupo de enjambres en función del token proporcionado al comando.

Ahora, continúe y verifique el estado del nodo del administrador escribiendo el comando a continuación:

información del acoplador

Verifique si la salida se parece a esto:

Contenedores: 0
Corriendo: 0
Pausado: 0
Detenido: 0
Imágenes: 0
Versión del servidor: 17.09.0-ce
Controlador de almacenamiento: overlay2
Sistema de archivos de respaldo: extfs
Soporta d_type: true
Diferencia de superposición nativa: verdadero
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: iwjtf6u951g7rpx6ugkty3ksa
Es gerente: cierto
ClusterID: fo24c1dvp7ent771rhrjhplnu
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.103
Direcciones del gerente:
192.168.0.103:2377
Tiempos de ejecución: runc
Tiempo de ejecución predeterminado: runc
Binario Init: docker-init
versión en contenedor: 06b9cb35161009dcb7123345749fef02f7cea8e0
versión runc: 3f2f8b84a77f73d38244dd690525642a72156c64
versión init: 949e6fa
Opciones de seguridad:
Aparición
seccomp
Perfil: predeterminado
Versión de Kernel: 4.4.0-45-generic
Sistema operativo: Ubuntu 16.04.1 LTS
OSType: linux
Arquitectura: x86_64
CPU: 1
Memoria total: 992.5MiB
Nombre: Nodo de administrador
ID: R5H4: JL3F: OXVI: NLNY: 76MV: 5FJU: XMVM: SCJG: VIL5: ISG4: YSDZ: KUV4
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/
Experimental: falso
Registros inseguros:
127.0.0.0/8
Restauración en vivo habilitada: falso

Paso 4: Agregar nodos de trabajo al clúster de enjambre

Ahora que el nodo de trabajo está configurado, agréguelo al clúster.

Comience conectándose a nodo-2 desde su máquina local:

$ docker-machine ssh nodo-2

Luego completa el comando con el texto your_swarm_token siendo el token que recibió cuando se creó el clúster, mientras manager_node_ip_address representa la dirección IP del administrador de Swarm:

Una vez que el comando se ejecute con éxito, verá el resultado a continuación:

Cierre sesión en el nodo-2 e inicie sesión en el nodo del administrador y luego ejecute el siguiente comando para enumerar:

docker node ls

El nodo de trabajo debería verse así:

Paso 5: Inicie Servicios en Docker Swarm

Ahora que ha instalado Docker Swarm con éxito, es hora de probar el contenedor y ver cómo lo maneja Swarm Manager.

Entonces, en su Nodo de Administrador, configure un servicio web con el siguiente comando:

servicio docker create –name webserver -p 80:80 httpd

En este comando, tenemos la intención de asignar el puerto 80 en el contenedor al puerto 80 en el clúster para obtener acceso completo al modo predeterminado en el servidor Apache.

Verifique que el servicio se esté ejecutando escribiendo este comando:

servicio de estibador ls

Debería ver una salida como esta:

ID NOMBRE MODO REPLICAS PUERTOS DE IMAGEN
nnt7i1lipo0h servidor web replicado 0/1 apache: último *: 80->80 / tcp

Paso 6: Prueba del enjambre de Docker

Ahora el servidor Apache debería funcionar sin problemas en el nodo del administrador. Se puede acceder al servidor web dirigiendo su navegador a http: // dirección-nodo_1_ip.

Deberías ver el siguiente resultado:

Ahora el servidor Apache está disponible en cada nodo.

Docker Service puede escalar un servicio. Para probar la alta disponibilidad del servidor, deje de ejecutar Docker en el nodo Trabajador:

sudo systemctl stop docker

Use el siguiente comando para determinar el estado del servidor Apache:

docker service ps servidor web

Se debe iniciar un nuevo contenedor en el nodo del administrador con el siguiente resultado:

ID NOMBRE NODO DE IMAGEN ESTADO DESEADO ACTUAL ERROR ESTADO PUERTOS
ia2qc8a5f5n4 webserver.1 httpd: último Manager-Node Ready Ready Hace 1 segundo
7roily9zpjvq \ _ webserver.1 httpd: último cierre de nodo de trabajo en ejecución hace 15 segundos
r7nzo325cu73 webserver.2 httpd: último Administrador-Nodo en ejecución En ejecución hace 23 minutos

Conclusión

¡Felicidades! Es tan simple como eso. Ahora tiene una configuración completa de Docker Swarm en Ubuntu versión 16.04. Además, ahora sabe cómo hacer varias tareas de administración en Swarm Cluster. Con esta comprensión básica, aún necesita configurar su clúster Docker con varios nodos de administrador, según los requisitos de su administración.

Echa un vistazo a los 3 mejores servicios 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

Artículos de procedimientos relacionados

  • Cómo configurar un Docker Swarm Cluster en un CentOS 7 VPS o servidor dedicado
    experto
  • Cómo implementar contenedores Docker con OpenStack Heat
    experto
  • Cómo instalar y configurar Docker Compose en un Ubuntu 18.04 VPS o servidor dedicado
    novato
  • Cómo configurar SSH para un Ubuntu 16.04 VPS desde un cliente Linux
    novato
  • 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