Introducción a Docker Swarm / Definición

Un enjambre Docker es una de las herramientas disponibles dentro de los contenedores Docker que son una plataforma / herramienta de orquestación de contenedores de código abierto. También se llama la herramienta nativa de agrupación y programación de Docker. Cuando crece el tamaño de los contenedores, se hace muy difícil administrar todo allí, donde es donde entra el papel de Swarm. Ayuda a los desarrolladores y administradores a administrar y establecer un grupo de nodos Docker en forma de un único virtual máquina.

Los conceptos / términos clave utilizados para Docker Swarm

  • Enjambre : un enjambre está formado por muchos sistemas / hosts Docker que se ejecutan en modo enjambre.
  • Swarmkit : un Swarmkit se usa para implementar la capa de orquestación de Docker.
  • Tarea : una tarea consta de comandos y el contenedor que debe ejecutarse dentro del contenedor. El administrador de enjambres distribuye las tareas a los nodos.
  • Nodos : el nodo se puede definir como un motor Docker singular y que participan en el enjambre. Una buena implementación de enjambre de producción es aquella que tiene los nodos acoplados distribuidos distribuidos en muchas máquinas.
  • Servicio : cada vez que se crea un servicio, especifica el contenedor que se debe usar y los comandos que se deben ejecutar dentro del contenedor. Por lo tanto, el servicio es una lista de tareas que deben ejecutarse en el trabajador o en los nodos del administrador.
  • Nodos de administrador : el trabajo de los nodos de administrador es enviar las tareas a los nodos de trabajo. Los nodos del administrador también son responsables de realizar otras funciones, como la administración del clúster y la orquestación.
  • Nodos de trabajo: el trabajo del nodo de trabajo es ingresar las tareas que provienen del nodo de administrador y ejecutarlas. Un nodo de trabajo se instala con agentes que informan las unidades del trabajo asignado a los nodos de administrador.
  • Nodos de líder : sirve como líder para realizar tareas relacionadas con la orquestación.

¿Qué se puede hacer con Docker Swarm?

Swarm es muy útil para los administradores y desarrolladores en un ecosistema Docker. Las siguientes son algunas de las tareas que la ventana acoplable puede lograr:

  • Se puede usar para escalar el número de contenedores.
  • Para establecer la coordinación entre contenedores.
  • Para asignar tareas al clúster de contenedores.
  • Para gestionar el ciclo de vida de los contenedores y también para realizar comprobaciones de estado periódicas.
  • Para cumplir el propósito de implementar las actualizaciones de software entre los contenedores.

Comprensión Docker Swarm / Trabajo

A continuación se muestra el funcionamiento del enjambre Docker, que son los siguientes:

Trabajo de nodos

Como hemos visto, hay dos tipos de nodos, es decir, el gerente y el trabajador. Veamos el funcionamiento de ambos.

Las tareas que manejan los nodos del administrador son: programar los servicios, mantener el estado del clúster y también cumplir con los puntos finales de la API HTTP. Es aconsejable ejecutar múltiples nodos de administrador porque eso lo ayudará a aprovechar las características de tolerancia a fallas del enjambre.

Los nodos de trabajo ejecutan los contenedores y requiere un mínimo de 1 nodo de administrador para funcionar.

Trabajo de servicios

El único propósito de los servicios es implementar una imagen de la aplicación en el enjambre de Docker. Por ejemplo, un Servidor DB, Servidor Web, Servidores HTTP son ejemplos de servicios.

Procesos y términos en servicio:

  • Fallo de la tarea : cuando una tarea falla dentro de un enjambre de acopladores, generalmente no se reinicia. Por lo tanto, el trabajo del orquestador es eliminar esa tarea fallida y reemplazarla con la nueva que está en función del estado del servicio.
  • Opción de servicio : siempre que se crea un servicio, siempre podemos definir un puerto en el que se pueda usar el servicio (para usuarios externos), se pueden aplicar límites de memoria y CPU, se pueden definir políticas de actualización, etc.
  • Servicio pendiente : un servicio pasa a un estado pendiente cuando no hay nodos disponibles actualmente en el enjambre de acopladores para ejecutar la tarea.

Docker Swarm Filters

El enjambre Docker tiene 5 filtros:

  • Afinidad : el objetivo del filtro de afinidad es garantizar que los contenedores se ejecuten en el mismo nodo de red y también define la secuencia en la que se deben ejecutar los contenedores.
  • Puerto : el puerto define un recurso dedicado. Cuando se ejecuta un contenedor en el puerto que no está libre, el contenedor cambiará a los otros nodos que están disponibles.
  • Restricción : cuando se crea un nodo, podemos asignar pares clave-valor con la ayuda de un filtro de restricción.
  • Dependencia : cada vez que hay una dependencia entre los contenedores, los filtros de dependencia programan los del mismo nodo.
  • Salud : si alguno de los nodos está inactivo y no funciona, este filtro no asignará ningún contenedor en él.

Algunos comandos de Docker Swarm:

PropósitoMando
Crear un enjambreDocker enjambre init
Unirse a un enjambreenjambre acoplable \

–Token Token_number \

IP: puerto

Crear un servicio y nombrarloservicio de docker create –name Edu
Eliminar un servicioservicio acoplable eliminar Edu
Servicio de actualizaciónactualización del servicio de acoplador
Supervisión del estado del nododocker node ls

Ventajas y desventajas

Veamos ahora las ventajas y desventajas del enjambre Docker

Ventajas:

  • La implementación es fácil y el modo enjambre viene por defecto con Docker Engine.
  • La instalación es fácil y rápida.
  • La integración de enjambre se puede lograr fácilmente con Docker CLI y Docker compose
  • No se requiere mucha experiencia y el aprendizaje es fácil.

Desventajas

  • Para escalar los servicios, se requiere intervención manual.
  • Está teniendo tolerancia limitada a fallas.
  • No hay funciones más amplias disponibles a partir de ahora.
  • Tiene una comunidad más pequeña en comparación con otras herramientas de orquestación disponibles como Kubernetes.

Conclusión

En este artículo, comenzamos con una descripción general y una definición básicas del enjambre de Docker y también vimos los términos importantes utilizados en la tecnología de enjambre que es parte del ecosistema. Luego, tratamos de comprender el funcionamiento detrás del enjambre Docker y también aprendimos un par de comandos Docker que se usan en modo enjambre.

Artículos recomendados

Esta ha sido una guía de ¿Qué es Docker Swarm ?. Aquí discutimos el concepto, comando, filtros, uso y comprensión de Docker Swarm. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Preguntas de la entrevista de Docker
  2. ¿Qué es cassandra?
  3. Preguntas de la entrevista de microservicios
  4. ¿Qué es jenkins?