我目前有一个运行Centos 7和Docker的服务器集群,并且我想使用Keepalived在它们之间分配一个 float IP。我已将Keepalived配置为在每个节点上运行一个check命令,该命令仅执行curl --silent --fail localhost:80
以确保HTTP服务器正在侦听。
该Web应用程序正在使用绑定(bind)到端口80的Docker容器和Docker 1.10.3上的--net=host
运行。 Firewalld也被完全禁用。
我遇到的问题是 curl 永远不会成功。如果我将check命令更改为echo ''
或退出0(没有任何网络交互)的任何其他命令,它将正常工作,但是由于某些原因,curl无法正常工作。当我从普通的bash终端运行它时,它很好,并且echo $?
输出0。
我什至不知道如何调试它,因为Keepalived并未提供有关此事的任何文档,并且似乎也没有记录任何有关来自vrrp脚本的错误的信息。
任何帮助或建议,将不胜感激。
最佳答案
原来我使用的是Keepalived的古老版本。从源代码编译最新版本解决了该问题(而不是使用Centos存储库中的二进制文件)