热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gitlab-runnerkubernetes缓存被忽略

如何解决《gitlab-runnerkubernetes缓存被忽略》经验,为你挑选了1个好方法。

我有一个gitlab-runner 10.3.0和kubernetes执行器的kubernetes集群。cache_dir在跑步者的config.toml文件中没有定义。请注意,这与docker executor不同,因此卷解决方案不适用。

在中.gitlab-ci.yml,我将作业配置为使用缓存:

build:
  cache:
    key: "${PROJECT_NAME}"
    paths:
      - "node_modules/"
  script:
    - ls node_modules/ || echo "cache not there"
    - npm i
    - npm build
    - ...

运行此命令时,我看到缓存已被拉出并创建:

Cloning repository for some-branch with git depth set to 1...
Cloning into '/group/projectname'...
Checking out d03baa31 as some-branch...
Skipping Git submodules setup
Checking cache for projectname...
Successfully extracted cache
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
//
// ...work being done here... 
//
Creating cache projectname...
node_modules/: found 24278 matching files
Created cache
Job succeeded

但是,当我将另一个提交推送到该分支时,ls node_modules/仍然找不到缓存。

我搜索了文档,但没有找到有关如何激活缓存的任何信息。gitlab-runner-pod那里也没有任何所谓的缓存文件,并且根据文档,cache_dirkubernetes执行程序未使用config中的a。

但是根据此功能页面,kubernetes执行器确实支持缓存。

那么该怎么做呢?



1> helmbert..:

由于Kubernetes的分布式特性,您将需要配置中央缓存位置(通常以与S3兼容的对象存储的形式(例如AWS S3或Minio)的形式)。Gitlab运行程序文档(重点是我的)中对此原因进行了解释:

为了加快构建速度,GitLab Runner提供了一种缓存机制,用于保存所选目录和/或文件并在后续构建之间共享。

当构建在同一主机上运行时,这工作正常,但是当您开始使用Runners自动缩放功能时,大多数构建将在新的(或几乎是新的)主机上运行,​​该主机将在新的Docker容器中执行每个构建。在这种情况下,您将无法利用缓存功能。

为了克服此问题,结合了自动缩放功能,引入了分布式Runners缓存功能。

它使用任何与S3兼容的服务器在使用过的Docker主机之间共享缓存。在还原和存档缓存时,GitLab Runner将查询S3服务器并下载或上传存档。

为此,可以[runners.cache] section在运行器配置中使用:

[runners.cache]
  Type = "s3"
  ServerAddress = "s3.amazonaws.com"
  AccessKey = "AMAZON_S3_ACCESS_KEY"
  SecretKey = "AMAZON_S3_SECRET_KEY"
  BucketName = "runners"
  BucketLocation = "eu-west-1"
  Insecure = false
  Path = "path/to/prefix"
  Shared = false

由OP编辑: Minio for gitlab-ci的安装说明


仅谈论S3会产生误导-不了解与S3兼容的存储桶Minio。谢谢!请参阅:https://docs.gitlab.com/runner/install/autoscaling.html#install-the-cache-server
推荐阅读
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Apple iPad:过渡设备还是平板电脑?
    I’vebeenagonizingoverwhethertopostaniPadarticle.Applecertainlydon’tneedmorepublicityandthe ... [详细]
  • 本文整理了Java中com.amazonaws.services.autoscaling.AmazonAutoScaling.describeAutoScalingGroups() ... [详细]
  • 虚拟化_深度:资源虚拟化
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度:资源虚拟化相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文整理了Java中com.amazonaws.services.kms.AWSKMSClientBuilder类的一些代码示例,展示了AWSKMSClie ... [详细]
  • 荐
                                                        应用程序负载均衡器概述
    关注公众号:AWS爱好者(iloveaws)文|沉默恶魔(禁止转载,转载请先经过作者同意)网站:www.iloveaws.cnHello大家好,欢迎来到《AWS解决方案架构师 ... [详细]
author-avatar
DLDLBABY1_182
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有