前言
说到Kubernetes的CI/CD,可以使用的工具有很多,比如 Jenkins、Gitlab CI 以及Tekton等等,这篇文章分享Kubernetes结合Jenkins、Gitlab、Harbor实现一个CI/CD流水线。
我们是基于Kubernetes来实现CI/CD,那么我们就将所有涉及的组件部署在Kubernetes集群中,这样看起来显得更加的云原生。
环境规划
Kubernetes Version:v1.20.4 Gitlab Version:gitlab-ce-13.7.1
Harbor Version:v2.2.1
Jenkins Version:jenkinsci/blueocean:latest
发布流程
- 从gitlab拉取代码
- 代码编译
- 打包镜像、上传仓库
- 使用jenkins pod部署至k8s集群中
部署清单
安装的方式也有很多,我们这里采用手动的方式,这样可以了解更多部署细节。需要事先准备好Harbor镜像仓库和Gitlab代码托管仓库。
涉及的部署资源清单比较多,由于文章篇幅原因,文章中仅提供部署清单目录结构及配置步骤,如需部署清单,可在公众号后台留言。
目录结构:
[root@devops maven-java-pipeline-app]# tree
.
├── deploy.yaml
├── Dockerfile
├── jenkinsci
│ └── jenkinsci.yml
├── Jenkinsfile
├── jenkins-slave
│ ├── Dockerfile
│ ├── jenkins-slave
│ ├── kubectl
│ ├── settings.xml
│ └── slave.jar
├── pom.xml
├── README.md
├── src
└── tomcat8
├── apache-tomcat-8.5.73.tar.gz
├── Dockerfile
└── jdk-8u151-linux-x64.tar.gz
部署Jenkins
#kubectl apply -f jenkinsci/jenkinsci.yml
制作Tomcat镜像
# 镜像仓库名按需修改
#docker build -t devops.sly.com/library/tomcat8 .
#docker push devops.sly.com/library/tomcat8
制作Jenkins-slave镜像
# 镜像仓库名按需修改
#docker build -t harbor.sly.com/library/jenkins-slave-jdk .
#docker push harbor.sly.com/library/jenkins-slave-jdk
配置Jenkins
安装插件:
进入Jenkins系统管理–>插件管理,搜索安装Git、Git Parameter、kubernetes、Config File Provider、Dingtalk。
添加kubernetes云:
系统管理–>节点管理–>Configure Clouds,配置完成点击测试连接,如果显示kubernetes集群版本信息,说明配置正确。图文步骤如下:
配置认证信息:
- gitlab认证信息:用于从gitlab仓库中拉取代码
- harbor仓库认证信息:用于上传及拉取镜像
- 配置jenkins-slave在k8s集群中部署应用所需的认证权限文件
系统管理–>Managed file–>Add a new Config
配置pipeline流水线:
在流水线模块选择Git,输入项目地址,选择提前配置好的认证信息,脚本路径填Jenkinsfile。
构建:
Jenkins页面选择创建的项目,点击立即构建
此处出现的选项都是在Jenkinsfile中定义好的
构建输出:
输出日志提示SUCCESS,同时收到钉钉通知消息
项目访问测试:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=15630,转载请注明出处。
评论0