极狐GitLab 云原生 Helm chart
在云原生环境中安装极狐GitLab,是一种官方的、推荐的和支持的安装方式。
简介
gitlab/gitlab
chart 是在 Kubernetes 上运行极狐GitLab 的最佳方法。chart 内包含开始使用所需的所有组件,并且可以扩容到更大的部署规模。
gitlab/gitlab
chart 包含完整体验所需的所有组件,但每个部分需要分开安装。
- 核心组件:
- NGINX Ingress
- Registry
- GitLab/Gitaly
- GitLab/GitLab Exporter
- GitLab/GitLab Grafana
- GitLab/GitLab Pages
- GitLab/GitLab Shell
- GitLab/Mailroom
- GitLab/Migrations
- GitLab/Sidekiq
- GitLab/Task Runner
- GitLab/Webservice
- 可选依赖组件:
- 可选附加组件:
- Prometheus
- Grafana
- Unprivileged GitLab Runner 使用 Kubernetes 执行器
- 通过 Let’s Encrypt 自动开启 SSL, 使用 Jetstack 的 cert-manager
- GitLab/Praefect
- GitLab/Kubernetes Agent Server (KAS)
极狐GitLab Helm chart 快速开始指南
对于希望尽快入门使用 chart 的用户来说,在非生产环境使用场景中,我们提供快速开始指南用于部署 PoC 环境。
本指南将引导用户使用默认值和功能特性部署 chart,不满足生产环境的准备要求。如果您希望在持续负载下的生产环境中部署 chart,您应该遵循下方的完整安装指南。
安装
gitlab/gitlab
chart 包含所有需要的依赖,在生产环境中,您可能想要启用可选特性功能或高级配置。本指南深入介绍了这些 chart 的所有选项和特性。
如果您只是想部署 PoC 环境用于测试,我们强烈建议您按照快速入门进行第一次部署。
全局设置
chart 的复杂性有利于使用全局属性。有许多常用的通用属性适用于多个 chart。参阅全局配置文档,了解不同全局配置值和应用的详细信息。
完整属性列表
chart 属性规模庞大,请查阅属性和默认值的列表。
升级
一旦安装了极狐GitLab chart,应使用 helm upgrade
命令进行配置更改和 chart 更新:
helm repo add gitlab https://charts.gitlab.io/
helm repo update
helm get values gitlab > gitlab.yaml
helm upgrade gitlab gitlab/gitlab -f gitlab.yaml
获取更多信息,请参阅升级文档。
卸载
要卸载极狐GitLab chart,使用以下命令:
helm uninstall gitlab
出于连续性的目的,执行 helm uninstall
命令后,部分 Kubernetes 资源不会被删除。如果您选择后续重新部署,由于会影响重新部署,需要您_主动_删除这些资源。
- PVC,存储有状态数据,您必须删除。
- Gitaly:存储您的仓库数据
- PostgreSQL (如果在内部):存储您的 metadata。
- Redis (如果在内部):缓存和作业队列,可以安全删除。
- Secrets,如果由我们的 shared-secrets 作业生成。chart 从不直接通过 Helm 生成 Kubernetes Secrets。因此,Helm 无法删除它们。Secrets 包含密码,加密密钥等,应谨慎删除。
- ConfigMaps
-
ingress-controller-leader-RELEASE-nginx
: 由 NGINX Ingress controller 生成,不由 chart 控制,可以安全删除。
-
PVC 和 Secret 具有 release
标签设置,您可以通过以下命令找到它们:
kubectl get pvc,secret -lrelease=gitlab
高级指南
除了在与云原生环境中进行基本部署之外,还可以进行更复杂的配置。本节为哪些需要远期规划的任务提供进一步指导,例如大规模部署或从 Omnibus GitLab 迁移。
高级配置
高级和大规模部署能够利用外部服务、扩展功能和备用提供商。
高级配置示例:
- GitLab Geo
- External object storage providers
- External PostgreSQL, Redis, Gitaly
- External Ingress providers
参阅 高级配置文档。
从 Omnibus GitLab 迁移到 Kubernetes
支持从 Omnibus GitLab 迁移到 Kubernetes,这样做通常需要将现有数据迁移到对象存储,是高级配置的一部分。
要将您现有的 Omnibus GitLab 迁移到这些 chart,请遵循 迁移文档。
架构
chart 协调了整套应用的部署而变得非常复杂。请参阅关于目标、结构、设计决策和资源消耗的架构文档。
版本对照
GitLab chart 与极狐GitLab 本身的版本号不同。为保证主板本的迭代前进,可能会需要引入突发变更,在完成之前,甚至会导致完全阻断其它开发进行。
要快速查看 gitlab
chart 与实例版本的完整对照列表,请使用 Helm 执行以下命令:
helm repo add gitlab https://charts.gitlab.io/
helm search repo -l gitlab/gitlab
获取更多信息,访问版本对照文档。