一、准备环境
前提是我们在自己电脑上模拟整个流程。
假设我们需要搭建一主一从的k8s集群,那就需要安装VMvare和Centos7(点击我查看安装文档),
然后就可以在这两个虚拟机上搭建k8s集群了(点击我查看安装文档),
一个最简单的devops流程已经在标题中写明了,
其中可以搭建gitlab(点击我查看安装文档),也可以使用gitee或者github进行测试,我本次使用gitee进行测试,
然后jenkins作为全流程大总管(点击我查看安装文档),
jenkins首先将从git仓库拉取代码到虚拟机,这个时候我们需要将代码打包成jar包,
此时就需要使用maven仓库的支持(点击我查看安装文档),
然后需要对打好的jar包打docker镜像(点击我查看安装文档),
之后就需要把docker镜像推送到harbor仓库(点击我查看安装文档),
然后我们远程调用k8s命令来创建应用
二、实践上述流程
1、准备代码,并且上传到gitee
我的代码在gitee上的test_local_maven
分支下,这里我把项目直接提供给大家
百度网盘下载信息如下:
链接:https://pan.baidu.com/s/1ra1B3pl2NyVg5PIb4hOiRw?pwd=030o
提取码:030o
2、在jenkins中创建多分支流水线
点击新建任务:
填写任务名称:
选择多分支流水线,点击确定按钮:
填写名称和描述:
选择Git为分支源:
把gitee中的仓库地址填入其中:
然后添加用户信息,用来下载gitee中的代码:
填写账号和密码等信息:
之后选择刚刚创建的账号信息:
根据情况查看是否需要调整Jenkinsfile路径:
点击保存之后就可以构建多分支流水线了,由于本次我只使用一个分支test_local_maven
,所以我把其他分支给停止了
3、配置maven工具
如果不出意外,整体流程在构建jar包的时候会报错,我们看一下项目中的Jenkinsfile文件内容:
maven3
这个名称不是随意取得,而是在Jenkinsfile中配置出来的,那跟随我来配置一下吧,在首页上点击系统管理,如下:
之后点击全局工具配置,如下:
添加maven配置文件的位置:
然后鼠标往下滑,在页面最下方可以看到如下内容:
点击Maven安装按钮之后,配置maven相关信息:
上图配置的别名maven3
就是Jenkinsfile中的maven工具名称了,如下:
这个时候就可以尝试构建了
4、配置k8s主节点所在虚拟机连接信息
首先点击Jenkins中的系统管理:
然后点击系统配置:
把鼠标滑到页面下方,找到Publish over SSH
,然后在下面SSH Servers
中配置k8s主节点所在虚拟机连接信息:
我展示一下我的配置信息:
现在看下高级中的密码配置:
然后看看是否需要更改默认的端口(默认端口:22)配置,然后测试一下虚拟机连接情况:
我们先讲下这个位置将会影响哪里,继续看项目中的Jenkinsfile:
这样来说,我们可以把yaml文件从jenkins所在虚拟机发送到k8s主节点所在虚拟机了,然后在k8s主节点上执行kubectl命令就可以创建服务了
5、解读Jenkinsfile
Jenkinsfile文件是整体灵魂
- 可以通过maven构建项目
- 打docker镜像,并且往harbor仓库推送镜像
- 发送yaml文件到k8s主机所在虚拟机,然后通过kubectl命令构建服务