负载平衡在gitlab服务器中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载平衡在gitlab服务器中相关的知识,希望对你有一定的参考价值。

我们在一台服务器上设置了一个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环境建模。

  • Gitlab实例:可以完全负载平衡,因为它只是一个Web应用程序。负载平衡器也可以提供故障转移。 (HTTP和HTTPS)
  • 文件系统:这是存储repos的地方。您可以使用网络共享来提供弹性(NFS或DFS)
  • Redis和您选择的DBMS:您通常的聚类技术适用于此处。

以上是关于负载平衡在gitlab服务器中的主要内容,如果未能解决你的问题,请参考以下文章

负载平衡环境中的 .Net Core 托管服务

Windows Server 2008 R2 负载平衡入门篇

ADAM 负载平衡

负载均衡之基于DNS负载

为 App Engine 负载平衡器创建后端服务

从负载平衡的云服务中删除 Azure VM 实例