kubernetes快速部署GitLab

1、什么是GitLab

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。

GitLab官方网站:https://about.gitlab.com/

GitLab Github代码库:https://github.com/gitlabhq/gitlabhq

GitLab共有三个版本:GitLab社区版(CE)、GitLab企业版(EE)、GitLab极虎版(JH-中国特供版)。在kubernetes中部署GitLab需要用到三个组件:Redis、Postgresql和GitLab。我们只需要根据资源清单把这三个组件跑起来、再使用对用的配置项就可以快速的运行GitLab了;GitLab也提供了官方镜像文件、但是这里我们要使用一个GitLab的第三方镜像:sameersbn/gitlab,这个镜像库基本上和官方保持一样的更新速度。

sameersbn/gitlab地址:http://www.damagehead.com/docker-gitlab/

2、创建Ceph资源池

在开始之前我们首先需要对各组件进行持久化存储配置、这里我使用的是Ceph分布式存储;我们首先来创建一个对应的Ceph存储资源池给GitLab使用。资源清单文件如下:

apiVersion: ceph.rook.io/v1
kind: CephBlockPool
metadata:
  name: gitlab-replicapool
  namespace: gitlab
spec:
  failureDomain: host
  replicated:
    size: 3
    requireSafeReplicaSize: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gitlab-rook-ceph-block
provisioner: rook-ceph.rbd.csi.ceph.com
parameters:
    clusterID: rook-ceph
    pool: harbor-replicapool
    imageFormat: "2"
    imageFeatures: layering
    csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
    csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
    csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
    csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
    csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
    csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
    csi.storage.k8s.io/fstype: xfs
allowVolumeExpansion: true
reclaimPolicy: Delete
[root@kubernetes01 ~]# kubectl get CephBlockPool -n gitlab
NAME                 AGE
gitlab-replicapool   3d15h
[root@kubernetes01 ~]# 

3、部署Redis

如果你已经有可以使用的Redis和Postgresql应用组件、你可以直接在GitLab的环境变量中直接使用即可;这里我们重新部署一套Redis和Postgresql应用组件、对应的Redis资源清单文件如下:

# Service
kind: Service
apiVersion: v1
metadata:
  name: gitlab-redis
  labels:
    name: gitlab-redis
spec:
  type: ClusterIP
  ports:
    - name: redis
      protocol: TCP
      port: 6379
      targetPort: redis
  selector:
    name: gitlab-redis
# PVC
--- 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-redis-pv-claim
  labels:
    app: gitlab
spec:
  storageClassName: gitlab-rook-ceph-block
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
# Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
  name: gitlab-redis
  labels:
    name: gitlab-redis
spec:
  replicas: 1
  selector:
    matchLabels:
      name: gitlab-redis
  template:
    metadata:
      name: gitlab-redis
      labels:
        name: gitlab-redis
    spec:
      containers:
      - name: gitlab-redis
        image: 'redis:6.2'
        ports:
        - name: redis
          containerPort: 6379
          protocol: TCP
        volumeMounts:
          - name: gitlab-redis-persistent-storage
            mountPath: /var/lib/redis
        livenessProbe:
          exec:
            command:
              - redis-cli
              - ping
          initialDelaySeconds: 5
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        readinessProbe:
          exec:
            command:
              - redis-cli
              - ping
          initialDelaySeconds: 5
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
      # 持久化存储配置
      volumes:
      - name: gitlab-redis-persistent-storage
        persistentVolumeClaim:
          claimName: gitlab-redis-pv-claim
[root@kubernetes01 gitlab]# vi redis-deploy.yaml 
[root@kubernetes01 gitlab]# kubectl apply -f redis-deploy.yaml -n gitlab
service/gitlab-redis created
persistentvolumeclaim/gitlab-redis-pv-claim created
deployment.apps/gitlab-redis created
[root@kubernetes01 gitlab]# 

[root@kubernetes01 ~]# kubectl get svc -n gitlab|grep redis
gitlab-redis        ClusterIP   10.254.76.24     <none>        6379/TCP        3d15h
[root@kubernetes01 ~]# kubectl get pod -n gitlab|grep redis   
gitlab-redis-5899459775-s5xb9        1/1     Running   0          3d15h
[root@kubernetes01 ~]# kubectl get pvc -n gitlab|grep redis   
gitlab-redis-pv-claim        Bound    pvc-507b78ec-d9dc-48da-8a25-7a696734804a   5Gi        RWO            gitlab-rook-ceph-block   3d15h
[root@kubernetes01 ~]# 

4、部署postgresql

然后就是部署postgresql数据库,对应的资源清单文件如下:

# Service
kind: Service
apiVersion: v1
metadata:
  name: gitlab-postgresql
  labels:
    name: gitlab-postgresql
spec:
  ports:
    - name: postgres
      protocol: TCP
      port: 5432
      targetPort: postgres
  selector:
    name: postgresql
  type: ClusterIP
---
# PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-postgresql-pv-claim
  labels:
    app: gitlab-postgresql
spec:
  storageClassName: gitlab-rook-ceph-block
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
---
# Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
  name: gitlab-postgresql
  labels:
    name: gitlab-postgresql
spec:
  replicas: 1
  selector:
    matchLabels:
      name: postgresql
  template:
    metadata:
      name: postgresql
      labels:
        name: postgresql
    spec:
      containers:
      - name: gitlab-postgresql
        image: sameersbn/postgresql:12-20200524
        ports:
        - name: postgres
          containerPort: 5432
        env:
        - name: DB_USER
          value: gitlab
        - name: DB_PASS
          value: admin@1234
        - name: DB_NAME
          value: gitlab_production
        - name: DB_EXTENSION
          value: 'pg_trgm,btree_gist'
        livenessProbe:
          exec:
            command: ["pg_isready","-h","localhost","-U","postgres"]
          initialDelaySeconds: 30
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        readinessProbe:
          exec:
            command: ["pg_isready","-h","localhost","-U","postgres"]
          initialDelaySeconds: 5
          timeoutSeconds: 1
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        volumeMounts:
        - name: gitlab-postgresql-persistent-storage
          mountPath: /var/lib/postgresql
      # 持久化存储配置
      volumes:
      - name: gitlab-postgresql-persistent-storage
        persistentVolumeClaim:
          claimName: gitlab-postgresql-pv-claim

变量说明:

参数名称 默认值 描述
DB_USER 创建一个数据库用户
DB_PASS 指定创建的用户的密码
DB_NAME 创建一个数据库并指定库名
DB_EXTENSION 指定安装的扩展包

详情可查看该镜像的 Github 文档:https://github.com/sameersbn/docker-postgresql

[root@kubernetes01 gitlab]# kubectl apply -f postgresql-deploy.yaml -n gitlab
service/gitlab-postgresql created
persistentvolumeclaim/gitlab-postgres-pv-claim created
deployment.apps/postgresql created
[root@kubernetes01 gitlab]# 

[root@kubernetes01 ~]# kubectl get svc -n gitlab|grep postgresql
gitlab-postgresql   ClusterIP   10.254.114.179   <none>        5432/TCP        2d21h
[root@kubernetes01 ~]# kubectl get pod -n gitlab|grep postgresql
gitlab-postgresql-678f8fc4c6-pcxzp   1/1     Running   0          2d21h
[root@kubernetes01 ~]# kubectl get pvc -n gitlab|grep postgresql
gitlab-postgresql-pv-claim   Bound    pvc-2600b476-fe09-46dc-924d-c594b0282836   50Gi       RWO            gitlab-rook-ceph-block   2d21h
[root@kubernetes01 ~]# 

5、部署GitLab

Redis和Postgres部署完成之后我们就开始不是核心应用GitLab。这里我们部署的是GitLab14.1.0版本、GitLab 14.0版本是一个大的版本更新;官方称呼其为:GitLab 14 是一个完整的 DevOps 平台。下面我们一起来看看GitLab 14都有哪些变化:

Epic Boards:Epic Boards 通过持续传达 Epic 状态来调整团队和组织,它在一个统一的地方可视化和优化所有 Epic,使用可自定义的拖放界面,任何用户都可以轻松理解和协作。Epic Boards 也是管理和可视化理想 Epic 工作流的游戏规则改变者,例如创作工作流状态(草稿、写作、完成)、DevOps 工作流状态(例如计划、开发和生产中)或任何其他互斥的说明可以使用范围标签进行建模。通过 Epic Boards 可视化工作流程使能够提高可预测性和效率。

image-20210803195248158

内置的 Terraform 模块注册表:Terraform 模块在构建整个组织的标准基础架构组件方面发挥着核心作用,用户可以使用 GitLab 内置的 Terraform 模块注册表来发现具有语义版本控制支持的 Terraform 模块,以支持升级和维护。此外,还可以使用 GitLab CI/CD 轻松发布模块。

image-20210803193827251

简化顶部导航菜单:GitLab 14.0 引入了一个全新的、精简的顶部导航菜单,以帮助用户更快进入目的地。新的合并菜单提供了以前的项目、组和更多菜单的综合功能。用户只需点击一次即可访问项目、组和实例级功能。此外,全新的响应式设计改进了小屏幕上的导航体验。

image-20210803193921837

支持在 VS Code 中合并请求评论:开发者通常将大部分时间花在本地开发环境中。当他们被分配了一个 PR 进行审查时,这需要离开编辑器并在 GitLab 内执行该审查。在 GitLab 中执行审核时,可能还需要使用本地编辑器来获取有关提议更改的更多背景信息。用于 Visual Studio Code (VS Code) 的 GitLab Workflow 3.21.0 现在支持完整的 PR 审查过程。在 VS Code 中选择 GitLab 图标打开侧边栏以显示正在审查的 PR,选择 PR 概述以查看 PR 的完整详细信息和讨论。

image-20210803194143908

重新设计侧边栏导航:GitLab 14 重新设计和重构了左侧边栏,以提升可用性、一致性和可发现性。

image-20210803194033471

此次版本更新重点围绕在DevOps上,通过简化复杂的工作流程,来提高效率,在效率、可信度且高可见度三个面向都有不少更新。用户在新版本中,最直观感受是UI的更新,顶端的导航变得更简洁,侧栏的导航也经过重新设计,老用户可能需要点时间来适应。GitLab 14.0的目标是要成为一个完整的DevOps平台,提供现代化DevOps功能,在简化工作流的同时,还能供任何用户规模,快速、可信且高可见度的方式,构建和交付软件的体验。

下面我们开始部署 GitLab 14 ;对应的资源清单文件如下:

# Service
kind: Service
apiVersion: v1
metadata:
  name: gitlab
  labels:
    name: gitlab
spec:
  ports:
    - name: http
      protocol: TCP
      port: 80
    - name: ssh
      protocol: TCP
      port: 22
      targetPort: ssh
  selector:
    name: gitlab
---
# PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-pv-claim
  labels:
    app: gitlab
spec:
  storageClassName: gitlab-rook-ceph-block
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
---
# Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
  name: gitlab
  labels:
    name: gitlab
spec:
  replicas: 1
  selector:
    matchLabels:
      name: gitlab
  template:
    metadata:
      name: gitlab
      labels:
        name: gitlab
    spec:
      containers:
      - name: gitlab
        image: 'sameersbn/gitlab:14.1.0'
        ports:
        - name: ssh
          containerPort: 22
        - name: http
          containerPort: 80
        - name: https
          containerPort: 443
        env:
        - name: TZ
          value: Asia/Shanghai
        - name: GITLAB_TIMEZONE
          value: Beijing
        - name: GITLAB_SECRETS_DB_KEY_BASE
          value: long-and-random-alpha-numeric-string
        - name: GITLAB_SECRETS_SECRET_KEY_BASE
          value: long-and-random-alpha-numeric-string
        - name: GITLAB_SECRETS_OTP_KEY_BASE
          value: long-and-random-alpha-numeric-string
        - name: GITLAB_ROOT_PASSWORD
          value: admin@1234
        - name: GITLAB_ROOT_EMAIL 
          value: z0ukun@163.com     
        - name: GITLAB_HOST           
          value: 'gitlab.z0ukun.com'
        - name: GITLAB_PORT        
          value: '80'                   
        - name: GITLAB_SSH_PORT   
          value: '22'
        - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS
          value: 'true'
        - name: GITLAB_NOTIFY_PUSHER
          value: 'false'
        - name: DB_TYPE             
          value: postgres
        - name: DB_HOST         
          value: gitlab-postgresql           
        - name: DB_PORT          
          value: '5432'
        - name: DB_USER        
          value: gitlab
        - name: DB_PASS         
          value: admin@1234
        - name: DB_NAME          
          value: gitlab_production
        - name: REDIS_HOST
          value: gitlab-redis
        - name: REDIS_PORT      
          value: '6379'
        livenessProbe:
          httpGet:
            path: /
            port: 80
            scheme: HTTP
          initialDelaySeconds: 300
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        readinessProbe:
          httpGet:
            path: /
            port: 80
            scheme: HTTP
          initialDelaySeconds: 5
          timeoutSeconds: 30
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        volumeMounts:
        - name: gitlab-persistent-storage
          mountPath: /home/git/data
        - name: localtime
          mountPath: /etc/localtime
      volumes:
      - name: gitlab-persistent-storage
        persistentVolumeClaim:
          claimName: gitlab-pv-claim
      - name: localtime
        hostPath:
          path: /etc/localtime

变量说明:

参数名称 默认值 描述
GITLAB_TIMEZONE UTC 指定时区
GITLAB_SECRETS_DB_KEY_BASE 用于加密数据库中的CI机密变量以及导入凭据。如果丢失或旋转了此机密,则将无法使用现有的CI机密。
GITLAB_SECRETS_SECRET_KEY_BASE 用于密码重置链接和其他“标准”身份验证功能。如果丢失或旋转了此机密,电子邮件中的密码重置令牌将重置。
GITLAB_SECRETS_OTP_KEY_BASE 用于加密数据库中的2FA机密。如果您丢失或旋转了此机密,则您的所有用户都将无法使用 2FA 登录。
GITLAB_ROOT_PASSWORD admin@1234 指定 root 用户在首次运行时的密码。(注意:GitLab 要求长度至少为8个字符)。
GITLAB_ROOT_EMAIL admin@example.com!fe 指定 root 用户在首次运行时的电子邮件。
GITLAB_HOST localhost 指定 GitLab 服务器的主机名,默认为 localhost,修改此参数可用配置 Gitlab 库中的克隆地址。
GITLAB_PORT 80 指定 GitLab 服务器的端口号,修改此参数可用配置 Gitlab 库中的克隆地址的端口号。
GITLAB_SSH_PORT $GITLAB_SSH_LISTEN_PORT 指定 ssh 端口号。
GITLAB_NOTIFY_ON_BROKEN_BUILDS true 启用或禁用通知的电子邮件。
GITLAB_NOTIFY_PUSHER true 将推送程序添加到构建通知电子邮件的收件人列表中。
GITLAB_NOTIFY_PUSHER false 将推送程序添加到构建通知电子邮件的收件人列表中。
DB_TYPE postgres 指定数据库类型。
DB_HOST localhost 指定数据库主机地址(k8s service地址)。
DB_PORT 5432 指定数据库服务器端口。
DB_USER root 指定数据库用户名。
DB_PASS 指定数据库密码。
DB_NAME gitlabhq_production 指定数据库名。
REDIS_HOST localhost 指定 Redis 的主机地址。
REDIS_PORT 6379 指定 Redis 端口。

详情可查看该镜像的 Github 文档:https://github.com/sameersbn/docker-gitlab

[root@kubernetes01 ~]# kubectl get pod -n gitlab
NAME                                 READY   STATUS    RESTARTS   AGE
gitlab-f5d7f6c48-54pgk               1/1     Running   0          2d21h
gitlab-postgresql-678f8fc4c6-pcxzp   1/1     Running   0          2d21h
gitlab-redis-5899459775-s5xb9        1/1     Running   0          3d16h
[root@kubernetes01 ~]# kubectl get pvc -n gitlab
NAME                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS             AGE
gitlab-postgresql-pv-claim   Bound    pvc-2600b476-fe09-46dc-924d-c594b0282836   50Gi       RWO            gitlab-rook-ceph-block   2d21h
gitlab-pv-claim              Bound    pvc-78edce38-4797-4d2f-ab36-31e3b6748534   50Gi       RWO            gitlab-rook-ceph-block   2d21h
gitlab-redis-pv-claim        Bound    pvc-507b78ec-d9dc-48da-8a25-7a696734804a   5Gi        RWO            gitlab-rook-ceph-block   3d16h
[root@kubernetes01 ~]# kubectl get storageclass -n gitlab
NAME                      PROVISIONER                  RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
gitlab-rook-ceph-block    rook-ceph.rbd.csi.ceph.com   Delete          Immediate           true                   3d16h
harbor-rook-ceph-block    rook-ceph.rbd.csi.ceph.com   Delete          Immediate           true                   12d
jenkins-rook-ceph-block   rook-ceph.rbd.csi.ceph.com   Delete          Immediate           true                   2d8h
rook-ceph-block           rook-ceph.rbd.csi.ceph.com   Delete          Immediate           false                  8d
[root@kubernetes01 ~]# kubectl get svc -n gitlab
NAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
gitlab              ClusterIP   10.254.99.74     <none>        80/TCP,22/TCP   2d21h
gitlab-postgresql   ClusterIP   10.254.114.179   <none>        5432/TCP        2d21h
gitlab-redis        ClusterIP   10.254.76.24     <none>        6379/TCP        3d16h
[root@kubernetes01 ~]# 

创建完成之后我们可以查看POD、SVC的部署状态。成功部署之后我们通过Traefik IngressRoute来访问GitLab。

注:Redis和Postgres的环境变量配置可以根据自己的实际需求进行修改。

6、访问GitLab

我们来创建Traefik IngressRoute用于访问GitLab、资源清单文件如下:

[root@kubernetes01 traefik-ingressroute]# cat gitlab-ingressroute-http.yaml 
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: gitlab-webui
  namespace: gitlab
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`gitlab.z0ukun.com`)
    kind: Rule
    services:
    - name: gitlab
      port: 80

从下图可以看到我们已经成功创建Traefik IngressRoute、下面我们用gitlab.z0ukun.com这个域名来访问GitLab(记得修改hosts文件)。

image-20210731230330858

访问gitlab.z0ukun.com我们已经可以看到GitLab的登录页面、我们使用上面配置的账号密码登录GitLab:

image-20210731230354043

默认的GitLab里面有一个Monitoring的项目、到此 Gitlab 已经部署完毕,详细的操作方法和使用教程各位小伙伴请自行百度。

image-20210731230421014

7、使用GitLab

Gitlab 运行后,我们可以注册为新用户并创建一个项目,还可以做很多的其他系统设置,比如设置语言、设置应用风格样式等等。点击Create blank project创建一个新的项目,和 Github 使用上没有多大的差别。

image-20210803204816165

image-20210803204952955

image-20210803205137788

创建完成后,我们可以添加本地用户的一个SSH-KEY,这样我们就可以通过 SSH 来拉取或者推送代码了。SSH 公钥通常包含在~/.ssh/id_rsa.pub 文件中,并以ssh-rsa开头。如果没有的话可以使用ssh-keygen命令来生成,id_rsa.pub里面的内容就是我们需要的 SSH 公钥,然后添加到 Gitlab 中。这里我们把kubernetes01节点已有的SSH公钥添加到GitLab中。

[root@kubernetes01 z0ukun]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkpr6gQBAVYDWSV8Fz9ykfwvwvsLpnVRDhPCv6vtOxkylyn19NX0AqdetBYbmCGE179uuMDn5t8nrIUhFu+DNY/Oa2Glgdln8aQkxQqruLhIFHWSjyEWqEGZwoYrKZV7SRnx1bEe0BReVe4a9mf4ptdWlegsXsw6wZ3Q4Xr1zHYOQ3pWhED6W+Ii3uONAa+6Bj2h36RIvWaO86pnBeZn/u2+N6i4Z2MB4tOhgnWiNKkjITBTcDlaSgXkjKrucn/HEI6nqoptHVm/V6bEsLQzqhtTm9MICaOkTJ1PWwAqOq8qDHzWLQ7u7woR1RQYOmSvij2dSuucwL0hpq/iZiLwGx root@kubernetes01
[root@kubernetes01 z0ukun]# 

image-20210803205220533

image-20210803205229352

现在我们就可以去kubernetes01节点的项目目录下面、把代码推送到GitLab了:

# 进入项目目录
[root@kubernetes01 z0ukun]# ls
apps  db.sqlite3  manage.py  media  __pycache__  README.md  setting  static  templates  venv  z0ukun
[root@kubernetes01 z0ukun]# 
# 初始化项目
[root@kubernetes01 z0ukun]# git init
Initialized empty Git repository in /root/z0ukun/.git/
# 添加git 远程url链接
[root@kubernetes01 z0ukun]# git remote add origin http://gitlab.z0ukun.com/root/z0ukun.git
[root@kubernetes01 z0ukun]# git remote set-url origin http://gitlab.z0ukun.com/root/z0ukun.git
# 推送代码到缓存区
[root@kubernetes01 z0ukun]# git add .
# 创建README.md文件
[root@kubernetes01 z0ukun]# touch README.md
# 添加README.md文件
[root@kubernetes01 z0ukun]# git add README.md
# 提交README.md文件
[root@kubernetes01 z0ukun]# git commit -m "add README"
[master (root-commit) 76e0972] add README
 1132 files changed, 176113 insertions(+)
 create mode 100644 .idea/.gitignore
 create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
 ......
  create mode 100644 z0ukun/urls.py
 create mode 100644 z0ukun/wsgi.py
# 推送代码到master
[root@kubernetes01 z0ukun]# git push -u origin master 
Username for 'http://gitlab.z0ukun.com': root
Password for 'http://root@gitlab.z0ukun.com': 
Counting objects: 1229, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1217/1217), done.
Writing objects: 100% (1229/1229), 10.05 MiB | 3.76 MiB/s, done.
Total 1229 (delta 99), reused 0 (delta 0)
remote: Resolving deltas: 100% (99/99), done.
To http://gitlab.z0ukun.com/root/z0ukun.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
[root@kubernetes01 z0ukun]# 

代码推送完成以后我们到GitLab的z0ukun项目中可以看到推送成功的代码。

image-20210803211454889

到这里就表明我们的 Gitlab 就成功部署到了 Kubernetes 集群当中了。

推荐文章