赞
踩
前言
说到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。
系统管理-->节点管理-->Configure Clouds,配置完成点击测试连接,如果显示kubernetes集群版本信息,说明配置正确。图文步骤如下:
gitlab认证信息:用于从gitlab仓库中拉取代码
harbor仓库认证信息:用于上传及拉取镜像
配置jenkins-slave在k8s集群中部署应用所需的认证权限文件
系统管理-->Managed file-->Add a new Config
在流水线模块选择Git,输入项目地址,选择提前配置好的认证信息,脚本路径填Jenkinsfile。
构建:
Jenkins页面选择创建的项目,点击立即构建
此处出现的选项都是在Jenkinsfile中定义好的
构建输出:
输出日志提示SUCCESS,同时收到钉钉通知消息
项目访问测试:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。