使用 helm 部署 gitlab
一、下载 Gitlab chart
- 进入 artifacthub 官网
- 选择你想要的版本(我选择的chart版本是 8.4.0 , gitlab 版本是17.4.0 )
- 进入到控制台,添加helm仓库
- 如果你想不改任何配置,你可以执行安装命令,等待安装即可
helm install my-gitlab gitlab/gitlab --version 8.4.0
- 我更倾向于把 chart 拉下来,根据自己的需求来修改配置
二、修改 Gitlab 配置
- 前面已经把安装文件下载到本地,那么把文件解压一下,进入到 values.yaml
- 禁用 ingress controller,ingres
global: ingress: configureCertmanager: false useNewIngressForCerts: false enabled: false nginx-ingress: &nginx-ingress enabled: false
- 禁用prometheus, gitlab-runner 等应用
- 把镜像替换成个人私有仓库的镜像(其实也是把官方镜像推到个人仓库里)
- 替换镜像是个麻烦事,可能会漏掉要改的镜像,可以使用 helm template 命令把chart 生成一个模板yaml文件,这样就知道哪里漏改了
- 进入到gitlab chart 目录里
- 执行 helm template gitlab . > template.yaml 命令,输出 template.yaml 文件
- 打开 template.yaml 文件,就知道要替换的镜像有哪些了
三、部署 Gitlab
-
创建 gitlab 命名空间
kubectl create namespace gitlab
-
创建 tls 证书
kubectl -n gitlab create secret tls gitlab-tls \ --key /data/gzzsy/xx.com.cn.key \ --cert /data/gzzsy/fullchain.cer
-
部署 gitlab
-
进入到gitlab目录里,执行命令
helm install -n gitlab gitlab .
-
执行 kubectl get pods -n gitlab ,可以看到运行的pod
-
执行 kubectl get svc -n gitlab ,可以看到运行的service
-
-
部署gitlab的ingress
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: gitlab-ingress namespace: gitlab annotations: nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx rules: - host: xx.com.cn http: paths: - path: / pathType: Prefix backend: service: name: gitlab-webservice-default port: number: 8181 tls: - hosts: - xx.com.cn secretName: gitlab-tls
-
访问gitlab页面, 这样就成功了
-
获取 gitlab初始化的密码, 账号默认是 root
- kubectl get secrets -n gitlab
- kubectl get secrets gitlab-gitlab-initial-root-password -n gitlab -o yaml
- 把加密密码 base64 解密就可以了
- kubectl get secrets -n gitlab
-
这样gitlab就部署完成了,想要卸载执行
helm uninstall -n gitlab gitlab
看到最后,如果这篇文章对你有帮助的话,欢迎点赞收藏+follow,谢谢!