【问题标题】:What is the recommended way of load balancing a multi-master/multi-slave Jenkins setup负载平衡多主/多从 Jenkins 设置的推荐方法是什么
【发布时间】:2011-07-29 20:09:33
【问题描述】:

我想设置一个 N-master x M-slave Jenkins 构建/执行农场。

我想允许多个项目运行他们自己的 Jenkins 主服务器,每个项目都将其构建分发到同一个 Jenkins 从属池中。

所以每个slave都会有单独配置的工作区等等。

在从属服务器之间对作业进行负载平衡的推荐方法是什么? 也就是说,如果 Master 1 在 Slave 1 上启动了一项工作,而 Master 2 来运行一项工作,我希望它选择一个除了 1 之外的从机来运行该工作。

推荐的设置方法是什么?

【问题讨论】:

    标签: hudson jenkins


    【解决方案1】:

    有几种方法可以做到这一点。您可以创建作业以在任何打开的执行程序上运行。执行者是 Jenkins 运行作业的对象。假设 Jenkins 的每个实例都有一个 executor,如果一个 master 在 Slave1 上执行某些东西,它将占用一个 executor。因此,当 master 2 尝试运行某些东西时,它将在 Slave2(或任何其他可用的执行程序)上运行它,因为 Slave1 很忙。

    这取决于两件事:

    1. 所有作业都可以在任何可用的机器/执行器上运行
    2. 每个 Jenkins 都有一个执行者。

    Jenkins 确实尽可能地管理负载,但我建议为机器上的每个可用内核设置一个执行程序,这样您的机器就不会被关闭,而让 Jenkins 处理它们实际运行的位置。您甚至可以将作业绑定到特定的机器。

    祝你好运。

    【讨论】:

    • 听起来很明智......我们正在建立一个由 4 或 5 台从机组成的初始池,这足以测试这种方法,我会在它被检查出来时报告。谢谢!
    • 您还可以通过限制项目的运行位置来强制执行此操作。即 Salve A & B 是 Unix 机器(标有“Unix”名称),C 和 D 是 Windows 机器(标有“Windows”名称)。在您的项目中,您可以强制它仅构建在“Unix”从属设备上,这会将其限制为 A 和 B。
    • @puug 这是真的,但我相信他希望工作更加灵活。
    • 正确。我不希望项目必须关心他们的工作在哪里执行,我们将只有一个永久的基本相同的奴隶池,而不是只有一个主人并让每个人都提交工作,这会更容易有几个原因允许各个项目拥有自己的主 jenkins 服务器,并且只需(一次)将其设置为指向所有从机。一些短暂的网络问题阻止我们测试此设置......仍在通过那些第一个......
    • 你解释了可以做什么,但没有具体说明如何做......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多