Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_devops

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD

机器规划

kubernetes集群:v1.20.4

gitlab: gitlab-ce-13.7.1

harbor: v2.2.1

jenkins: jenkinsci/blueocean:latest

发布流程

1、从gitlab拉取代码

2、代码编译

3、打包镜像、上传仓库

4、使用jenkins pod部署至k8s集群中

部署文件清单
[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安装插件

系统管理-->插件管理

搜索安装Git、Git Parameter、kubernetes、Config File Provider、Dingtalk

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_gitlab_02

在jenkins中添加kubernetes云

系统管理-->节点管理-->Configure Clouds

配置完成点击测试连接,如果无报错并显示kubernetes集群版本信息,说明配置正确

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_docker_03

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_docker_04

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_git_05

Jenkins中配置认证信息

1、gitlab认证信息,用于从gitlab仓库中拉取代码

2、harbor仓库认证信息,用于上传及拉取镜像

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_devops_06

3、配置jenkins-slave在k8s集群中部署应用所需的认证权限文件

系统管理-->Managed file-->Add a new Config

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_gitlab_07

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_devops_08

Jenkins中配置pipeline流水线

新建任务-->按提示输入项目名称-->选择流水线-->确定

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_docker_09

在流水线模块选择Git,输入项目地址,选择提前配置好的认证信息,脚本路径填Jenkinsfile

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_tomcat_10

部署测试

jenkins页面选择创建的项目,点击立即构建

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_git_11

此处出现的选项都是在Jenkinsfile中定义好的

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_tomcat_12

构建输出:

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_git_13

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_gitlab_14

输出日志提示SUCCESS,同时收到钉钉通知消息

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_docker_15

项目访问测试:

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_tomcat_16

以上所涉及到的部署清单,因涉及敏感信息,不方便在博文中体现,如有需要留言私信,共同学习探讨。

如果文章对您有帮助,还想了解更过关于k8s相关的实战经验,请微信扫描下方二维码关注“IT运维图谱”公众号或着通过微信搜一搜关注公众号。

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD_git_17