Tengo un host con HAProxy ejecutándose como contenedor docker usando docker compose . Quiero escalar horizontalmente nuestro HAProxy para que esté altamente disponible en varios hosts.
Leí algunos tutoriales con keepalived, pero eso se hace en el host y con el servidor HAProxy instalado como host y no en el contenedor docker.
¿Es posible implementar HAProxy de alta disponibilidad de forma dockerizada?
(Entiendo que tengo una configuración virtualizada)
Puede ejecutar un HAProxy y un Keepalived en un contenedor con el proceso principal. Docker proporciona --privileged param, por lo que Keepalived puede obtener el VIP (IP virtual) de esta manera en un contenedor.
Acerca de cómo ejecutar varios procesos en un contenedor, puede consultar los documentos: contenedor de servicios múltiples
Después de iniciar Haproxy & Keepalived en los nodos, VIP puede desplazarse entre estos nodos. Con el mismo haproxy.cfg, puede acceder al servicio HAProxy con VIP. Para que pueda obtener el servicio HAProxy de alta disponibilidad.
Acerca de cómo ejecutar HAProxy & Keepalived en un contenedor, hay una imagen que puede probar: docker haproxy-keepalived