Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件。
Gitlab主要涉及到3个应用:Redis、Postgresql、Gitlab 核心程序,实际上我们只要将这3个应用分别启动起来,然后加上对应的配置就可以很方便的安装 Gitlab 了,我们这里选择使用的镜像不是官方的,而是 Gitlab 容器化中使用非常多的一个第三方镜像:sameersbn/gitlab,基本上和官方保持同步更新,地址:Docker GitLab by sameersbn
如果我们已经有可使用的 Redis 或 Postgresql 服务的话,那么直接配置在 Gitlab 环境变量中即可,如果没有的话就单独部署。
创建一个用于存储密码的secret文件:
创建username和password文件:
$ echo -n "admin" > ./username $ echo -n "1f2d1e2e67df" > ./password
用kubectl生成secret对象:
$ kubectl create secret generic git-user-pass --from-file=./username --from-file=./password secret "git-user-pass" created
创建PVC和storageclass做持久化:

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-redis-pvc namespace: kube-ops spec: selector: matchLabels: app: gitlab-redis-pv storageClassName: "" accessModes: - ReadWriteMany resources: requests: storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitlab-postgresql-pvc
namespace: kube-ops
spec:
selector:
matchLabels:
app: gitlab-postgresql-pv
storageClassName: ""
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitlab-pvc
namespace: kube-ops
spec:
selector:
matchLabels:
app: gitlab-pv
storageClassName: ""
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

部署需要的 Redis 服务,对应的资源清单文件如下:(gitlab-redis.yaml)

apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: kube-ops spec: selector: matchLabels: name: redis temp

最低0.47元/天 解锁文章
6073

被折叠的 条评论
为什么被折叠?



