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

如何在Kubernetes部署的Gitlab实例中正确配置CI缓存?

问题根因

  • 第一次缓存失效:你自定义覆盖了GitLab Runner的config配置段,原本Helm Chart自动注入的全局缓存配置被覆盖,导致没有配置缓存适配器,出现适配器未注册的报错,缓存只能本地存储无法上传到共享存储。
  • 第二次上传路径错误:你手动补充缓存配置时,没有填写[runners.cache]下的Path参数,你之前正常工作的缓存路径前缀runner-cache就是由该参数控制的,缺失该参数会导致上传路径不符合MinIO的预期,返回400错误。

修正方案

调整你的values.yaml中GitLab Runner的配置,补充正确的Path参数即可:

gitlab-runner:
  runners:
    privileged: true
    config: |
      [[runners]]
        [runners.kubernetes]
        image = "ubuntu:20.04"
        privileged = true
        [runners.cache]
          Type = "s3"
          Path = "runner-cache/"
          Shared = false
          [runners.cache.s3]
            ServerAddress = "minio.domain.com"
            BucketName = "gitlab-runner"
            BucketLocation = "none"
            Insecure = false
        [[runners.kubernetes.volumes.empty_dir]]
          name = "docker-certs"
          mount_path = "/certs/client"
          medium = "Memory"

额外优化建议

如果你不想手动维护完整的Runner配置,可以直接使用GitLab Helm Chart提供的缓存配置参数,不需要直接覆盖整个config段,避免覆盖默认配置:

gitlab-runner:
  runners:
    privileged: true
    cache:
      type: s3
      path: runner-cache/
      shared: false
      s3:
        serverAddress: minio.domain.com
        bucketName: gitlab-runner
        bucketLocation: none
        insecure: false
    config: |
      [[runners]]
        [runners.kubernetes]
        image = "ubuntu:20.04"
        privileged = true
        [[runners.kubernetes.volumes.empty_dir]]
          name = "docker-certs"
          mount_path = "/certs/client"
          medium = "Memory"

生效验证

修改配置后执行Helm升级命令生效:
helm upgrade -f values.yaml gitlab gitlab/gitlab --version 5.2.3
等待Runner Pod重启完成后重新执行CI任务,缓存上传路径会恢复为带/runner-cache/前缀的正确格式,缓存即可正常上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:18:04