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。