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管理页面的显示情况见下图(2):
手动触发流水线后,流水线任务始终卡在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
相关产品推荐
相关产品推荐

