GitLab Runner 配置分布式缓存MinIO

简介: GitLab Runner 配置分布式缓存MinIO

在GitLab CI/CD中,我们经常用到缓存,将下载的项目依赖包缓存起来,下次自动恢复到工作目录,以此来是实现资源的最大化,加快下载与编译速度。

GitLab Runner默认使用本地缓存,本地的环境是保存在安装GitLab Runner的主机上,如果你是用Docker安装,或者直接使用.rpm或 .deb 安装。这种方式不支持一条流水线跨Runner构建,即有二个依赖缓存的作业,一个作业使用的是A机器上的Runner,另一个作业使用的是B机器上的Runner,这样二个作业的缓存就不通用。这个时候最好的方案是使用分布式缓存,将要缓存的文件上传到分布式缓存平台中,当使用的时候再下载。

GitLab Runner 当前支持三种缓存 s3, gcs, azure,一般我们会选择S3缓存中的MinIO平台,这个是一个开源的分布式缓存,完全兼容S3协议。下面就介绍一下如何安装配置MinIO。

Docker安装MinIO

使用Docker安装MinIO非常的简单,只需要一条命令。

docker run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio1 \
  -v ~/minio/data:/data \
  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  quay.io/minio/minio server /data --console-address ":9001"

MinIO的镜像为 quay.io/minio/minio。暴露的端口为 9000 和9001,其中9000是调用API的端口,9001是Web管理页面的访问端口。

在启动的时候需要指定 root用户名和root用户的密码。

此外为了数据持久化,我们需要挂载一个本地目录来存储数据,这样在移除容器后,数据还会保留在本地。

容器启动成功后,浏览器访问 http://localhost:9001/login 即可看到MinIO的登录页面 如下
在这里插入图片描述

创建Bucket与服务用户

使用账号密码登录MinIO后,(账号与密码都从启动容器的命令中取得),以上面的例子启动,

用户名为AKIAIOSFODNN7EXAMPLE

密码为wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

在MinIO中所有的文件都存储在Buckets中,要存储文件必须先创建一个Bucket。

进入首页后,点击左侧菜单Buckets,在点击按钮 Create Bucket 安装
在这里插入图片描述

填写Bucket名称。

在这里插入图片描述

其他属性在单机部署的情况下不能勾选。所以我们也体验不到,但这已经足够了。

创建Bucket,就进入了Bucket的管理页面,在当前页面,你可以上传文件,上传文件夹,删除文件,下载文件。

要使用API来调用MinIO功能,还需要创建一个服务账户。点击左侧菜单 Service Accounts。

在这里插入图片描述

创建后,注意保存Access Key与Secret Key。

配置GitLab Runner

找到GitLab Runner 的配置文件config.toml。找到要使用的runner。配置runners.cache 配置块

[runners.cache]
  Type = "s3"
  Path = "prefix"
  Shared = false
  [runners.cache.s3]
    ServerAddress = "172.17.0.4:9000"
    AccessKey = "12345678"
    SecretKey = "87654321"
    BucketName = "fizz-minio"
Insecure = true

Type 为s3

Path 缺省值,存储的路径前缀可不填

Shared 是否共享,共享后,缓存可以跨项目,跨机器使用。

ServerAddress 安装MinIO的 IP+端口

AccessKey与SecretKey 从服务用户处得到。

BucketName 创建的Bucket名称。

配置完成后,流水线中的日志将显示将制品上传下载。

如下图

在这里插入图片描述

至此GitLab Runner 配置分布式缓存MinIO 到此结束。

任何东西只要肯钻研都是时间的问题。

相关文章
|
15天前
|
存储 缓存 监控
|
14天前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
33 1
|
1月前
|
Shell Docker 容器
5-17|gitlab的runner什么意思
5-17|gitlab的runner什么意思
|
1月前
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能
|
14天前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
35 0
|
19天前
|
缓存 NoSQL 数据处理
原生php实现redis缓存配置和使用方法
通过上述步骤,你可以在PHP项目中配置并使用Redis作为高性能的缓存解决方案。合理利用Redis的各种数据结构和特性,可以有效提升应用的响应速度和数据处理效率。记得在实际应用中根据具体需求选择合适的缓存策略,如设置合理的过期时间,以避免内存过度消耗。
35 0
消息中间件 缓存 监控
93 0
6-14|gitlab的runner的流水线怎么看
6-14|gitlab的runner的流水线怎么看
|
2月前
|
缓存 NoSQL 测试技术
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
|
2月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
69 0