我目前正在研究将 HAProxy 用作负载均衡器。我发现 HAProxy 本身(而非后端)的 HA 推荐配置涉及使用 keepalived 来建立两个系统都响应的 VIP。这意味着当主服务器在网络上停止活动时,被动 HAProxy 会发送免费 ARP 消息并指示网络将该 VIP 的所有流量发送给它。
这看起来是个不错的解决方案,但它会阻止 HAProxies 的主动-主动负载平衡设置。我很好奇是否有任何方法可以让两个 HAProxies 响应流量并在其中一个发生故障时保持合理的正常运行时间。由 HAProxies 管理的两个 VIP 之间的 DNS 轮询(具有相反的主服务器)似乎是一个合理的解决方案,但我还没有找到任何关于 keepalived 是否可以在一个系统上同时支持两个 VIP 的指导。
糟糕的 MSPaint 图表来说明:
这可能吗?这是一个合理的解决方案吗?您是否见过其他可行的替代解决方案?
编辑: 发帖后我发现了以下内容,表明这是可行的,但建议使用 CLUSTERIP 作为替代方案。我不确定 CLUSTERIP 和 HAProxy 之间的兼容性。