首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins + Kubernetes + ccache

Jenkins + Kubernetes + ccache
EN

Stack Overflow用户
提问于 2021-05-14 19:47:16
回答 1查看 216关注 0票数 1

我们正在考虑将Jenkins迁移到Kubernetes (GKE),并使用Jenkins Kubernetes插件来运行pods中的工作。然而,我们的构建下使用ccache来优化构建速度,并且我们将ccache文件保存在jenkins代理上(每个构建都在每个代理上读取和写入本地ccache文件夹)。

根据我的理解,k8s中的Jenkins代理吊舱是短暂的,这意味着它们仅用于单一用途。我很难理解ccache是如何在工作中建立起来的。以下是我的想法:

  • 使用pod模板中的主机路径卷让代理pod在节点上挂载路径。我担心这是行不通的,因为基于GKE文档的主机路径不允许problems.
  • Somehow,这意味着多个荚将不能同时写入ccache挂载。
  • 使用基于NFS的卷-我知道这样一个事实不会很好地工作,因为它将是缓慢的,并将有锁定的podRetention配置pod模板和idleMinutes选项,让pods被重新使用。我认为这是可行的,但我认为这违背了使用Kubernetes.
  • Use StateFull Jenkins代理的目的--我认为这是可行的,但却违背了使用Kubernetes的目的。--

我找到了可能相关的https://issues.jenkins.io/browse/JENKINS-42422,但我认为没有解决办法。

对于如何实现这一点,还有其他的想法吗?不能使用ccache对我们来说是一个交易的破坏者,因为它将使构建周转时间比静态代理糟糕得多。

EN

回答 1

Stack Overflow用户

发布于 2021-05-14 21:16:10

有状态并不会辜负库伯奈特的目标。例如,如果您在集群中运行DB,则有状态应用程序是必要的。我建议您使用glusterfs/ceph/nfs/EFS(AWS),并将readWriteMany用于ccache。

这个博客有更多的细节:

https://blog.hiya.com/kubernetes-base-jenkins-stateful-agents/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67540171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档