Cómo crear un cluster de contenedores con Docker Swarm
2021-11-11 21:00:11 Author: thehackerway.com(查看原文) 阅读量:34 收藏

Demostración en vídeo de este post.

Kubernetes no es la única alternativa que se encuentra disponible a la hora de crear clusters de contenedores y gestonionar cuestiones tan importantes como el escalado y la disponibilidad, una alternativa sencilla pero muy potente es Docker Swarm. Se trata de un orquestador de contenedores Docker que viene integrado en cualquier instalación de Docker. Además de no tener que instalar ningún componente adicional, Swarm se caracteriza por permitir la gestión completa del enjambre desde línea de comandos utilizando instrucciones sencillas y fáciles de memorizar, siguiendo la misma dinámica del cliente de Docker para la gestión de otros componentes básicos como redes, volúmenes, imágenes, etc.
Algunas de las características que hacen que sea una solución interesante se listan a continuación:

  • Gestión del enjambre descentralizada: Cualquier nodo con el rol de “manager” puede realizar las operaciones administrativas sobre el cluster y dichas acciones se sincronizarán en todos los nodos y otros managers. Tiene gestión automática de conflictos por medio de bloqueos en las operaciones lo que impide que dos managers ejecuten operaciones sobre los mismos objetos del cluster al tiempo, esto a efectos prácticos significa que los objetos del cluster no se corromperán debido a la concurrencia.
  • Diseño basado en el estado deseado: Igual que ocurre con Kubernetes, Docker Swarm permite la definición de un “estado deseado” para declarar el número de replicas adecuado que se deben ejecutar en los nodos y es capaz de escalar de forma automática para conseguir dicho estado deseado.
  • Balanceo de carga: Cuenta con mecanismos para el balanceo de carga y “routing mesh”. Si un cliente realiza una petición a un nodo y éste no tiene un contenedor en ejecución, uno de los managers se encarga de realizar el enrutamiento adecuado a otro nodo que sí será capaz de atender a la petición del cliente.
  • Seguro por defecto: Todas las conexiones entre managers y nodos (workers) se realizan utilizando mTLS. El cifrado se realiza utilizando una CA compartida en todos los nodos y que se genera de forma automática en el momento en el que se crea el enjambre. El administrador también tiene la posibilidad de indicar su propia CA si hace falta.
  • Rolling Updates: Es posible cambiar la imagen de un servicio en caliente. Si por el motivo que sea se quiere actualizar la imagen base de uno de los servicios en ejecución, es posible hacerlo sin tirar el servicio en todos los nodos, en su lugar dicha actualización se realiza nodo a nodo, garantizando la disponibilidad del servicio.

Hay otras características que puedes leer aquí si te interesa.

En primer lugar, la creación del enjambre se llevará a cabo en un sistema que será un manager para el cluster, es decir, que tendrá la posibilidad de ejecutar labores administrativas. Una vez creado, las otras máquinas tendrán la posibilidad de unirse como nodos “worker”, es decir, instancias de Docker que lo único que harán será levantar los contenedores que los managers establecen en forma de “servicios”.

A partir de este punto, cualquier instancia de Docker se podrá unir al cluster con el rol de “worker” o “manager” en función del token utilizado tal como se indica en el mensaje que aparece después de crear el cluster.

Desde cualquiera de los nodos “manager” se realizará la gestión del cluster, por ejemplo se pueden crear servicios, generar tokens para que otros nodos manager se puedan unir, se pueden gestionar los nodos “worker”, entre otras cosas.

En la imagen anterior se pueden apreciar algunas de las operaciones típicas que se suelen ejecutar desde un manager, como se puede ver son comandos sencillos y directos, fáciles aprender y que están integrados en el cliente de Docker por lo que resulta especialmente interesante para aprender sobre cómo funciona un orquestador antes de entrar en las complejidades de Kubernetes.

Para que veas con un poco más de detalle el funcionamiento de Docker Swarm te recomiendo que le eches un vistazo al vídeo que aparece al inicio de este post.

Un saludo y Happy Hack!
Adastra.


文章来源: https://thehackerway.com/2021/11/11/como-crear-un-cluster-de-contenedores-con-docker-swarm/
如有侵权请联系:admin#unsafe.sh