欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
关于GitLab CI如下图所示,开发者将代码提交到GitLab后,可以触发CI脚本在GitLab Runner上执行,通过编写CI脚本我们可以完成很多使用的功能:编译、构建、生成docker镜像、推送到私有仓库等:
今天咱们会一起完成以下操作:
部署minio,pipeline脚本中的cache功能由minio来实现;
配置和部署GitLab Runner;
编写和运行pipeline脚本;
环境和版本信息本次实战涉及到多个服务,下面给出它们的版本信息供您参考:
GitLab:Community Edition 13.0.6
GilLab Runner:13.1.0
kubernetes:1.15.3
Harbor:1.1.3
Minio:2020-06-18T02:23:35Z
Helm:2.16.1
需要提前准备好的服务以下服务需要您在实战前提前准备好:
部署好GitLab,参考《群晖DS218+部署GitLab》
部署好Harbor,参考《群晖DS218+部署Harbor(1.10.3)》
部署好Helm,参考《部署和体验Helm(2.16.1版本)》
准备完毕后开始实战;
部署miniominio作为一个独立的服务部署,我将用docker部署在服务器:192.168.50.43
在宿主机准备两个目录,分别存储minio的配置和文件,执行以下命令:
mkdir -p /var/services/homes/zq2599/minio/gitlab_runner \ && chmod -R 777 /var/services/homes/zq2599/minio/gitlab_runner \ && mkdir -p /var/services/homes/zq2599/minio/config \ && chmod -R 777 /var/services/homes/zq2599/minio/config执行docker命令创建minio服务,指定服务端口是9000,并且指定了access key(最短三位)和secret key(最短八位):
sudo docker run -p 9000:9000 --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=access" \ -e "MINIO_SECRET_KEY=secret123456" \ -v /var/services/homes/zq2599/minio/gitlab_runner:/gitlab_runner \ -v /var/services/homes/zq2599/minio/config:/root/.minio \ minio/minio server /gitlab_runner浏览器访问,输入access key和secret key后登录成功:
如下图,点击红框中的图标,创建一个bucket,名为runner:
至此,minio已备好,接下来在kubernetes环境部署GitLab Runner;
GitLab Runner的类型从使用者的维度来看,GitLab Runner的类型分为shared和specific两种:
如果您想创建的GitLab Runner给所有GitLab仓库使用,就要创建shared类型;
如果您的GitLab Runner只用于给某个固定的Gitlab仓库,就要创建specific类型;
今天的实战,我们创建的是specific类型,即先有GitLab代码仓库,然后创建该仓库专用的runner,所以请您提前准备好GitLab仓库;
准备GitLab配置信息(specific)在部署GitLab Runner之前,要准备两个关键的配置信息,以便GitLab Runner启动后可以顺利连接上GitLab:
浏览器访问GitLab,打开用来做CI的代码仓库,点击Settings -> CI/CD -> Runners -> Expand:
如下图,红框1中是gitlab url,红框2中是registration token,记好这两个参数,稍后会用到:
本次实战不会创建shared类型的runner,如果您要创建该类型runner,只需按照以下方法准备信息即可,创建出来的runner就是所有仓库都能使用的了:
以管理员身份登录GitLab;
按照下图红框的顺序取得gitlab url和registration token:
请确保当前可以通过kubectl命令在kubernetes进行常规操作;
创建名为gitlab-runner的namespace:
kubectl create namespace gitlab-runner