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

GitLab流水线卡在pending状态 已注册Runner未分配问题求助

问题描述

我已通过如下命令注册gitlab-runner:

sudo gitlab-runner register \
    --non-interactive \
    --url "https://gitlab.com/" \
    --registration-token "########" \
    --executor "docker+machine" \
    --docker-image "docker:stable"\
    --description "docker-runner" \
    --run-untagged="true" \
    --locked="false" \
    --access-level="not_protected"

随后我执行了sudo gitlab-runner verify命令,返回结果如下:

sudo gitlab-runner verify
Runtime platform            arch=amd64 os=linux pid=7162 revision=4b9e985a version=14.4.0
Running in system-mode.
                                                   
Verifying runner... is alive    runner=pD2Prt75

项目级Runner管理页面的显示情况见下图(1):
项目级Runner页面截图
组级Runner管理页面的显示情况见下图(2):
组级Runner页面截图

手动触发流水线后,流水线任务始终卡在pending状态,没有可用的Runner被分配来执行任务。


解决方案

  • 检查docker+machine执行器依赖配置:该执行器需要依赖docker-machine组件动态分配执行节点,先执行docker-machine ls确认机器实例可以正常创建和连接,常见故障点包括云服务商身份凭据配置错误、安全组/网络策略限制导致节点创建失败、docker-machine版本和GitLab Runner版本不兼容。
  • 检查Job标签匹配规则:你注册Runner时开启了run-untagged=true允许执行无标签任务,但如果你的.gitlab-ci.yml中对应Job配置了tags字段,需要确认Runner已配置对应标签才会被匹配调度。
  • 检查Runner并发配置:打开GitLab Runner配置文件/etc/gitlab-runner/config.toml,确认全局concurrent参数和对应Runner块的limit参数数值不为0,否则会没有可用的执行槽处理任务,同时检查check_interval参数是否配置合理,避免Runner拉取任务频率过低。
  • 检查Runner关联权限:确认你注册的Runner已正确绑定到目标项目/组,若使用的是组级Runner,需要确认目标子项目开启了组级Runner使用权限;若同时开启了共享Runner,检查项目CI/CD设置中是否开启了「禁用共享Runner」选项。
  • 查看Runner运行日志定位具体问题:执行journalctl -u gitlab-runner -f实时查看Runner运行日志,触发流水线后查看日志是否返回任务拉取失败、权限不足、资源配额不足类报错,可直接定位根因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:01