4

我一直在尝试使用高可用性设置来设置 Enterprise Jenkins。当前的设置包括两个 jenkins master 共享同一个 jenkins home,比如 master1 和 master2,在这两个 master 上安装 jenkins-ha-monitor-1.1-1.1 rpm,比如 monitor1 和 monitor2。使用此设置,至少根据文档,HA 插件应该可以按预期工作。升级和降级脚本与文档中的类似(只是ip和接口不同,方法相同)。IE

降级

ifconfig eth0:2 关闭

用于促销

ifconfig eth0:2 the.floating.ip

现在要正确注册节点,我必须按顺序启动 master1、master2、monitor1 和 monitor2。跟踪两者的日志,我看到当服务以该顺序启动时,它们被两个监控服务正确注册为集群中的节点,并在 jenkins 控制台的 HA 状态 gui 中正确注册。

现在,当 master1 通过发送 KILL 信号被杀死时,monitor2 会识别到这一点并运行升级脚本。但是监视器一直在抛出:

2012 年 10 月 24 日下午 3:47:36 com.cloudbees.jenkins.ha.singleton.HASingleton$3 可疑信息:怀疑集群中的节点故障:jenkins-master-1-285 2012 年 10 月 24 日下午 3:47:39 com.cloudbees.jenkins.ha.singleton.HASingleton$3 可疑信息:怀疑集群中的节点故障:jenkins-master-1-285

连续不断地运行降级脚本。现在由于 master2 通过其提升脚本占用了浮动 ip,而 master1 仍然拥有该 ip,因为降级脚本未运行,因此设置最终会出现两个声称相同 ip 的框。此外,重启master1并没有做任何事情,即master1没有作为辅助节点添加到集群中,monitor1仍然不断吐出上述消息记录,浮动ip不断返回“无法连接”,master2和monitor2显示集群为master2、monitor2 和 monitor1。所以我的问题/问题是双重的 - 为什么 master1 没有被接受回集群?为什么降级脚本没有按应有的方式运行?

另外仅供参考我已经尝试过

詹金斯服务站

在这种情况下,降级脚本会运行,但是当

服务詹金斯开始

在之前停止的主服务器上运行,因为无论是否存在主 jenkins 都会运行升级脚本。在这种情况下,两个监视器注册不同的集群,例如 monitor1 : master1,monitor1 和 monitor2 : master2,monitor2。运行 ifconfig 显示此时两个 master 都占用了浮动 ip。

任何帮助表示赞赏!谢谢!

4

1 回答 1

1

在支持下仍在调查中。最初报告的问题(此处)表明两个节点通信正常,但升级/降级运行不正确——JGroups 中的错误或其在 Jenkins 高可用性中的使用。

But further tests turned up problems with UDP multicast communication, which has been reported for RedHat/CentOS hosts. Work is underway to offer an alternate JGroups stack which does not rely on multicast (or UDP) at all, using the shared $JENKINS_HOME directory to register Jenkins and monitor instances (as TCP address:port records).

于 2012-11-07T16:18:00.317 回答