本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/16721826.html
为什么要写企业级持续集成(jenkins + pipeline + k8s)?
目前网上自动化持续集成的资料很多,但基本上都是局限于jenkins自由风格的job,结合shell脚本来实现持续集成,这种方式的缺点也很明显:
1、构建出问题,排查困难
2、构建节点挂了,就不能完成构建任务
而当前主流技术是 “ k8s + 微服务 ” 等,我们完全可以利用k8s的优势来完成持续构建任务,每次构建时可以调度到任意节点,或者是具有指定标签的节点,这就实现了高可用,k8s是动态slave,docker是静态slave;
另外,结合pipeline,可以轻松简单实现持续集成,并且哪个阶段出问题了一目了然,排查起来也容易。
技术栈及流程设计
用到的技术栈:git + gitlab + jenkins + pipeline + maven + harbor + docker + k8s
可以整合python、java等各种自动化测试框架
流程:开发提交代码--》拉取代码(手动、触发)--》mvn打包--》构建镜像--》新镜像发布到k8s--》拉取自动化测试代码--》自动化测试执行--》allure报告,同时,过程中会有钉钉消息推送。
环境:jenkins使用k8s作为构建环境,在某个节点执行测试
说明:由于环境资源不足,省去了拉取代码后的静态代码扫描(SonarQube)、mvn打包后的上传至Nexus制品库(构建结果的仓库)
环境规划
5台虚拟机:
192.168.117.160:harbor、jenkins、maven
192.168.117.161:k8s-master
192.168.117.162:k8s-node01
192.168.117.163:k8s-node02
192.168.117.180:gitlab
每台虚拟机都安装了git