Kubernetes中的主动-被动Jenkins设置

时间:2019-03-06 08:02:15

标签: jenkins kubernetes high-availability active-passive

我们计划使用kubernetes在容器平台中设置高可用性Jenkins设置。我们正在考虑在待机模式下设置一个活动主服务器和另一个主服务器。 Jenkins数据量将存储在两个主容器之间共享的全局存储中。

如果活动主服务器不可用,则请求应故障转移到其他主服务器。从站只能与活动的主站进行通信。

我们如何在kubernetes中以主动/被动模式完成Jenkins HA的设置。请提供您的建议。

我们希望通过链接下面的图实现

https://endocode.com/img/blog/jenkins-ha-setup_concept.png

3 个答案:

答案 0 :(得分:2)

这与恕我直言如何在Kubernetes中运行应用程序相矛盾。主动/被动是上个世纪的概念。

相反,为Jenkins部署配置运行状况检查。如果失败,Kubernetes将自动终止该任务并开始替换(在检测到活动状态不正常的几秒钟后可用)。

答案 1 :(得分:0)

如果您对确定的框架感到满意,那么JenkinsX可能会为您提供帮助。默认情况下,它具有您所需的功能。

答案 2 :(得分:0)

已经有一些积极的考虑因素来模拟容器的主动/被动设置,但是请注意,作为产品功能,这并不是必须的,因此不是内置的。这很可能实现为OOB功能集成,其中您可以必须精心设计您的应用程序才能至少执行以下操作:

  1. 一般领导选举(用于主选拔和流量路由, 也许是一个杂物箱来进行选举和消息路由)
  2. 使活动/就绪探测器检测例程(以及故障转移逻辑)能够修补失败范式下的所有Pod,使其不再通过任何Pod选择器方程式进行选择
  3. 如果再次进行故障转移,您仍然必须确保另外一个标签补丁(这次是在新旧Pod之间)以更新Pod元数据(又名标签)

如果您正在寻找的东西很少,那么配置活动/就绪探针可能会帮您解决问题。与往常一样,您应该避免进行使用特定补丁来批量选择角色标签的Pod标签的批量更改

https://github.com/kubernetes/kubernetes/issues/45300