我们在一台服务器上设置了一个Gitlab CI / CD平台,在多台机器上运行多个Runner和executors。这一直运行良好,但由于单服务器模型不能保证“高可用性”。我们被要求创建一个具有内置负载平衡和自动故障转移的HA环境。
我们试图找到我们是否可以通过在两台不同的机器上运行的两台Gitlab CI-CD服务器来实现这一目标,并在它们前面安装一个“循环”负载均衡器。用户将点击负载均衡器的URL,该负载均衡器将重定向到其中一个服务器。我们想到的几个初步问题是
•如何在两台服务器之间共享项目数据和元数据? •可以共享存储库和源代码吗?或者我们是否必须维护同一个项目的两个存储库;每个Gitlab服务器一个? •Gitlab CI-CD服务器内置了故障转移功能吗?活动在一台服务器上的用户是否会自动重定向到其他服务器。
有没有人早点尝试过?或者任何想法如何做到这一点将受到高度赞赏。
目前,Gitlab(无论是CE还是EE)没有内置的HA功能。只有Gitlab Geo,它在另一个位置提供Gitlab实例的只读副本。
如果您想提供HA和LB,那么您必须考虑以下因素:
由于您可以设置数据,DB和redis缓存所在的位置,因此您可以非常轻松地为HA环境建模。