首页 > 解决方案 > 詹金斯 + Kubernetes + ccache

问题描述

我们正在考虑将 Jenkins 迁移到 Kubernetes (GKE) 并使用 Jenkins Kubernetes 插件在 pod 中运行作业。但是,我们的构建基础设施使用 ccache 来优化构建速度,并且我们将 ccache 文件保存在 jenkins 代理上(每个构建都会读取和写入每个代理上的本地 ccache 文件夹)。

据我了解,k8s 中的 Jenkins 代理 pod 是短暂的,这意味着它们仅供一次性使用。我正在努力了解 ccache 是如何工作的。这是我的想法:

我发现https://issues.jenkins.io/browse/JENKINS-42422可能是相关的,但我认为没有解决方案。

关于如何实施的任何其他想法?不能使用 ccache 对我们来说是一个交易破坏者,因为与静态代理相比,它会使构建周转时间变得更糟。

标签: jenkinskubernetesccachejenkins-kubernetes

解决方案


有状态并没有违背 Kubernetes 的目的。有状态的应用程序是必需的,例如,如果您在集群中运行数据库。我建议您使用 glusterfs/ceph/nfs/EFS(AWS) 并将 readWriteMany 用于 ccache。

这个博客有更多细节:

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


推荐阅读