本文展示搭建具体步骤参考:https://www.yuque.com/qinxi-cvygi/kubernetes/bckk3m
背景说明
之所以分为两个job来发布应用,是为了满足两个需求
- 项目配置文件和代码分离,防止开发人员掌握线上重要配置内容
- 选择分支或者tag上线
Jenkins成品展示
首先展示下搭建成品
整个发布上线分为两个部分、第一步成功构建后主动触发第二步发布job:
第一、构建jar包(maven项目)
第二、发布jar 包到k8s集群(pipeline项目)
说明:
使用Jenkins slave in k8s 部署方式有个特点是Build Executor默认是构建完成后,pod立即销毁,但是我们的项目依赖包特别多,项目之间互相依赖,如果pod立即销毁,那么前一个项目构建的jar包就会随着pod的销毁而不存在,那么下一个项目就不能使用依赖项目的jar包而打包失败,那么解决方式就是使pod构建结束后一直运行,这里使用到一个参数“idleMinutes”,这个参数代表代理pod的存活时间,我这里设置了一年即525600秒
发布服务流程图
Jenkins页面配置
这里分为两个部分展示Jenkins web页面配置,第一部分为构建页面配置,第二部分为发布应用页面配置。
Jenkins需要安装插件
- Aliyun OSS Uploader
- Git Parameter
- Minio Storage
- Parameterized Trigger plugin
- Pipeline
Jenkins 构建页面配置
另外在全局安装配置中,需要安装jdk和maven命令
Jenkins 发布页面配置
发布阶段最重要的配置就是存放在git仓库的Jenkinsfile文件,所有的发布动作都写到这个文件中,具体参考
https://www.yuque.com/qinxi-cvygi/kubernetes/aegs7m
最后展示下发布效果图