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

K8s环境GitLab备份工具配置求助:无法访问源桶与Minio目标

解决GitLab backup-utility双S3存储访问问题

1. 修正s3cmd多配置的使用方式

你的.s3cfg配置格式正确,但s3cmd默认仅读取[default]段配置,要访问自定义存储段,必须在命令中指定--config-section参数:

  • 查看Rados-Gateway(源)的桶:
    s3cmd --config-section source ls
    
  • 查看Minio(目标)的桶:
    s3cmd --config-section target ls
    

若需默认优先访问某一存储,可将对应配置移至[default]段,另一存储保留自定义段即可。

2. 配置backup-utility适配双S3存储

backup-utility需要分别读取**GitLab源存储(Rados-Gateway)和备份目标(Minio)**的配置,推荐以下两种配置方式:

方式一:环境变量传递配置

启动GitLab工具容器时,传入两类环境变量:

  • 源存储(Rados-Gateway)配置:对应GitLab原本的S3存储参数(Helm部署的GitLab通常已通过配置注入工具容器):
    # 示例环境变量
    S3_ENDPOINT=s3.xxx.xxx:80
    S3_ACCESS_KEY_ID=xxx
    S3_SECRET_ACCESS_KEY=xxx
    S3_REGION=us-east-1
    S3_USE_SSL=false
    
  • 备份目标(Minio)配置:以BACKUP_S3_为前缀,指定备份数据的目标地址:
    # 示例环境变量
    BACKUP_S3_ENDPOINT=file01.xxx.xxx:80
    BACKUP_S3_ACCESS_KEY_ID=xxx
    BACKUP_S3_SECRET_ACCESS_KEY=xxx
    BACKUP_S3_BUCKET_NAME=your-backup-bucket
    BACKUP_S3_REGION=us-east-1
    BACKUP_S3_USE_SSL=false
    

方式二:修改gitlab.rb配置文件

在工具容器内的/etc/gitlab/gitlab.rb中同时配置源存储和备份目标:

# 源存储(Rados-Gateway)配置
gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['connection'] = {
  'provider' => 'AWS',
  'endpoint' => 'http://s3.xxx.xxx:80',
  'aws_access_key_id' => 'xxx',
  'aws_secret_access_key' => 'xxx',
  'region' => 'us-east-1',
  'path_style' => true
}
# 各对象存储桶配置(需与RGW中实际桶名一致)
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'gitlab-artifacts-bucket'
gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'gitlab-uploads-bucket'
# ... 其他桶配置(registry/lfs/packages等)

# 备份目标(Minio)配置
gitlab_rails['backup_upload_connection'] = {
  'provider' => 'AWS',
  'endpoint' => 'http://file01.xxx.xxx:80',
  'aws_access_key_id' => 'xxx',
  'aws_secret_access_key' => 'xxx',
  'region' => 'us-east-1',
  'path_style' => true
}
gitlab_rails['backup_upload_remote_directory'] = 'your-backup-bucket'

配置完成后,重新生成配置并生效:

gitlab-ctl reconfigure

3. 排查桶不存在的核心问题

先通过s3cmd确认Rados-Gateway上确实存在报错中提到的桶:

s3cmd --config-section source ls
  • 若桶不存在:说明GitLab未自动创建桶,需手动创建缺失的桶,例如:
    s3cmd --config-section source mb s3://gitlab-registry-bucket
    
  • 若桶存在但backup-utility仍报错:检查工具容器到Rados-Gateway的网络连通性,例如:
    curl http://s3.xxx.xxx:80
    

内容的提问来源于stack exchange,提问作者Löppinator

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:26:01