基于Kubernetes和Jenkins Pipeline的持续自动化项目
来源:http://www.tudoupe.com时间:2022-02-25
Kubernetes + Jenkins Pipeline 自动化实战
- 介绍
- 环境
- Jenkins安装
- Pipeline流水线
- 配置Kubernetes集群
- kubernetes集群证书生成
- 添加构建pod模板
介绍
本文是基于云原生概念使用jenkins **Pipeline流水线 **项目声明式脚本形式进行SpringBoot项目持续构建和发布的实战教程.
环境
项目需要环境 Gitlab、Kubernetes集群、Jenkins
k8s集群和Gitlab 搭建将在后续整理,本次只介绍Jenkins的安装配置以及Pipeline的使用
Jenkins安装
GitHub jenkinsci kubernetes-plugin 官网提供的 jenkins.yaml 和 service-account.yaml 文件,这里官网使用的是比较规范的 StatefulSet(有状态集群服务)方式进行部署,并配置了 Ingress 和 RBAC 账户权限信息。
创建jenkins-1-namespace.yaml创建新的命名空间
创建jenkins-2-rbac.yamlRBAC账户权限信息
创建jenkins-3-storage.yamlpvc
创建jenkins-4-deploy.yamljenkins服务
创建jenkins-5-ingress.yamlIngress
** 创建jenkins-6-maven-pvc.yaml** maven挂载pvc
切换新的命名空间, 创建jenkins服务
运行命令查看服务
通过浏览器打开 http://:32000
初始化过程中,让输入 /var/jenkins_home/secret/initialAdminPassword 初始密码, 执行
获取密码后下一步, 开始初始化插件安装, 等安装完成后(如部分插件安装失败可以先跳过, 之后在系统设置>插件管理 继续安装)
登录后, 查看插件

Pipeline流水线
新建任务, 选择流水线项目
在流水线定义栏选择 Pipeline script ,输入以下内容, 点击应用>保存.(其他忽略)
创建完成后, 点击立即构建, 可以看到输出以下内容
至此jenkins安装, 测试Pipeline结束
配置Kubernetes集群
在jenkins控台搜索kubernetes插件并下载,安装成功后重启jenkins
然后进入系统管理>节点管理>配置集群
添加一个新的集群
配置集群, 应用并保存,证书详见下方生成说明

点击连接测试, 出现k8s信息则表示成功
kubernetes集群证书生成
在Kubernetes Master
将生成的Kubernetes Client P12 Certificate cert.pfx 证书下载到本地, 在集群配置选择添加jenkins凭据

将ca.crt内容填充到Kubernetes 服务证书 key
添加构建pod模板
为了能够完成项目构建, 我们需要 jenkins-slave子节点、maven环境、docker环境,为了第一次方便一步步尝试, 我们需要创建三个 Pod Template
jenkins-slave
我们最先需要的是一个jenkins的构建节点,配置如下

此时我们可以新建一个pipeline项目demo2, 来测试jenkins-slave,这个容器中会有一个jdk环境,可以进行如下测试, kubernetes为集群, inheritfrom指定我们构建使用的pod标签, 在容器内运行 java -version
maven pod
创建构建需要的maven环境, 配置如下
maven每次构建项目都要去拉取jar包,重复构建肯定会浪费很多时间, 因此我们为pod添加一个pvc, 此处的 jenkins-maven-pvc就是上面jenkins-6-maven-pvc.yaml创建的pvc
创建新的pipeline工程进行测试, 这里注意我们用的就是集群里我们刚刚创建的maven-3.6 pod了,可以看下mvn 的版本
docker pod
在jenkins管理中心安装插件 docker 和 docker pipeline
配置docker pod
此处我们还要配置一个特殊的卷,使得我们的容器内的docker能够访问到宿主机上面的docker.sock文件
在集群主节点运行命令获取文件目录, 获取到的路径直接添加到pod模板新增卷 Host Path Volume下
我们在准备好的springboot项目文件夹根目录创建DockerFile文件
创建新的jenkins工程boot-docker流水线任务
环境变量environment
agent使用kubernetes集群下我们刚建的pod模板docker-and-maven
此处为了方便, 我们没有配置git凭据, 而是采用了http方式使用gitlab账户的token进行代码拉取
编译项目
创建docker镜像, 登录docker, 推送镜像
构建完成后,就可以登录Harbor查看自己的镜像了, 后续还会持续构建, 并在pipeline中完成项目的启动与健康检查
此博文部分参考自 b站马哥教育基于Kubernetes和Jenkins的GitOps实战
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
