
上一篇,简单的从????Gitlab CI/CD方法论中探索实践中大致了解Gitlab在CI/CD功能的基本介绍,现在我们通过在K8s集群内安装Gitlab、Gitlab 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的之前,我们需要先部署其依赖的Redis和PostgreSQL,然后才能正常的运行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:
&n

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

1792

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



