如何扩展Gitlab EE

时间:2018-10-31 21:23:28

标签: gitlab scaleout-hserver gitlab-ee

当前,我将整个gitlab EE作为单个容器运行。我需要扩展该服务,以便它可以同时支持更多用户和更多操作/拉/推/合并请求等。

  • 我需要运行自己的Redis集群

  • 我需要单独运行PG集群

  • 我需要集成Elasticsearch进行搜索

但是如何扩展剩余的核心gitlab服务。它们是否支持横向扩展体系结构。

  • gitlab主力军
  • 独角兽(gitlab rails)
  • sidekiq(gitlab rails)
  • 吉塔利
  • gitlab外壳

1 个答案:

答案 0 :(得分:2)

  

它们是否支持横向扩展体系结构。

不完全是,考虑到GitLab Omnibus image是具有捆绑依赖项的一个软件包。

但是我从未经历过如此多的流量,因此需要对其进行拆分和扩展。

尽管有一个建议,可以拆分Omnibus映像:gitlab-org/omnibus-gitlab issue 1800

它指向gitlab-org/build/CNG,它正是您要寻找的内容:

  

每个目录都包含运行GitLab所需的基础结构特定组件的Dockerfile。

     
      
  • rails -API和Web都需要的Rails代码。
  •   
  • unicorn -暴露Rails的Unicorn容器。
  •   
  • sidekiq -运行异步Rails作业的Sidekiq容器
  •   
  • shell -运行GitLab Shell和OpenSSH以通过ssh提供git以及来自数据库的授权密钥支持
  •   
  • gitaly -提供分布式git存储库的Gitaly容器
  •   

使用Kubernetes的另一个选项是charts/gitlab

  

gitlab图表是在Kubernetes上操作GitLab的最佳方法。该图表包含入门所需的所有必需组件,并且可以扩展到大型部署。
  此图表和相应容器的一些主要优点是:

     
      
  • 改善的可扩展性和可靠性
  •   
  • 无需root权限
  •   
  • 使用对象存储代替NFS进行存储
  •   
     

默认部署包括:

     
      
  • GitLab的核心组件:Unicorn,Shell,Workhorse,Registry,Sidekiq和Gitaly
  •   
  • 可选依赖项:Postgres,Redis,Minio
  •   
  • 使用Kubernetes执行器的自动缩放,无特权的GitLab Runner
  •   
  • 通过“让我们加密”自动设置SSL。
  •