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 数据库配置为流复制的 leader。
- 组织 PostgreSQL 自动升级,因为流复制到 Geo 次要站点需要停机时间。
- 启用所有单节点极狐GitLab 服务,包括 NGINX、Puma、Redis 和 Sidekiq。如果要隔离服务,则必须在
/etc/gitlab/gitlab.rb
中明确禁用不需要的服务。因此,此角色仅对 Geo 主站点中的单节点 PostgreSQL 有用。 - 不能用于在 Geo 主站点中设置 PostgreSQL 集群。相反,请参阅 Geo 多节点数据库复制。
默认情况下,启用所有 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 服务配置服务器。
默认情况下,不启用其它服务。
Spamcheck Roles
引入于 14.9 版本。
Spamcheck 角色用于设置和配置 Spamcheck 服务。
-
spamcheck_role
使用 spamcheck 和 spam-classifier 服务配置服务器。
默认情况下,不启用其它服务。