You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jenkins优先使用节点空闲执行器再启用空节点?

解决方案

1. 修改Jenkins节点分配策略为「Most Loaded」

Jenkins默认任务分配逻辑可能优先选择空闲节点(即你的备用节点),切换为「Most Loaded」策略后,会优先把任务分配给已有运行任务的节点(只要该节点还有空闲执行器),直到节点的2个执行器被占满,才会启用备用节点或启动新节点。

操作步骤:

  • 进入「Manage Jenkins」→「Configure System」
  • 找到「Cloud」配置下的EC2 Fleet,展开「Advanced」选项
  • 在「Node Selection Strategy」中选择「Most Loaded」
  • 保存配置

这个设置直接解决任务优先跑备用节点的问题,让现有节点的执行器尽可能被填满,避免出现大量单执行器运行的节点。

2. 给备用节点添加专属标签+任务约束

如果修改分配策略无效,可给备用节点设置专属标签(比如jenkins-reserve),再通过规则限制任务仅在非备用节点资源耗尽时才使用备用节点:

  • 在EC2 Fleet的节点模板中,给备用节点添加jenkins-reserve标签
  • 安装「Job Restrictions」插件,设置全局规则:所有任务默认只使用不带jenkins-reserve标签的节点;当这些节点的执行器全部占满时,才允许使用带jenkins-reserve标签的节点
  • 或者在单个任务的「Restrict where this project can be run」选项中,填写!jenkins-reserve,确保任务优先使用非备用节点

3. 用「备用执行器阈值」替代备用节点配置

EC2 Fleet插件本身没有直接设置「备用执行器」的选项,但可以通过以下方式实现类似效果:

  • 将EC2 Fleet的「Number of spare instances to keep warm」设为0
  • 安装「Metrics」插件,监控Jenkins的空闲执行器数量
  • 编写Groovy脚本(通过Jenkins Script Console或定时任务),当空闲执行器数量低于2时,调用EC2 Fleet的API启动新节点
  • 优化VM镜像:预先安装Jenkins agent及依赖工具,将节点启动时间压缩到1分钟内,缓解无备用节点时的任务延迟

4. 调整EC2 Fleet节点终止策略

为避免大量单执行器节点闲置,可设置节点在空闲一段时间后自动终止:

  • 在EC2 Fleet的节点模板中,设置「Idle termination time」为10分钟
  • 勾选「Terminate instances when they are idle」选项

内容的提问来源于stack exchange,提问作者Jamie Briers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 00:05:58