我想设置一个N-master x M-slave Jenkins构建/执行服务器场。
我想允许多个项目运行他们自己的Jenkins主服务器,每个服务器将他们的构建分发到同一个Jenkins从属池中。
因此每个奴隶都将具有单独配置的工作空间等等。
在奴隶之间对作业进行负载均衡的推荐方法是什么? 也就是说,如果Master 1在Slave 1上开始了一项工作,并且Master 2出现了一份工作,我希望它能选择一个非奴隶的奴隶来开展这项工作。
建议的方法是什么?
答案 0 :(得分:1)
有几种方法可以做到这一点。您可以创建作业以在任何打开的执行程序上运行。执行者是詹金斯的工作岗位。假设Jenkins的每个实例都有一个执行程序,如果一个主服务器在Slave1上执行某些操作,那么它将占用一个执行程序。因此,当master 2尝试运行某些东西时,它将在Slave2(或任何其他可用的执行程序)上运行它,因为Slave1正忙。
这取决于两件事:
Jenkins确实尽可能地管理负载,但我建议为机器上的每个核心都配备一个执行程序,这样你的机器就不会被甩掉,让Jenkins处理它们实际运行的地方。您甚至可以将作业绑定到特定的计算机上。
祝你好运。