jenkins+maven+gitlab+harbor+k8s的 CI/CD

安装k8s  jenkins  maven gitlab harbor 过程略过~

记得在jenkins机器上yum个git就好,因为需要git去连我们的代码库, 做这套的时候踩过的坑,提醒大家

只写配置jenkins和gitlab过程:

1.登陆jenkins,点击系统管理,管理插件,安装 GitHub Branch Source PluginGitlab Authentication pluginGitlab Hook PluginGitLab PluginMaven Repository Server PluginPublish Over SSHWorkspace Cleanup Plugin 这些插件(应该写全了)

2.返回首页 点击新建任务

3.配置jenkins项目

(1)写好描述 主要是写上项目名

(2)配置git地址

注:第一个红框标起来的是git地址,是从gitlab上获取的,首先登陆gitlab,如下图,从这里获取

而第二个红框标识的证书而是需要从jenkins初始页面凭据添加的,首先点击jenkins首页的凭据,依次点击

之后点击

类型选择:

之后设置成如图样子,注意username要和登陆jenkins的用户一样,证书生成也不多说,在jenkins本机生成,贴上去即可,ID选项不用管,之后会自动生成一串ID:

设置好凭据后,回到创建jenkins项目的界面,选择:

如果出现大片红色报错,没关系,那一定是gitlab没有配置jenkins的密钥,去配置一下,首先打开gitlab,点到相应项目中,再点击图中位置,填写好.ssh/id.rsa.pub中的内容即可:

再回到jenkins看看是否可以了呢,可以了就不会报一片红~  继续下一步

(3)构建触发器选择基本默认,有别的需要可以自定义:

这个选项中的url之后会用到,需要配置到gitlab~

(4)接下来就是maven打包这里,配置pom.xml的绝对路径,然后输入打包命令,将会自动完成:

(5) 接下来就是配置建立后的步骤:

添加shell,完成要完成的动作(根据自己需求来)

再添加一段ssh,通过这个把生成的包或者文件传到master并执行命令:

配置好点击保存,这样,jenkins就算完成了,接下来去到gitlab看下:

点到相应的项目中,配置url,这个url在jenkins配置的时候出现过,复制过来即可,保存

配置好以后,拉到底下,我们测试一下:

出现这样说明配置成功了:

这样子整套CI/CD流程也就做完了,提交代码后会自动打包部署。

(在这之间遇到了不少坑,如果有什么问题可以写到评论区,我会解答~)

 

 

测试:

 

写博客的这个项目我并没有保存,毕竟也是公司环境,所以我拿之前配置好的一个项目(项目名:docker)做下测试,记录下成果:

首先我提交代码,看jenkins变化:

部署已经成功了,看下部署过程:

部署已经完成了,去机器上看下:

下图可以看到这个pod镜像是刚打出来的,v33版本

去harbor看下镜像,是有的:

 

那么我们发现一个问题,cicd是做好了,可是如果版本有问题,怎样回滚呢,其实也是很好解决的,可以用k8s自己的rolling update机制去完成,不但可以回滚版本,还可以弹性伸缩pod数量。

首先先试一下回滚,查看一下之前的版本:

让我们用一条命令回滚到上一版本:

看下现在pod用的是否是上个版本的镜像:

之前我们是v33版本,回滚到v32版本也是成功了,接下来说下怎样回滚到指定版本:

通过一条   kubectl rollout undo deployment deploy名 --to-revision=2

指定版本前方所对应的数字即可。

 

 

接下来说如何弹性伸缩:

手动伸缩通过命令:kubectl scale deployment deploy名 --replicas=2

设定replicas数量即可,如图:

自动伸缩详见官方文档~