实现Ubuntu GitLab高可用可采用以下方案,核心是通过多节点部署、负载均衡及故障转移机制确保服务连续性:
基础环境准备
external_url并启用数据库、Redis等服务。配置数据库主从复制
/var/opt/gitlab/postgresql/data/postgresql.conf:wal_level = hot_standby  
max_wal_senders = 3  
wal_keep_segments = 32  
hot_standby = on  
pg_hba.conf中添加从节点访问权限。pg_basebackup从主节点同步数据,配置recovery.conf指定主节点连接信息。配置负载均衡
upstream gitlab {
  server 主节点IP:80;
  server 从节点IP:80 backup;  # 从节点设为backup
}
server {
  listen 80;
  location / {
    proxy_pass http://gitlab;
  }
}
缓存与文件存储
redis.conf中设置replicaof)。监控与故障转移
gitlab.rb中git_max_size等参数。gitlab-rake gitlab:backup:create备份数据,存储至远程对象存储(如MinIO)。参考资料: