我们正在考虑将Jenkins迁移到Kubernetes (GKE),并使用Jenkins Kubernetes插件来运行pods中的工作。然而,我们的构建下使用ccache来优化构建速度,并且我们将ccache文件保存在jenkins代理上(每个构建都在每个代理上读取和写入本地ccache文件夹)。
根据我的理解,k8s中的Jenkins代理吊舱是短暂的,这意味着它们仅用于单一用途。我很难理解ccache是如何在工作中建立起来的。以下是我的想法:
我找到了可能相关的https://issues.jenkins.io/browse/JENKINS-42422,但我认为没有解决办法。
对于如何实现这一点,还有其他的想法吗?不能使用ccache对我们来说是一个交易的破坏者,因为它将使构建周转时间比静态代理糟糕得多。
发布于 2021-05-14 21:16:10
有状态并不会辜负库伯奈特的目标。例如,如果您在集群中运行DB,则有状态应用程序是必要的。我建议您使用glusterfs/ceph/nfs/EFS(AWS),并将readWriteMany用于ccache。
这个博客有更多的细节:
https://blog.hiya.com/kubernetes-base-jenkins-stateful-agents/
https://stackoverflow.com/questions/67540171
复制相似问题