PDF de programación - Docker Swarm - Administrador de sistemas

Imágen de pdf Docker Swarm - Administrador de sistemas

Docker Swarm - Administrador de sistemasgráfica de visualizaciones

Publicado el 19 de Abril del 2019
655 visualizaciones desde el 19 de Abril del 2019
1,7 MB
19 paginas
Creado hace 2a (18/12/2017)
DOCKER SWARM

Administración de Sistemas

UPV/EHU
Julen Gasco Busto

Índice:



1. Introducción, explicación y objetivos

2. Docker(Introducción teórica breve)
3. Docker Swarm

3.1.¿Qué es?
3.2.Nodos

4. Servicios y tareas

4.1.Join
4.2.Node ls
4.3.SSH entre nodos
4.4.Ascenso

5. Autolock

5.1.¿Cómo crear un servicio?
5.2.Docker Service Inspect
5.3.Eliminar Servicios
5.4.Habilitar/Deshabilitar nodos
5.5.¿Qué ocurre si fallan los nodos?

6. Docker y máquinas virtuales

6.1.Vagrant

7. ¿Cómo funciona en una MV?
8. Conclusiones
9. Bibliografía y otras fuentes

Introducción, explicación y objetivos

Págin

a 1

Se ha optado a realizar un proyecto basado en Docker dada su cada vez más reciente popularidad en
cuanto a términos de vitalización, además de ser uno de los puntos clave tratados en la asignatura de
Administración de Sistemas. Si se ha optado por el desarrollo de la funcionalidad de Docker Swarm
es por no haber sido tratada en clase en profundidad.

La razón de este proyecto es aprender a utilizar la funcionalidad Swarm de Docker.
Para ello se emplearán distintos ordenadores y/o máquinas virtuales que se conectarán entre sí
mediante el mismo Swarm.

El propósito principal consiste en iniciar al menos un sistema de tipo Swarm entre los distintos
dispositivos mencionados anteriormente, para después comprobar, mediante el lanzamiento de uno
o varios servicios, como se distribuye la carga de trabajo entre los distintos nodos.

Una vez desarrollados y comprendidos los aspectos básicos de Swarm, se dispondrá a analizar
distintas funcionalidades no tan básicas de funcionamiento que ofrece.

Cuando se hayan realizado todos estos pasos, lo ideal sería comprobar cómo entrelazar uno o más
Swarms probando un funcionamiento conjunto entre todos, lanzando un mismo proceso o servicio
de mayor carga.

Se intentará, en medida de lo posible, emplear la tecnología de Vagrant para automatizar el proceso
de la creación de nodos en cuanto a máquinas virtuales se refiere.

De esta forma, se espera reducir el tiempo que supondría crear de forma manual las máquinas
virtuales necesarias para el desarrollo de este proyecto.

La motivación de este proyecto es aprender a utilizar esta nueva tecnología, con el fin de poder
desarrollar más trabajo en esta línea, al mismo tiempo que se ponen en práctica los distintos
conocimientos obtenidos durante el transcurso de la asignatura de Administración de Sistemas.

Docker

Págin

a 2

Docker es una tecnología de software que automatiza el despliegue de aplicaciones dentro de
contenedores.

Docker utiliza el aislamiento proporcionado por el kernel de Linux (groups, namespaces) para
permitir que contenedores independientes se ejecuten dentro de una sola instancia de Linux,
evitando la sobrecarga de iniciar y mantener varias máquinas virtuales.

Docker Swarm

¿Qué es?

El Swarm de Docker es una de las distintas funcionalidades actualmente ofrecidas por el sistema
Docker.

Para utilizar la modalidad Swarm de Docker es necesario un sistema que tenga una versión de
Docker instalada superior a la 1.12.0
Este es el único requisito solicitado por la aplicación.

Consiste mayormente en el despliegue de varios nodos de dos tipos: Manager (Maestro) y Worker
(Trabajador) que estarán conectados entre sí mediante la propia herramienta de Docker. Estos nodos
pueden estar en el mismo ordenador (mediante máquinas virtuales) o pueden estar en equipos
remotos.

La idea principal tras la modalidad de Docker Swarm es generar un clúster de nodos Docker que
distribuyan entre si la carga que supone la ejecución de un servicio.

El sistema funciona mediante la creación y gestión de distintos nodos distribuidos, cada uno de ellos
tiene un tipo (manager o worker) y una asignación de carga dependiendo de su estado actual.
En Docker Swarm los servicios se distribuyen entre todos los nodos disponibles en ese momento,
reasignando la carga de trabaja casi al instante si por el motivo que sea uno de esos nodos cae o deja
de estar en estado activo.

Además, dada la estructuración de la herramienta, esta permite que las aplicaciones escalen de una
manera rápida y sencilla, ya que Docker Swarm se encarga de gestionarlo todo de manera
automática.

Nodos

Cada nodo es una instancia del mecanismo del Docker participante del Swarm. Se pueden lanzar
uno o más nodos desde un único ordenador físico o un servidor en la nube, pero la distribución
típica consiste en conectar nodos de Docker distribuidos entre varios ordenadores físicos y/o
virtuales.

El primer nodo creado en un Swarm siempre será por defecto un manager.

Los nodos manager, son los que se dedican a la orquestación del Swarm, así como de distribuir las
tareas a los distintos trabajadores que tenga asociados. Son estos nodos también los encargados de

Págin

a 3

gestionar las distintas funciones requeridas para mantener el Swarm en el estado que el usuario
desee.

Los nodos trabajadores son aquellos que reciben y ejecutan las tareas distribuidas por los nodos
manager. Por defecto, los nodos maestros a excepción de todas las tareas mencionadas
anteriormente, también ejecutan los servicios distribuidos como si se tratasen de nodos trabajadores.

Servicios y tareas

Un servicio es una tarea que se va a ejecutar en cualquier tipo de nodo. Es la estructura central del
sistema de Swarm y la herramienta primaria para la interacción del usuario con el enjambre.
Cada vez que se crea un servicio, se especifican los distintos detalles deseados para la ejecución, el
número de réplicas del servicio que se van a lanzar, …

El nodo desde el que se lance la tarea (tiene que ser de tipo manager) se encargará de distribuir la
carga del trabajo entre los distintos nodos trabajadores que tenga asociado.

Inicializar un Docker Swarm

El primer paso a la hora de iniciar un Swarm es ejecutar el comando de Linux:

Págin

a 4

docker Swarm init

De esta sencilla forma ya se habrá inicializado el Swarm. En este momento tan solo se dispone de
un nodo, un manager. Al mismo tiempo de lanzar el comando, si todo ha salido bien, en la terminal
dispondremos de un código similar:

docker swarm join \
--token SWMTKN-1-0nl4b6hh3cpco3v14920a9xm65zrn9aojhpajt8lcnzu73jtw3-
5dxfdb62rplx4vllwyvj900ax \
158.227.216.113:2377

La dirección IP que aparece, variará (evidentemente) dependiendo del dispositivo en el que se
ejecute el comando inicial de creación del enjambre.

Join

Añadir un nodo a un enjambre es muy sencillo, lo único que hay que hacer para unir un nodo
trabajador a un Swarm es copiar y ejecutar el comando proporcionado al crear el manager.

Se requiere introducir este comando (que no cambia mientras el Swarm al que esté vinculado
exista) en todos y cada uno de los nodos que se deseen introducir.
En el caso de este proyecto, así como en el tutorial en el que está basado, se utilizan únicamente tres
nodos (dos trabajadores y un manager) para facilitar la comprensión del documento y agilizar los
distintos procesos a realizar.

Node ls

Una vez se hayan introducido los nodos deseados, se verá utilizar el comando:

docker node ls

Para verificar si todo el Swarm ha sido formado de la manera adecuada y si se dispone de todos los
nodos necesarios.
Por motivos de seguridad, solo un nodo manager puede ejecutar este tipo de comando. Lo nodos
worker son incapaces de visualizar u obtener cualquier tipo de información en lo relativo a otros
trabajadores, aunque estos estén en su misma red.
Una vez se ejecuta el comando, en la terminal se visualiza algo similar a la imagen posterior:

Págin

a 5

En la imagen se puede observar claramente los datos de cada nodo. Nombre de del host, estado y
disponibilidad, así como el estado. De este modo, podemos saber que el nodo U33327 es el
manager y los otros dos trabajadores. Además, se puede observar como todos están activos y
disponibles.
En este caso, al tratarse de ordenadores de la universidad todos tienen un nombre del tipo Uxxxxxx.

SSH entre nodos

La funcionalidad swarm también nos permite una conexión vía SSH desde un módulo a cualquiera
de los otros, siempre y cuando se conozca el nombre de host.
Por lo tanto, desde el manager, se puede conectar remotamente a cualquiera de los nodos. Mientras
que un worker o trabajador no tiene acceso al resto de la información.
Un manager conoce todo, desde los procesos a los distintos módulos del enjambre. Sin embargo, un
trabajador cualquiera, no puede conocer más información, a no ser que sea ascendido a manager.

Ascenso

Se puede ascender en cualquier momento a un nodo trabajador. De esta forma, ese nodo pasaría a
ser un manager, con todo lo que eso conlleva.
Por una red de 5 trabajadores se aconseja tener 2 maestros. El comando de ascenso es:

docker node promote [id]

Análogamente, se puede degradar un nodo con el comando

docker node demote [id]

Págin

a 6

Todos estos comandos deben ser ejecutados desde un nodo manager. Las operaciones de ascenso o
descenso tomarán un corto periodo de tiempo en hacerse operativas.
Autolock

Existe un modo de “guardar” la información del Swarm, para evitar repetir constantemente los
distintos pasos de inicialización. Para ello, a la hora de crear un Swarm, se utilizará de añadido el
parámetro de autolock. De esta forma, se asegura la disponibilidad del Swarm cuando se vuelvan a
arrancar todos los dispositivos que formen parte de él.

Mediante el comando que se puede ver en la imagen:

docker swarm init --autolock

Lo único que se tiene que hacer es habilitar la función autolock al lanzar la inicialización del
Docker Swarm.
Como se observa en la imagen, esta operación devuelve dos códigos. El primero es el que se ha
visto con anterioridad, el comando para añadir nuevos trabajadores al Swarm. El segundo se trata de
la clave que se deberá introducir cada vez que se inicie el Swarm para poder recuperar todos los
datos anteriores.

Págin

a 7

Servicios en Docker Swarm

Los servicios en Docker Swarm son
  • Links de descarga
http://lwp-l.com/pdf15759

Comentarios de: Docker Swarm - Administrador de sistemas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad