一尘不染

如何修改Jenkins用于控制从站的负载平衡行为?

jenkins

我们将Jenkins用于我们的CI构建系统。我们还使用“并行构建”,以便詹金斯将独立构建每个变更。这意味着我们经常有5到6个相同作业的构建同时运行。为了适应这一点,我们有4个奴隶,每个奴隶都有12个执行者。

问题在于,詹金斯并没有真正在其奴隶之间实现“负载平衡”。它尝试在先前建立在相同的从属服务器上构建作业(大概是为了减少从源代码控制同步的时间)。这是一个问题,因为詹金斯将在同一个从属服务器上(或更可能在两个从属服务器之间)构建我们构建的所有6个实例。一台构建机器陷入瘫痪,运行非常缓慢,而其他机器则处于闲置状态。

是否有插件或其他东西会改变Jenkins用于控制其奴隶的负载平衡行为?


阅读 317

收藏
2020-07-25

共1个答案

一尘不染

如果找不到自动执行此功能的插件,请按照以下说明进行操作:

  • 安装节点标签参数插件
  • SLAVE 参数添加到您的工作
  • 限制作业继续运行 ${SLAVE}
  • 添加将执行以下操作的触发器作业:

    • 通过系统Groovy脚本分析负载分布,并决定在哪个节点上开始下一个构建。
    • 通过将适当的值分配给 SLAVE 参数,使用Parametertized Trigger插件在该节点上调度构建。 __

为了分析负载分配,您需要安装Groovy插件并熟悉Jenkins Main ModuleAPI。这是一些有用的初始指针。

2020-07-25