Gitlab Cache 原理

Gitlab cache 机制可以大大加快 CI/CD Job 的执行速度。基础知识可以参看 Gitlab Cache。下面直接总结在 Kubernetes 环境中的三种 Cache 的解决方案。

第一种,Distributed runners caching,gitlab runner job执行前从分布式存储中检查下载解压 cache 文件,job执行后,压缩上传 cache 文件到分布式存储。这是 gitlab 提供的通用的正宗的方法,在非 Kubernetes 环境中也可以使用;
第二种,给 Job Executor Pod 挂载同一个 volume。gitlab runner 提供了本地存储 cache 的方式,如果远程存储没有配置,gitlab runner 照样会压缩 cache 文件,然后按照目录规则存储到指定的目录。这种方式的原理是将此目录配置为 Kubernetes Volume,每个 Job 执行时都挂载此 Volume ,这样就相当于所有的 Job 有了一个集中式的存储。可以参考 使用GitLab CI在Kubernetes服务上运行GitLab Runner并执行Pipeline 尝试配置。
第三种,这种是不使用缓存,在 Kubernetes 集群中安装各类仓库的私服,Gitlab CI/CI Job 执行时,配置为使用这些私服,速度也很快。

参考

  1. Gitlab Cache
  2. 使用GitLab CI在Kubernetes服务上运行GitLab Runner并执行Pipeline
  3. Distributed runners caching
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章