• 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 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的登录页面如下
    image

    创建Bucket与服务用户

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

    用户名为AKIAIOSFODNN7EXAMPLE

    密码为wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

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

    进入首页后,点击左侧菜单Buckets,在点击按钮 Create Bucket 安装

    image

    填写Bucket名称。
    image

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

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

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

    image

    创建后,注意保存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名称。

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

    如下图
    image

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

  • 相关阅读:
    Redis之String
    代码质量管理工具——SonarQube
    XML文件(2)--使用DOM4J示例
    XML文件(1)--使用DOM示例
    Maven之构件
    使用JS,获取URL中指定参数的值
    jQuery导入Eclipse后报错解决方法
    关于MySQL存储过程中遇到的一个错误
    学习MySQL之数据类型(四)
    jmeter直连数据库【转】
  • 原文地址:https://www.cnblogs.com/michaelcjl/p/15942678.html
Copyright © 2020-2023  润新知