极狐 GitLab

极狐GitLab 安装要求

Tier: 基础版,专业版,旗舰版

Offering: 私有化部署

极狐GitLab 私有化部署有特定的硬件、组件和基础设施要求,这些要求会因您的部署规模和工作负载而异。对于较大规模或分布式部署,请使用规模指南来确定适合您环境的规格。

硬件#

您可以将极狐GitLab 部署在单个节点上,也可以分布式部署在多个节点上。下面列出了单节点安装的最低硬件要求。对于分布式部署,要求按组件类型分配,并随负载扩展。请使用规模指南根据预期负载和工作负载构成来确定合适的规格。

CPU#

对于单节点安装,8 vCPU 是基准配置。支持基于 ARM 的处理器。对于分布式部署,CPU 按组件类型分配,并随负载扩展。

由于性能不稳定,不建议使用突发性能实例类型。

内存#

对于单节点安装,16 GB 是基准配置。对于分布式部署,内存按组件类型分配,并随负载扩展。

对于内存受限环境中的单节点安装,极狐GitLab 可以在至少 8 GB 内存下运行。有关更多信息,请参阅在内存受限环境中运行极狐GitLab。

尽可能禁用交换空间。交换空间可能导致负载下性能显著下降。 如果无法禁用交换空间,请预配足够的内存,使极狐GitLab 永远不会使用它。

存储#

存储要求因组件而异。对于单节点安装,请在一台机器上汇总所有要求。对于分布式部署,请将每项要求应用到相应的节点类型:

组件最低存储说明
应用节点(Rails、Sidekiq、Puma)40 GB软件包安装(约 2.5 GB)加上操作系统、日志和临时文件。
代码仓库存储(Gitaly)至少与所有代码仓库的总和相当请参阅 Gitaly 磁盘要求。
数据库(PostgreSQL)5-12 GB请参阅 PostgreSQL 存储要求。

避免使用 NFS、Amazon EFS 和 Azure Files 等网络文件系统,因为它们可能显著影响性能。有关更多信息,请参阅避免使用基于云的文件系统。

为获得最佳性能,请使用 SSD 存储。这对 I/O 密集型的 Gitaly 尤为重要。 由于性能不稳定,不建议使用突发性能磁盘类型。

基础设施#

极狐GitLab 可运行在多种基础设施类型上。以下各节介绍支持的平台和高可用性要求。

支持的基础设施#

只要底层环境满足本指南中所述的硬件和组件要求,极狐GitLab 就可以运行在云提供商和您自己的基础设施上。 常用的云提供商包括 AWS、GCP 和 Azure。 极狐GitLab 支持涵盖极狐GitLab 本身;底层基础设施或平台的问题不在其范围内。

对于 Cloud Native 部署,极狐GitLab 可运行在任何满足 GitLab Helm chart 先决条件的 Kubernetes 发行版上。 网络、存储类和身份验证等 Kubernetes 平台特定行为不在极狐GitLab 支持的范围内。

高可用性#

HA 部署有特定的网络要求:

  • 节点之间的延迟必须低于 5 毫秒,以支持同步复制。
  • 建议跨可用区部署以提高韧性。请使用奇数个可用区以满足法定人数要求。
  • 跨多个数据中心部署需要具备同步能力的延迟、冗余网络链路,以及同一地理区域内奇数个数据中心。

单个极狐GitLab 实例不得跨越多个地理区域。对于多区域 部署,请使用 极狐GitLab Geo,它专为 地理分布式安装而设计。 多数据中心部署中与基础设施相关的问题可能不在极狐GitLab 支持的范围内。

组件要求#

PostgreSQL#

PostgreSQL 是唯一受支持的数据库,可通过以下方式使用:

对于外部实例,请参阅:

支持的版本#

对于以下极狐GitLab 版本,请使用这些 PostgreSQL 版本:

极狐GitLab 版本Helm chart 版本最低 PostgreSQL 版本最高 PostgreSQL 版本
19.x10.x17.x18.x(已针对极狐GitLab 18.7 及更高版本测试)
18.x9.x16.517.x(已针对 GitLab 17.10 及更高版本测试)
17.x8.x14.1416.x(已针对极狐GitLab 16.10 及更高版本测试)
16.x7.x13.615.x(已针对极狐GitLab 16.1 及更高版本测试)

PostgreSQL 次要版本仅包含缺陷和安全修复。请始终使用最新的次要版本,以避免 PostgreSQL 中的已知问题。有关更多信息,请参阅议题 364763。

如需使用比指定版本更高的 PostgreSQL 主要版本,请检查 Linux 软件包中是否内置了更高版本。

存储要求#

根据用户数量, PostgreSQL 服务器应具备:

  • 对于大多数极狐GitLab 实例,至少 5 到 10 GB 存储。
  • 对于极狐GitLab 旗舰版,至少 12 GB 存储 (必须导入 1 GB 漏洞数据)。

扩展#

要安装扩展,PostgreSQL 需要超级用户权限。有关说明,请参阅 管理 PostgreSQL 扩展。

扩展最低极狐GitLab 版本类型数据库
amcheck18.4必需主库
btree_gist13.1必需主库
pg_trgm8.6必需主库
plpgsql11.7必需主库、Geo 从站点跟踪数据库(最低版本 9.0)
pg_stat_statements-推荐全部

Gitaly 集群(Praefect)#

Gitaly 集群需要一个独立于主极狐GitLab 数据库的专用 PostgreSQL 实例。 要实现完整的 HA,请使用第三方 PostgreSQL 解决方案。对于 Gitaly 不需要数据库级冗余的环境,使用 Linux 软件包的非 HA PostgreSQL 实例就足够了。有关更多详细信息,请参阅 omnibus-gitlab#7292 和 gitaly#3398。

Redis 或 Valkey#

Redis 或 Valkey 存储所有用户会话和后台任务。您可以自行管理 Redis 或 Valkey,也可以使用托管云提供商服务。

Redis 或 Valkey 支持的版本为:

数据存储推荐版本最低版本
Redis7.27.01
Valkey7.27.2

有关 Redis 生命周期终止日期的更多信息,请参阅 Redis 文档。

  • 使用独立实例(可带或不带高可用性)。 不支持 Redis Cluster。
  • 不支持无服务器 Redis 和 Valkey 变体。
  • 根据需要设置逐出策略。

Puma#

推荐的 Puma 设置取决于您的安装方式。默认情况下,Linux 软件包使用推荐的设置。

要调整 Puma 设置:

有关工作进程和线程规模的指导,请参阅 Puma 工作进程和线程规模。

Sidekiq#

Sidekiq 使用多个线程处理后台作业。每个进程至少需要 200 MB 内存,并且在负载下可能显著增长。对于用户数超过 10,000 的环境,请为每个 Sidekiq 进程分配至少 1 GB 内存。

对象存储#

分布式部署需要对象存储,所有安装都建议使用对象存储。它存储二进制数据,包括 LFS 对象、CI/CD 产物、上传内容、容器镜像仓库数据和备份。

使用任何兼容 S3 的对象存储服务。有关配置和已测试提供商的列表,请参阅对象存储。

可选组件#

这些组件不是核心极狐GitLab 安装所必需的,但在使用时会有单独的基础设施或资源要求。

容器镜像仓库#

极狐GitLab 容器镜像仓库存储极狐GitLab 项目的 Docker 和 OCI 镜像, 并且需要:

  • 一个域名。
  • TLS 证书。
  • 文件系统或兼容 S3 的对象存储。

对于高流量环境,容器镜像仓库可以运行在独立于主极狐GitLab 实例的专用基础设施上。

GitLab Pages#

GitLab Pages 为项目和群组托管静态网站。它作为单独的守护进程运行,并且需要通配符 DNS 记录。自定义域名支持需要辅助 IP 地址和 TLS 证书。

Elasticsearch 和 OpenSearch#

高级搜索为极狐GitLab 内容提供更快速、更强大的搜索。 它需要单独的 Elasticsearch 或 OpenSearch 集群。 集群规模取决于已索引数据的量。

Prometheus#

Prometheus 监控随 Linux 软件包内置,并默认启用。 有关配置或禁用它的信息,请参阅 使用 Prometheus 监控极狐GitLab。

Zoekt#

Zoekt 提供跨代码仓库的精确代码搜索,并作为单独的服务运行。有关资源要求,请参阅 Zoekt 管理。

ClickHouse#

ClickHouse 是一个开源列式数据库,用于产品分析功能。它作为单独的数据库服务运行。有关资源要求,请参阅 ClickHouse 配置。

AI 网关#

AI 网关为极狐GitLab Duo AI 功能提供后端服务。它作为独立服务运行,可部署在 Docker 或 Kubernetes 上。有关资源要求,请参阅安装指南。

密钥管理器#

极狐GitLab 密钥管理器提供由 OpenBao 驱动的原生密钥管理。它作为单独的 Kubernetes 服务运行,并且需要专用的 PostgreSQL 数据库和负载均衡器。

支持的 Web 浏览器#

极狐GitLab 支持以下 Web 浏览器:

极狐GitLab 以 Baseline 广泛可用 浏览器集为目标。这些浏览器版本支持在所有核心浏览器中稳定的 Web 平台功能。一项功能在至少 30 个月后才会达到广泛可用状态。广泛可用浏览器集包括这些浏览器的桌面版和移动版。

不支持在这些浏览器中禁用 JavaScript 运行极狐GitLab。

Footnotes#

  1. Redis 7.0 在上游已达到生命周期终止(EOL),但在某些情况下仍由供应商积极 维护。例如,Amazon ElastiCache for Redis 7.1 使用自己的版本号, 但基于 Redis 7.0 构建。 ↩