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

如何通过集群管理项目为Rancher K8s的GitLab Runner配置S3存储

解决GitLab Runner S3缓存配置失败的方法

核心问题分析

你直接在values.yaml.gotmpl中写入明文敏感信息(AccessKey、SecretKey),同时配置结构不符合GitLab集群管理项目的模板规范,导致Chart渲染失败。正确的做法是通过Kubernetes Secret存储敏感凭据,再按模板要求配置Runner缓存。

正确配置步骤

1. 创建存储S3凭据的Kubernetes Secret

在集群中创建Secret,将S3的访问密钥存入其中(替换为实际命名空间和凭据):

kubectl create secret generic gitlab-runner-s3-cache \
  --namespace gitlab-runner \
  --from-literal=accesskey=testUser1 \
  --from-literal=secretkey=testpassword

2. 修改集群管理项目的values.yaml.gotmpl

按照GitLab集群管理项目的模板语法,正确配置Runner缓存,引用上述Secret:

runner:
  config: |
    [[runners]]
      [runners.cache]
        Type = "s3"
        Shared = true
        Path = "runner"
        [runners.cache.s3]
          ServerAddress = "server.home.com"
          BucketName = "test-bucket-1"
          Insecure = true
  env:
    - name: CACHE_S3_ACCESS_KEY
      valueFrom:
        secretKeyRef:
          name: gitlab-runner-s3-cache
          key: accesskey
    - name: CACHE_S3_SECRET_KEY
      valueFrom:
        secretKeyRef:
          name: gitlab-runner-s3-cache
          key: secretkey

3. 验证配置并重新部署

提交修改到集群管理项目仓库,触发流水线重新部署Runner。部署完成后,可通过以下命令检查Runner配置是否生效:

kubectl exec -n gitlab-runner <gitlab-runner-pod-name> -- cat /etc/gitlab-runner/config.toml

关键注意事项

  • 禁止在模板文件中直接写入明文密钥,既存在泄露风险,也会引发模板渲染语法冲突。
  • Insecure: true仅适用于测试环境,生产环境需启用HTTPS并移除该配置。
  • 集群管理项目的values.yaml.gotmpl采用Go模板语法,Runner的核心配置必须放在runner.config下的多行字符串中(用|标识),不能直接嵌套YAML结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:50:15