我有一台主机,HAProxy 使用 docker compose 作为 docker 容器运行。我想横向扩展我们的 HAProxy 以使其在多个主机上高度可用。
我阅读了一些关于 keepalived 的教程,但这是在主机上完成的,并且是将 HAProxy 服务器安装为主机,而不是在 docker 容器中。
是否可以以 dockerized 的方式部署高可用的 HAProxy?
(我知道我有一个虚拟化设置)
最佳答案
您可以在具有主进程的容器中运行 HAProxy 和 Keepalived。 Docker提供了--privileged
参数,Keepalived可以通过这种方式获取容器中的VIP(Virtual IP)。
关于如何在一个容器中运行多个进程,可以引用文档:multi-service-container
在您启动 Haproxy & Keepalived
之后,VIP 可以在这些节点之间漂移。使用相同的haproxy.cfg,您可以使用VIP访问HAProxy服务。以便您可以获得高可用的 HAProxy 服务。
关于如何在容器中运行HAProxy & Keepalived
,有一个镜像可以试试:docker haproxy-keepalived
关于dockerized HAProxy+Keepalived 实现 HA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090569/