当前位置: 首页 > docker, 云计算, 虚拟化 > 正文

kubernetes Jenkins gitlab搭建CI/CD环境 (二)

接前一篇文章 kubernetes Jenkins gitlab搭建CI/CD环境–(一),本文介绍在Kubernetes上安装Jenkins。

Jenkins的安装有多种,可以在独立的服务器安装,结合K8S的话可以使用helm,参考:https://github.com/kubernetes/charts/tree/master/stable/jenkins
chart中使用的Jenkins基础镜像 jenkins/jenkins:lts,也可以通过Dockerfile自己定制。
下面是我基于jenkins/jenkins:lts定制的Dockerfile,增加了docker,docker-compose,kubectl和maven,然后使用yaml文件手动部署的。
Jenkins Master的 Dockerfile 如下:

#build docker 镜像

#将build好的docker镜像push到私有docker-harbor中

创建Jenkins部署文件
*** 本文中kubernetes使用namespace均为devns
创建jenkins PersistentVolumeClaim yaml文件

创建jenkins deployment文件

创建jenkins-service

然后执行

待jenkisn pods running后,describe查看pods情况:

Jenkins Master运行没问题,然后配置Ingress,并reload配置。

访问 http://jenkins.kydev.in

解锁密钥可以在kubernetes上执行 kubectl logs kyjenkins-8685458884-j8qjg -f 查看,也可以exec 进入到pods内部查看文件。
可以安装下社区推荐的插件:

Jenkins一些常用的插件,可以根据自己的实际情况安装:

如果使用默认源比较慢,可以多试试其他几个源:

系统管理–云–增加Kubernets连接配置

接下来可以验证Master的工作情况:
创建一个freestyle的job kube-test。

可以看到任务执行成功,kubectl get pods -n devns 可以打印出结果。
接下来配置Jenkins slave
同样Jenkins slave也是采用自定义Dockerfile的方式

将build的镜像push到私有repo中。

下面继续配置Jenkins的Slave节点。
Kubernetes Pod Template 中配置,详见截图

好了,现在Jenkins的jnlp-slave已经配置完毕
下面开始测试:
创建pipeline任务

pipeline script

任务运行成功。

在配置Jenkins-slave是有几个地方需要注意:
(1)Jenkins slave使用自定义镜像调用kubectl时freestyle的任务可以在构建环境中指定『setup kubernetes CLI』,但是在pipeline中就需要在镜像里面做文章了,可以参考jenkins-slave的Dockerfile,需要将三个证书文件和config文件传入到镜像中,创建kubectl-cert-cm的configmap。
(2)pipeline中的podTemplate指定了自定义的image,但是实际启动中还是会默认再启动一个jenkins/jnlp-slave:alpine的镜像。然而这个alpine本身就有很多”坑”,比如dns解析的问题,在slave的镜像里面git代码会报Can’t resolve git server host。解决方式就是注释掉/etc/resolv.conf里面的”options ndots:5″ 这行,具体见我之前的文章:kubernetes 使用基于 alpine 镜像无法正常解析外网DNS

好了,接下来的文章会介绍kubernetes上安装gitlab,配置钩子自动出发流程,以及本文涉及的一个简单的tomcat-maven测试环境。

本文固定链接: https://www.sudops.com/kubernetes-jenkins-gitlab-ci-cd-env-2.html | 运维·速度

该日志由 Fisher 于2018年05月24日发表在 docker, 云计算, 虚拟化 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: kubernetes Jenkins gitlab搭建CI/CD环境 (二) | 运维·速度
关键字: , , , , ,

kubernetes Jenkins gitlab搭建CI/CD环境 (二):等您坐沙发呢!

发表评论


Time limit is exhausted. Please reload the CAPTCHA.

快捷键:Ctrl+Enter