Gitlab CICD 与Kubernetes实践·部署GitLab

本文介绍了如何在Kubernetes集群中部署GitLab,包括配置Redis和PostgreSQL服务,以及设置GitLab服务和Ingress。通过详细步骤,展示了在ACK环境中创建GitLab实例并实现初步访问。
摘要由CSDN通过智能技术生成

format,png

上一篇,简单的从????Gitlab CI/CD方法论中探索实践中大致了解Gitlab在CI/CD功能的基本介绍,现在我们通过在K8s集群内安装GitlabGitlab Runner来为深入探索Gitlab持续集成做好前期准备,首先我们要在集群内安装Gitlab.

集群环境

K8s的集群版本为1.11.5,CNI使用的是Flannel, DNS为KubeDNS

☸️  ACK???? devops  ~  ???? ???? k cluster-info
Kubernetes master is running at https://192.168.99.128:6443
Heapster is running at https://192.168.99.128:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://192.168.99.128:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
monitoring-influxdb is running at https://192.168.99.128:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
☸️  ACK???? devops  ~  ???? ???? k get nodes
NAME                 STATUS   ROLES    AGE   VERSION
cn-beijing.i-2ze01   Ready    master   1y    v1.11.5
cn-beijing.i-2ze02   Ready    master   1y    v1.11.5
cn-beijing.i-2ze03   Ready    master   1y    v1.11.5
cn-beijing.i-2ze04   Ready    <none>   1y    v1.11.5
cn-beijing.i-2ze05   Ready    <none>   1y    v1.11.5

通过学习Github上一个开源项目Dockerized GitLab[1]在kubernetes上进行GitLab-CE的安装部署,在部署Gitlab的之前,我们需要先部署其依赖的RedisPostgreSQL,然后才能正常的运行gitlab. 这个开源项目中资源配置清单使用的是ReplicationController,这里我将修改使用Deployment控制器:

配置Redis服务

以为redis服务是提供给Gitlab服务使用,并不需要暴露在集群外部,因此我们在gitlab<->redis之间调用的时候,采用内部通信的方式,准备redis的配置清单redis.deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: gitlab-redis # deployment的名字
  namespace: devops # 部署在devops namespace里面
  labels:
    name: gitlab-redis
spec:
  replicas: 1
  template:
    metadata:
      name: gitlab-redis # 约定gitlab-redis的deployment的模板名
      labels:
        name: gitlab-redis
    spec:
      containers:
      - name: redis # pod内redis的容器名
        image: redis:5.0.9 #也可以使用sameersbn的redis镜像,此处我们使用官方的镜像
        imagePullPolicy: IfNotPresent # 镜像的拉取策略
        ports:
        - name: redis
          containerPort: 6379
        volumeMounts:
        - mountPath: /var/lib/redis # 需要持久化的数据目录
          name: data
        livenessProbe: # 进行存活性监测
          exec:
            command:
            - redis-cli
            - ping
          initialDelaySeconds: 30 # 在启动存活性探测之前等待的秒数
          timeoutSeconds: 5 # 探测的超时时长
        readinessProbe:
          exec:
            command:
            - redis-cli
            - ping
          initialDelaySeconds: 5
          timeoutSeconds: 1
      volumes:
      - name: data
        emptyDir: {}

---
apiVersion: v1
kind: Service
metadata:
  name: gitlab-redis-svc
  namespace: devops
  labels:
    name: gitlab-redis-svc
spec:
  ports:
    - name: redis
      port: 6379
      targetPort: redis
  selector:
    name: gitlab-redis

配置postgresql服务

与redis服务一样,我们准备postgresql服务的配置清单postgresql.deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: postgresql
  namespace: devops
  labels:
    name: postgresql
spec:
  template:
    metadata:
      name: postgresql
      labels:
        name: postgresql
    spec:
      containers:
      - name: postgresql
        image: sameersbn/postgresql # latest
        imagePullPolicy: IfNotPresent
        env:
        - name: DB_USER
          value: gitlab
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生生态圈

你的鼓励是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值