Omnibus GitLab 高可用性角色

Omnibus GitLab 包括各种软件组件/服务,以支持在高可用性配置中运行 GitLab。默认情况下,其中一些支持服务被禁用,Omnibus GitLab 配置为作为单节点安装运行。 每个服务都可以使用 /etc/gitlab/gitlab.rb 中的配置设置来启用或禁用,但是 roles 的引入可以让您轻松启用一组服务,并基于您已启用的高可用角色提供更好的默认配置。

不指定任何角色(默认配置)

当您没有为 GitLab 配置任何角色时,GitLab 会为单节点安装启用默认服务。其中包括 PostgreSQL、Redis、Puma、Sidekiq、Gitaly、GitLab Workhorse、NGINX 等。

仍然可以通过 /etc/gitlab/gitlab.rb 中的设置单独启用/禁用。

指定角色

角色在 /etc/gitlab/gitlab.rb 中作为数组传递

指定多个角色的示例:

roles ['redis_sentinel_role', 'redis_master_role']

指定单个角色的示例:

roles ['geo_primary_role']

角色

GitLab App Role

  • application_role

    GitLab App 角色用于轻松配置仅运行 GitLab 的实例。默认情况下禁用 Redis、PostgreSQL 和 Consul 服务。

Redis Server Roles

  • redis_sentinel_role

    在机器上启用 sentinel 服务

    默认情况下,不启用其它服务。

  • redis_master_role

    启用 Redis 服务和监控,并允许配置主密码

    默认情况下,不启用其它服务。

  • redis_replica_role

    启用 Redis 服务和监控

    默认情况下,不启用其它服务。

GitLab Geo Roles

GitLab Geo 角色用于配置 GitLab Geo 站点。

  • geo_primary_role

    为流式复制到次要站点准备数据库。防止 PostgreSQL 自动升级以避免意外停机。

    只有在运行 PostgreSQL 的 Geo 主站点节点上才需要此角色。不需要的服务需要在 /etc/gitlab/gitlab.rb 中明确禁用。

    此角色不应用于在 Geo 主站点中设置 PostgreSQL 集群。

    默认情况下,启用所有 GitLab 标准单节点服务。(NGINX、Puma、Redis、Sidekiq 等)

  • geo_secondary_role

    • 为传入复制配置只读的次要副本数据库。
    • 配置到 Geo 跟踪数据库的 Rails 连接。
    • 启用 Geo 跟踪数据库geo-postgresql
    • 启用 Geo Log Cursor geo-logcursor
    • 在重新配置期间禁用只读副本数据库上的自动数据库迁移。
    • 减少 Puma worker 的数量以节省其他服务的内存。
    • 设置gitlab_rails['enable'] = true

    此角色旨在用于在单个节点上运行的 Geo 次要站点。如果在具有多个节点的 Geo 站点中使用此角色,则需要在 /etc/gitlab/gitlab.rb 中明确禁用不需要的服务。

    此角色不应用于在 Geo 次要站点中设置 PostgreSQL 集群。

    默认情况下,启用所有 GitLab 标准单节点服务。(NGINX、Puma、Redis、Sidekiq 等)

Monitoring Roles

监视角色用于设置对安装的监视。

  • monitoring_role

    配置中央监控服务器以收集指标并提供仪表板。

    启用 Prometheus、Alertmanager 和 Grafana。

PostgreSQL Roles

有关 PostgreSQL 角色使用的文档可以在配置 PostgreSQL 扩展文档中找到

  • postgres_role

    在机器上启用 PostgreSQL 和 Consul 服务

    默认情况下,不启用其它服务。

  • patroni_role

    在机器上启用 PostgreSQL、patoni 和 Consul 服务

    默认情况下,不启用其它服务。

  • pgbouncer_role

    在机器上启用 PgBouncer 和 Consul 服务

    默认情况下,不启用其它服务。

  • consul_role

    在机器上启用 Consul 服务

    默认情况下,不启用其它服务。

GitLab Pages Roles

GitLab Pages 角色用于设置和配置 GitLab Pages。

  • pages_role

    使用 GitLab Pages 实例配置服务器。

    默认情况下,不启用其它服务。

Sidekiq Roles

Sidekiq 角色用于设置和配置 Sidekiq。

  • sidekiq_role

    使用 Sidekiq 服务配置服务器。

    默认情况下,不启用其它服务。