Wiki
My Blog
  • 首页
  • Microsoft
    • Windows SSH 安装及免密登录
    • 常用 Windows 命令
    • 查看Windows信息
  • Cloud Native
    • 容器备份解决方案
  • Docker
    • Docker 镜像加速
  • Gitlab
    • Gitlab 部署介绍
    • Gitlab Docker compose 部署
  • Harbor
    • Harbor+Certbot 证书部署
    • Harbor 升级到 2.8
  • K8s
    • 通过 kubeadm 安装 Kubernetes 集群
    • kubeadm 证书过期处理
    • kubeadm 常见操作
    • 将 Calico 替换为 Antrea CNI
由 GitBook 提供支持
在本页
  • 目录
  • 安装简介
  • 本文参考资料
  • 组件介绍
  • 获取部署文件

这有帮助吗?

  1. Gitlab

Gitlab 部署介绍

这有帮助吗?

目录

  1. Gitlab 部署介绍

  2. 安装简介

    1. 本文参考资料

  3. 组件介绍

  4. 获取部署文件

安装简介

Gitlab 在 Kubernetes 中有三种安装方式:

  • 单节点运行:Gitlab CE 提供官方单节点 docker 镜像,使用 docker run 便可跑起来,在 Kubernetes 上只需要使用相同的镜像,设置合适的环境变量便可跑起来,这种架构所有组件(gitlab、gitlab-runner、postgresql、redis)都在一个镜像中,比较重,启动时间也很慢,个人在部署时发现时不时遇到初始化问题,刷新页面十几次才能解决,如果环境资源有限可以使用这种部署方式。

  • 三节点运行:有位大神在 gitlab 出了三节点 Docker 部署的镜像和方式,将 gitlab、redis、postgresql 分开部署,github 加星6k,同时作者提供了 Kubernetes 部署yaml。测试这种部署很稳,而且作者更新很快,release 速度和官方发布齐平。推荐这种部署方式。

  • 官方 Helm charts 部署:这种方式架构最复杂,但是据官方说易于扩展。

本文参考资料

官方部署指南:

命令参考:

伪架构师博客:

组件介绍

安装官方文档,Gitlab 共有以下组件:

Core:

可外置的依赖:

其他可选组件:

获取部署文件

在客户端安装 helm 3,配置好 kubectl ,运行下列命令获取所有 gitlab charts:

helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm fetch --untar gitlab/gitlab

:原生 helm 部署依赖于 loadbalancer,此 nginx ingress 会通过 4 层 LB 进行发布。

:集成的镜像仓库。

GitLab/:提供 gitaly 服务。

GitLab/:提供 Prometheus 监控指标。 此服务依赖于 Redis 和 PostgreSQ 。

GitLab/

GitLab/:提供 SSH 服务,让用户可以通过 ssh 访问 gitlab。

GitLab/:是一个一次性 job,用于查找并迁移 gitlab 数据库。 此服务依赖于 Redis 和 PostgreSQL。

GitLab/: sidekiq 是个独立可配置的队列工具。此服务依赖于 Redis, PostgreSQL 和 Gitaly。

GitLab/:提供 gitlab webserver,每个 pod 中会有两个 webserver worker,同时pod内也会运行 gitlab workhorse。此服务依赖于 Redis, PostgreSQL, Gitaly, 和 Registry。

:提供对象存储 API,必须安装

:运行 Gitlab CI 任务

借助 和 自动生成证书

https://github.com/sameersbn/docker-gitlab
https://docs.gitlab.com/charts/installation/deployment.html
https://docs.gitlab.com/charts/installation/command-line-options.html
https://blog.fleeto.us/courses/gitlab-notes/01-01-gitlab-deployment-k8s/
NGINX Ingress
Registry
Gitaly
GitLab Exporter
GitLab Grafana
GitLab Shell
Migrations
Sidekiq
Webservice
PostgreSQL
Redis
MinIO
Prometheus
Grafana
GitLab Runner
Let’s Encrypt
cert-manager