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

如何让流水线所有任务仅从多个活跃Runner中选择一个执行?

实现GitLab流水线所有任务使用单个Runner的方案

以下是几种适合新手的实用方案,按需选择:

方案1:用专属标签绑定全局任务

  • 给目标Runner(比如Runner1)设置一个唯一专属标签,比如my-service-runner(在GitLab的Runner配置页面操作)
  • 在项目的.gitlab-ci.yml中全局配置标签,让所有任务默认使用带该标签的Runner:
    default:
      tags:
        - my-service-runner
    
  • 后续如果要切换到Runner2,只需把标签改成Runner2的专属标签即可,灵活度高。

方案2:设置项目专属Runner

  • 进入GitLab项目的Settings > CI/CD > Runners页面
  • 找到Runner1,设置它为仅关联当前项目(取消共享Runner的关联,或者直接在Runner注册时指定仅该项目)
  • 这样该项目的所有流水线任务只会被这个专属Runner承接,无需修改.gitlab-ci.yml。

方案3:使用Sticky Runner特性(需特定环境支持)

  • 如果你的GitLab是SaaS版本,或者自托管版本配置了session_server,可以在.gitlab-ci.yml中启用sticky属性,让同一个Runner处理整个流水线的所有任务:
    default:
      sticky: true
    
  • 这个特性适合需要保持任务执行环境一致性的场景,但需要Runner端提前配置支持。

内容的提问来源于stack exchange,提问作者Abhishek Uniyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:35:22