GitLab CI/CD 作业缓存(cache)是加速 CI/CD 流水线(Pipeline)执行的重要手段,缓存可以配置使用远端对象存储。本文分享如何将新一代高性能分布式存储系统配置为 GitLab CI/CD 作业的缓存存储对象。
关于 RustFS
RustFS 是国内研发团队开源的一款兼容 S3 的分布式存储系统,用 Rust 编写,经过实测,性能优于 MinIO,能够平替 MinIO。RustFS 支持二进制、Docker 的安装方式。本文直接使用 RustFS 官方文档中二进制的安装方式进行了安装。直接执行如下命令:
curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
执行成功后可以用默认用户名和密码(均为 rustfsadmin)通过 localhost:9000进行登录:
GitLab 安装本文直接安装了 GitLab JH 版本,在官网下载安装页面根据对应的 OS 进行安装即可,然后用默认用户名和密码登录即可:
在 GitLab 中配置 RustFS在 RustFS 上创建 Bucket在 RustFS 控制台首页,点击创建存储桶,输入存储桶名称即可创建成功:
在 Runner 中配置 RustFS在 Runner 的配置文件中,添加如下内容:
[runners.cache]
MaxUploadedArchiveSize = 0
Type = "s3"
Path = "rustfs"
Shared = false
[runners.cache.s3]
ServerAddress = "12.34.56.78:9000"
AccessKey = "RUSTFS_AccessKey"
SecretKey = "RUSTFS_SecretKey"
BucketName = "job-cache"
BucketLocation = "cn-east-1"
Insecure = true
然后,创建几个 CI/CD 作业,作业内容如下:
test-job:
stage: build
tags:
- rustfs
cache:
- key:
files:
- 3.txt
paths:
- rustfs/
- key:
files:
- 4.txt
paths:
- rustfs/
script:
- cat rustfs/3.txt
- cat rustfs/4.txt
触发流水线,可以看到对应的日志:
在 RustFS 上查看配置的 Bucket job-cache 中是否有数据:
可以看到有数据产生。证明 GitLab 使用了配置的 RustFS bucket。