gitlab相关记录——筑梦之路

gitlab特点

  • 完整的代码托管功能:支持Git版本控制系统,提供强大的代码仓库管理
  • 集成的CI/CD:内置完善的持续集成和持续交付流水线
  • 问题跟踪与协作:支持问题创建、讨论、优先级设置和任务分配
  • 代码审查机制:便于团队进行质量管控、知识共享和模块讨论
  • 安全扫描功能:提供静态代码分析、漏洞扫描和容器安全检查
  • 扩展集成能力:支持与Jira、Slack、Kubernetes等主流工具的对接

版本区别

GitLab提供GitLab-JH、GitLab-CE和GitLab-EE三个版本,主要区别如下:

GitLab-JH与GitLab-CE的核心差异体现在版本来源、功能和服务支持方面:

  1. GitLab-CE(Community Edition社区版)
  • 面向全球用户提供的免费开源版本
  • 提供基础的代码托管和版本控制功能
  • 适合个人开发者或小型团队使用
  • 不包含企业级服务和技术支持
  1. GitLab-JH(极狐版)
  • 由国内极狐公司基于GitLab-CE/EE二次开发
  • 针对中国市场进行了本地化定制
    • 提供中文文档支持
    • 优化本地用户体验
  • 分为两个版本:
    • 基础版(免费)
    • 专业版(订阅收费)
  • 代码仓库部署在中国境内

版本查询提示:可通过 https://packages.gitlab.cn/ 查看GitLab-JH的版本号及镜像tag信息。

部署方式

  • Omnibus 本地部署
  • Docker 容器化部署
  • Kubernetes 集群部署

部署需求

存储需求

Omnibus GitLab 安装需要约 2.5 GB 存储空间。建议采用 LVM 部署以便后续扩容,并优先选择 7200 转 HDD 或 SSD 以保证性能。

CPU 配置

CPU 需求与用户规模及工作负载相关,影响因素包括:

  • 用户活跃度
  • 自动化程度
  • 镜像大小
  • 变更频率

推荐最低配置:

  • 4 核:支持 500 名用户
  • 8 核:支持 1000 名用户

内存配置

内存需求同样取决于用户规模和工作负载,影响因素与 CPU 相同。

推荐最低配置:

  • 4GB RAM:支持 500 名用户
  • 8GB RAM:支持 1000 名用户

补充建议:

  • 服务器需配置至少 2GB swap 空间(即使内存充足)
  • 将内核 swappiness 设为较低值(如 10),以平衡 RAM 和 swap 的使用

数据库支持

仅支持 PostgreSQL,可选用内置(Omnibus 集成)或外部数据库。

更多部署要求详见:GitLab 官方文档

本地安装

bash 复制代码
yum install -y curl policycoreutils-python3 openssh-server perl

curl -L get.gitlab.cn | bash

sudo EXTERNAL_URL="http://gitlab.codemiracle.com" yum install -y gitlab-jh

# 自签证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/C=CN/ST=ZheJiang/L=HangZhou/O=codemiracle/OU=Xianghy/CN=gitlab.codemiracle.com"

# 配置证书
vim /etc/gitlab/gitlab.rb
......
external_url "https://gitlab.codemiracle.com"               #指定HTTPS访问
gitlab_rails['gitlab_ssh_host'] = 'gitlab.codemiracle.com'  #使用ssh访问gitlab的域名,ssh://git@gitlab.codemiracle.com:/xxx/project.git
letsencrypt['enable'] = false                           #关闭letsencrypt
nginx['redirect_http_to_https'] = true                  #指定HTTP重定向为HTTPS
nginx['client_max_body_size'] = '1024m'                 #gitlab-ce自带Nginx的最大包大小
gitlab_rails['time_zone'] = 'Asia/Shanghai'             #配置时区
gitlab_rails['initial_root_password'] = 'admin123'    #重置为指定密码
......

gitlab-ctl reconfigure                 #重载配置

参考文档:https://docs.gitlab.cn/docs/omnibus/settings/ssl/index.html

Docker安装

bash 复制代码
# 简单示例

export GITLAB_HOME=/home/gitlab

docker run --detach \
  --hostname gitlab.codemiracle.com \
  --publish 443:443 --publish 80:80 --publish 2202:22 \
  --name gitlab \
  --restart unless-stopped \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 2048m \
  gitlab/gitlab-ce:latest
  
docker logs -f gitlab                 #观察部署过程

推荐使用 GitLab-CE 社区版,也可以选择官方最新版 Docker 镜像 registry.gitlab.cn/omnibus/gitlab-jh:latest。

如需查看其他可用镜像标签,请参考:https://hub.docker.com/r/gitlab/gitlab-ce/tags/

K8S部署

bash 复制代码
# 先决条件
https://docs.gitlab.cn/docs/charts/installation/tools/

helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm search repo gitlab                          #查看gitlab chart包
helm show chart gitlab/gitlab                    #查看对应gitlab chart的详情

要安装国内GitLab-JH版,可通过以下命令添加Helm仓库源:

bash 复制代码
helm repo add gitlab-jh https://charts.gitlab.cn

参考资料:

https://www.cnblogs.com/adblogs/p/18627778

https://docs.gitlab.cn/docs/charts/charts/

bash 复制代码
helm upgrade --install mygitlab gitlab/gitlab --create-namespace --namespace gitlab -f myvaules.yaml
相关推荐
明月心9522 天前
git remote add 用法
gitlab
only_Klein2 天前
jenkins流水线报错:Connection reset by peer
ci/cd·kubernetes·gitlab·jenkins·ssl
梁萌3 天前
docker部署gitlab和gitlab runner
docker·eureka·gitlab
johnnyAndCode3 天前
Idea 设置GitLab时使用账密,而不是token的配置方法
gitlab·idea
天外飞雨3 天前
Gitlab使用
gitlab
BUTCHER54 天前
GitLab SSH 密钥配置
运维·ssh·gitlab
明月心9524 天前
GitLab使用
gitlab
明月心9525 天前
gitlab pull requets
gitlab
BUTCHER55 天前
GitLab基本设置
gitlab
张小凡vip5 天前
Kubernetes---gitlab的ci/cd发布基于k8s的项目示例参考
ci/cd·kubernetes·gitlab