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

Posted 风的影子001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins + Gitlab + harbor + Kubernetes实现CI/CD相关的知识,希望对你有一定的参考价值。

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

在jenkins中添加kubernetes云

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

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

Jenkins

Jenkins

Jenkins


Jenkins中配置认证信息

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

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

Jenkins

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

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

Jenkins

Jenkins

Jenkins中配置pipeline流水线

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

Jenkins

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

Jenkins

部署测试

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

Jenkins

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

Jenkins

构建输出:

Jenkins

Jenkins

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

Jenkins

项目访问测试:

Jenkins

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



以上是关于Jenkins + Gitlab + harbor + Kubernetes实现CI/CD的主要内容,如果未能解决你的问题,请参考以下文章

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

jenkins+gitlab+harbor部署CICD

Docker+Harbor+Jenkins+Gitlab自动化CICD构建

轻松部署Jenkins+harbor+gitlab实现docker的CICD

Gitlab+Harbor+Jenkins pipeline实现利用tag部署docker容器

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作