温馨提示×

centos gitlab怎样能高可用

小樊
45
2026-10-05 19:56:42
栏目: 智能运维

在 CentOS 上实现 GitLab 高可用(HA),通常有三种主流方案,取决于你对“高可用”的要求(避免单点故障 / 数据不丢 / 自动切换)。

下面按 从简单到复杂 给你一个清晰路线。


一、最简单:双机 + 共享存储 + 虚拟 IP(推荐入门)

适用场景

  • 小团队
  • 能接受“手动或脚本切换”
  • 不希望数据丢失

架构

GitLab A  <--->  共享存储(NFS/iSCSI)
GitLab B  <--->  虚拟 IP (VIP)

关键点

  1. GitLab 只装在一台机器上运行
  2. 数据目录放到共享存储:
    • /var/opt/gitlab
    • /etc/gitlab
  3. 使用 Keepalived 管理 VIP
  4. 故障时:
    • 停止 A
    • 启动 B
    • VIP 漂移到 B

优点

✅ 实现简单
✅ 数据一致性好
❌ 不是自动故障转移(除非写脚本)


二、官方推荐:GitLab HA(多节点)

适用场景

  • 中大型团队
  • 需要真正的高可用
  • 可接受复杂度

GitLab HA 组件拆分

GitLab 官方支持以下角色分离:

组件 说明
PostgreSQL 主从 + 流复制
Redis Sentinel
GitLab Rails 多应用节点
Sidekiq 多节点
Gitaly Git 仓库服务
Nginx / LB 负载均衡

最小 HA 示例

2× GitLab App
1× PostgreSQL Primary
1× PostgreSQL Standby
1× Redis + Sentinel
1× Gitaly

官方文档

https://docs.gitlab.com/ee/administration/high_availability/

优点

✅ 官方支持
✅ 可水平扩展
❌ 配置复杂
❌ 资源占用高


三、最省事:GitLab Omnibus + DRBD(CentOS 经典方案)

适用场景

  • 只有两台服务器
  • 想要“接近自动切换”

架构

GitLab Primary  <--> DRBD同步
GitLab Standby  <--> Keepalived VIP

原理

  • DRBD 实时同步磁盘
  • Keepalived 检测故障
  • VIP 自动漂移
  • GitLab 在备机自动启动

优点

✅ 数据强一致
✅ 接近自动 HA
❌ DRBD 已偏老技术


四、最现代:GitLab + Kubernetes(企业级)

适用场景

  • 已有 K8s
  • DevOps 团队

方式

  • 使用 gitlab-operator
  • PostgreSQL / Redis 用 Helm
  • GitLab 组件容器化

优点

✅ 弹性伸缩
✅ 真正云原生
❌ 学习成本高


五、备份 ≠ 高可用(但必须有)

不管选哪种 HA,都必须做:

gitlab-rake gitlab:backup:create

建议:

  • 每日备份
  • 备份异地存储
  • 定期恢复演练

六、CentOS 特别注意事项

  1. CentOS 7 已 EOL
    • 建议迁移到:
      • Rocky Linux
      • AlmaLinux
  2. GitLab 对系统版本敏感
  3. 防火墙必须放行:
    • 80 / 443
    • 22(或自定义 SSH)

七、我给你的建议(务实版)

✅ 小团队

双机 + NFS + Keepalived

✅ 公司级

GitLab 官方 HA

✅ 只有 2 台机器

DRBD + Keepalived


如果你愿意,可以告诉我:

  • 服务器数量
  • 是否允许数据短暂停机
  • 是否已有负载均衡 / 存储

我可以直接帮你 画架构图 + 给配置示例。

0 踩