Gitlab Runner的分布式缓存实战,终于找到一个看得懂的JVM内存模型了

关于本文

本文目标是为K8S环境的Gitlab Runner准备好分布式缓存,并在pipeline脚本中使用该缓存,因此,在阅读本文前建议您对GitLab CI有一定了解,最好是阅读过甚至编写过pipeline脚本;

关于GitLab Runner

如下图所示,开发者将代码提交到GitLab后,可以触发CI脚本在GitLab Runner上执行,通过编写CI脚本我们可以完成很多使用的功能:编译、构建、生成docker镜像、推送到私有仓库等:

在这里插入图片描述

Gitlab Runner的分布式缓存

  1. 官方文档地址,有关缓存的详情可以参考此文:https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching

  2. 如下是官方的分布式缓存示例(config.toml 文件):

[[runners]]

limit = 10

executor = “docker+machine”

[runners.cache]

Type = “s3”

Path = “path/to/prefix”

Shared = false

[runners.cache.s3]

ServerAddress = “s3.example.com”

AccessKey = “access-key”

SecretKey = “secret-key”

BucketName = “runner”

Insecure = false

  1. 接下来通过实战完成分布式缓存配置;

环境和版本信息

本次实战涉及到多个服务,下面给出它们的版本信息供您参考:

  1. GitLab:Community Edition 13.0.6

  2. GilLab Runner:13.1.0

  3. kubernetes:1.15.3

  4. Harbor:1.1.3

  5. Minio:2020-06-18T02:23:35Z

  6. Helm:2.16.1

部署分布式缓存

  1. minio是兼用S3的分布式缓存,也是官方推荐使用的,如下图:

在这里插入图片描述

  1. minio作为一个独立的服务部署,我将用docker部署在服务器:192.168.50.43

  2. 在服务器上准备两个目录,分别存储minio的配置和文件,执行以下命令:

mkdir -p /var/services/homes/zq2599/minio/gitlab_runner \

&& chmod -R 777 /var/services/homes/zq2599/minio/gitlab_runner \

&& mkdir -p /var/services/homes/zq2599/minio/config \

&& chmod -R 777 /var/services/homes/zq2599/minio/config

  1. 执行docker命令创建minio服务,指定服务端口是9000,并且指定了access key(最短三位)和secret key(最短八位):

sudo docker run -p 9000:9000 --name minio \

-d --restart=always \

-e “MINIO_ACCESS_KEY=access” \

-e “MINIO_SECRET_KEY=secret123456” \

-v /var/services/homes/zq2599/minio/gitlab_runner:/gitlab_runner \

-v /var/services/homes/zq2599/minio/config:/root/.minio \

minio/minio server /gitlab_runner

  1. 浏览器访问,输入access key和secret key后登录成功:

在这里插入图片描述

  1. 如下图,点击红框中的图标,创建一个bucket,名为runner:

在这里插入图片描述

  1. 至此,minio已备好,接下来在GitLab Runner上配置;

GitLab Runner上配置缓存

  1. 我这里是用helm部署的GitLab Runner,因此修改的是helm的value配置,如果您没有用helm,可以参考接下来的操作直接去配置config.toml文件;

  2. helm下载了GitLab Runner的包后,解开可见配置信息如下:

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(一)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(二)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Redis常见面试题汇总(300+题)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

…(img-bQ2RSsQ0-1710399478384)]

Mysql面试题汇总(一)

[外链图片转存中…(img-0g6Q3QQY-1710399478385)]

Mysql面试题汇总(二)

[外链图片转存中…(img-sGlz5BDA-1710399478385)]

Redis常见面试题汇总(300+题)

[外链图片转存中…(img-EeIZ9Oku-1710399478386)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值