我在kubernetes中部署了jenkins,有两个副本,作为nginx入口下的服务公开。创建项目后,下一次刷新不会产生任何结果,就好像它从未创建过一样,第三次刷新会再次显示创建的项目。
詹金斯和库伯内特是新手,所以不太确定发生了什么。
也许每次服务都会路由到不同的pod,所以只有一个创建了项目,其他的没有。如果是这种情况,我该怎么解决??
PD:我将副本减少到1,它可以按预期工作,但我正在努力使其成为一个容错项目。
据我所知,Jenkins在设计上并不支持HA。您不能仅仅通过添加更多的复制副本来扩大规模。这是关于堆栈溢出的类似问题。
Nginx是您创建的jenkins实例的两个副本之间的负载平衡。这两个实例彼此不知道,并且有单独的数据,因此您可以在两个完全独立的jenkins实例之间进行切换。
可以尝试解决此问题的一种方法是在入口对象上设置会话相关性:
nginx.ingress.kubernetes.io/affinity-mode: cookie
因此,通过这种方式,您的浏览器会话将固定在一个pod上。
还记得在这些pod之间共享$JENKINS_HOME
目录,例如使用NFS卷。
如果你觉得这有帮助,请告诉我。