You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级Jenkins Master不中断Slave长时作业,求推荐适用插件

解决Jenkins Master升级时不中断Slave长时作业的插件方案

我刚好之前帮团队解决过类似的头疼问题,确实有几个成熟的插件能完美满足你的需求,不用再纠结阻塞队列的弊端了!

  • Durable Task Plugin
    这是实现你需求的核心基础插件,现在基本是Jenkins的标配组件(如果你的集群还没装,直接去插件市场搜索安装就行)。它的核心能力就是让Slave上的作业在与Master断开连接后继续在本地执行,同时会把作业的输出日志、执行状态都缓存到Slave的本地磁盘上。等Master升级重启完成、重新和Slave建立连接后,Slave会自动把缓存的日志和后续的执行输出同步回Master,你在Master上就能看到完整的作业执行记录,就像Master从来没重启过一样。

  • Jenkins Pipeline Plugin(Pipeline)
    如果你用Pipeline来定义那些耗时的回归测试、集成测试作业,那简直是绝配——Pipeline本身就是基于Durable Task Plugin实现的,天然支持离线作业持续执行。Pipeline会把作业的执行上下文(包括已完成的步骤、当前执行状态)都保存在Slave的工作目录里,Master断开后作业完全不受影响,等Master恢复后,Pipeline会自动续上之前的执行进度,所有日志也会完整同步。而且你还能在Pipeline脚本里显式配置缓存策略,适配不同的长时作业场景。

升级前的小技巧

除了插件,还有几个操作能让整个升级过程更顺畅:

  1. 升级前先把Master切换到**“安静模式”**(路径:Manage Jenkins > Manage Nodes and Clouds),这样新作业不会被调度到Slave,但已经在运行的作业会继续执行。
  2. 提前确认Slave有足够的磁盘空间,避免因为磁盘满导致作业日志缓存失败。
  3. 配置Slave的自动重连机制,让Master重启后Slave能自动恢复连接,不用手动操作。

这样一套操作下来,你就能放心升级Jenkins Master,完全不用等那些耗时几小时的测试作业结束,既不影响测试进度,也能顺利完成Master的版本更新。

内容的提问来源于stack exchange,提问作者Lars Briem

火山引擎 最新活动