cómo maneja Docker la alta disponibilidad

cómo maneja Docker la alta disponibilidad

Viniendo de un entorno VMware, mi proceso fue el siguiente:

  1. Múltiples máquinas Docker (enjambre), montan los mismos almacenes de datos NFS
  2. Se implementa un contenedor (por ejemplo, Maria dB) en el enjambre Docker
  3. Si un nodo del enjambre falla, el servicio aún se ejecuta en los otros nodos

Así que monté/var/lib/docker/volumenesen un recurso compartido NFS, en varias máquinas Docker e intenté crear un enjambre. Pero finalmente descubrí que si varias máquinas Docker montan el mismo almacén de datos NFS, el servicio Docker solo se puede iniciar en uno de los nodos.

Entonces, supongo que mi pregunta es: ¿cómo puedo crear un enjambre con el mismo servicio ejecutándose en varios nodos y los datos se guardan en un recurso compartido NFS?

Por supuesto, es muy probable que todavía no haya entendido completamente la idea de cómo funciona un enjambre Docker, y estoy viendo esto desde un ángulo equivocado.

Respuesta1

Correcto, no desea compartir nada en /var/lib/docker, que son datos y configuraciones paraese motor en un solo servidor.

En un enjambre, agrega nodos al enjambre, como administradores o trabajadores, y los administradores replican la base de datos de consenso de balsa que almacena la configuración y el estado del enjambre.

Luego, crea servicios que tienen una o más réplicas de la misma imagen de contenedor, lanzadas en varios nodos según los requisitos y la disponibilidad.

Para las bases de datos, se trata de datos persistentes (las bases de datos y los registros de cada instancia de base de datos). Eso tiene que ver con Docker Volumes (donde almacena datos persistentes) y específicamente qué controlador de volumen elige. El valor predeterminado simplemente almacena el volumen de esa réplica de servicio (contenedor) en el nodo en el que se está ejecutando actualmente. Si desea que el contenedor de la base de datos pueda fallar y activarse en un nuevo nodo automáticamente (una de las características de un orquestador de contenedores), necesita usar un controlador de volumen diferente que sea "consciente del enjambre" y sepa cómo asegurarse de que El montaje NFS se coloca en el nodo correcto para estar listo para la réplica de servicio correcta.

Puedes consultarRayos REXque actúa como una capa intermedia para administrar los volúmenes en el almacenamiento externo (y tiene sus propios controladores para el tipo de backend) o mire ellista completa en Docker Store.

información relacionada