安装k8s jenkins maven gitlab harbor 过程略过~
记得在jenkins机器上yum个git就好,因为需要git去连我们的代码库, 做这套的时候踩过的坑,提醒大家
只写配置jenkins和gitlab过程:
1.登陆jenkins,点击系统管理,管理插件,安装 GitHub Branch Source Plugin,Gitlab Authentication plugin,Gitlab Hook Plugin,GitLab Plugin,Maven Repository Server Plugin,Publish Over SSH,Workspace 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数量即可,如图:
自动伸缩详见官方文档~