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

GitLab Runner(K8s执行器)Docker连接失败及Kaniko权限问题求助

问题排查与解决方案

环境信息

  • EKS集群版本:v1.21.14-eks-6d3986b
  • GitLab CE镜像:gitlab/gitlab-ce:14.1.8-ce.0
  • GitLab Runner:Helm Chart 0.46.0(对应版本15.5.0)

问题1:Docker-in-Docker无法连接Docker daemon

报错信息

Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

解决步骤

  • 检查.gitlab-ci.yaml的service配置,必须包含docker:dind服务,且镜像版本建议与runner使用的Docker客户端版本匹配,示例:
    services:
      - name: docker:20.10-dind
        command: ["--tls=false"]
    
  • 确认GitLab Runner已开启特权模式:
    • Helm安装时添加参数:--set runner.privileged=true
    • 或在runner的config.toml中配置:privileged = true
  • 验证环境变量DOCKER_HOST是否正确设置,默认应为tcp://docker:2375,若service别名修改,需同步调整该变量
  • 查看runner pod的日志,检查docker:dind容器是否正常启动,排查是否有端口占用、权限拒绝等启动失败日志

问题2:Kaniko推送镜像至Harbor权限不足

报错信息

UNAUTHORIZED: unauthorized to access repository: ops/abcli, action: push

解决步骤

  • 确认Harbor用户权限:登录Harbor后台,检查该用户对ops/abcli仓库是否拥有推送权限(至少为「开发者」角色)
  • 校验auth值生成正确性:
    • 执行命令生成base64编码:echo -n "harbor用户名:harbor密码" | base64,注意用户名使用Harbor登录账号,而非邮箱(除非Harbor配置邮箱登录)
    • 确保Kaniko使用的config.json格式正确:
      {
        "auths": {
          "你的Harbor地址": {
            "auth": "上述生成的base64字符串"
          }
        }
      }
      
  • 检查CI变量传递:若用GitLab CI变量存储auth值,确保变量未被错误掩码,且在Kaniko任务中正确挂载config.json到/kaniko/.docker目录
  • 确认Harbor仓库存在:若ops/abcli仓库未手动创建,需先在Harbor后台创建(Kaniko默认不会自动创建仓库,除非Harbor开启自动创建选项)
  • 校验Harbor地址与镜像标签:Kaniko构建命令中需指定完整镜像路径,例如harbor.example.com/ops/abcli:v1.0,确保地址包含正确的协议(http/https)与端口
  • 若Harbor启用HTTPS:需将Harbor的CA证书挂载到Kaniko容器的/kaniko/ssl/certs目录,避免证书验证失败导致的权限校验异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:55:26