Kubernates安装GitLab
1. 前提条件
- 已安装并配置好 Kubernetes 集群。
- 已安装 kubectl 和 helm 工具。
- 确保集群有足够的资源(CPU、内存)和可用的存储类(StorageClass)。
2. 安装 Helm Chart
GitLab 提供了官方 Helm Chart,支持定制化部署。
步骤 1:添加 Helm 仓库
1 | helm repo add gitlab https://charts.gitlab.io |
步骤 2:创建命名空间
1 | kubectl create namespace gitlab |
步骤 3:准备配置文件(gitlab-values.yaml)
创建一个自定义配置文件 gitlab-values.yaml,以下为关键配置示例:
1 | global: |
步骤 4:部署 GitLab
1 | helm upgrade --install gitlab gitlab/gitlab \ |
3. 获取初始密码
部署完成后,获取初始 root 用户密码:
1 | kubectl -n gitlab get secret gitlab-gitlab-initial-root-password -o jsonpath='{.data.password}' | base64 --decode |
4. 访问 GitLab
- 通过 Ingress 访问
如果配置了域名和 Ingress,访问 https://gitlab.zmutec.com。 - 通过 NodePort/LoadBalancer 访问
如果没有配置 Ingress,查看 Service 的对外端口:1
kubectl -n gitlab get svc gitlab-webservice-default
5. 关键组件说明
- GitLab Core:Web 服务、Sidekiq、Gitaly。
- PostgreSQL:默认部署在集群内(生产建议使用外部数据库)。
- Redis:默认部署在集群内。
- GitLab Runner:用于 CI/CD 任务执行。
6. 自定义配置(可选)
配置 HTTPS 证书
- 使用 Let’s Encrypt(需安装 Cert-Manager):使用外部数据库
1
2
3
4global:
ingress:
configureCertmanager: true
certmanager-issuer: letsencrypt-prod
在 gitlab-values.yaml 中禁用内置数据库并配置外部数据库:1
2
3
4
5
6postgresql:
install: false
global:
psql:
host: external-postgresql.example.com
password: your-postgres-password
7. 验证部署
检查 Pod 状态:
1 | kubectl -n gitlab get pods |
确保所有 Pod 处于 Running 状态。
8. 后续操作
- 登录 GitLab
使用用户名 root 和获取的初始密码登录。 - 配置 CI/CD Runner
如果启用了 gitlab-runner,Runner 会自动注册到 GitLab。 - 备份与恢复
定期备份 GitLab 数据(参考 GitLab 文档)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Meatball!