GitLab Runner部署(kubernetes环境)

欢迎访问我的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版本)》

准备完毕后开始实战;

部署minio

minio作为一个独立的服务部署,我将用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,记好这两个参数,稍后会用到:

在这里插入图片描述

准备GitLab配置信息(shared)

本次实战不会创建shared类型的runner,如果您要创建该类型runner,只需按照以下方法准备信息即可,创建出来的runner就是所有仓库都能使用的了:

以管理员身份登录GitLab;

按照下图红框的顺序取得gitlab url和registration token:

在这里插入图片描述

部署RitLab Runner

请确保当前可以通过kubectl命令在kubernetes进行常规操作;

创建名为gitlab-runner的namespace:

kubectl create namespace gitlab-runner

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgjss.html