使用共享从属池的多个Jenkins Masters

时间:2014-07-06 19:31:12

标签: jenkins hudson jenkins-plugins

我正在尝试为一个大型组织扩展Jenkins。有没有办法让多个Jenkins主人共享一个从属池?例如,如果我有200个Jenkins Masters并且我希望它们共享50个Linux从属设备。

也就是说,假设每个从站只有1个执行器,如果主站A向从站提交作业并且它在从站1上运行,如果主站B向从站池提交作业,它将尝试在一个从站上运行其他自由奴隶,因为奴隶1已被占领。

我知道如果我将从属设备配置为每个主设备有一个新的工作空间和执行器,则多个主设备可以共享一个从设备。但是,我希望能够将slave设置一次,而不是让slave.jar在每个master的slave上运行。

Cloudbees Op Center似乎提供此功能,但正在寻找使用开源版本执行此操作的方法。如果没有,你认为延伸Jenkins有这个功能有多难?我有Java开发经验,并且在Jenkins插件开发方面做了一些工作。

谢谢,

3 个答案:

答案 0 :(得分:9)

正如您所指出的那样,在主人之间共享奴隶并不难,只需设置多个工作空间,每个主人都会安装它自己的奴隶罐。诀窍是正确分享资源。

一个这样的资源管理器是Apache Mesos。存在Jenkins Mesos plugin,可以在托管集群上创建从属服务器。

这种方法很新,Ebay在博客上发表了关于他们如何使用Mesos进化Jenkins设置的内容:

希望这有帮助。

答案 1 :(得分:2)

Open Stack开发了Gearman Plugin来处理多个主设备共享从设备。

答案 2 :(得分:1)

如果是我,我会为奴隶设置一个云插件的所有主人。例如,您可以安装kubernetes pluginnomad plugin并将所有主服务器连接到相同的kubernetes或nomad集群。 NomadKubernetes将负责资源管理,主服务器只会将作业提交到共享资源池。这个概念可以很容易地应用于其他云提供商,如AWS,但如果你只是想从头开始为你的jenkins大师设置一个本地资源池,那么这个概念是最简单的选择。