【k8s】Jenkins实现Java应用CI、CD实践 【二】【待写】

news2024/11/17 14:29:11

一、运行Jenkins流水线流程思路:

场景1:常规java应用,使用jenkins pipeline 交付到Kubernetes集群中

1、准备好java代码、Dockerfile、 deploy. yaml资源清单文件

CI阶段:
1、获取代码
2、漏洞扫描
3、检测漏洞扫描结果,如果正常则继续、否则就终止
4、使用maven进行编译,打包
5、制作Docker镜像、推送到Harbor仓库
6、交付应用到K8S


CD阶段:
1、获取完整的镜像名称;从Harbor中获取 (curl命令去获取)
2、将完整的镜像名称替换到deploy.yaml这个资源清单中;
3、直接部署到K8S的生产环境名称空间;
4、询问是否需要回退;

二 - java代码提交

1、下载代码

代码地址: https://gitee.com/oldxuedu/springboot-helloworld
wget https://gitee.com/oldxuedu/springboot-helloworld/repository/blazearchive/master.zip

做域名解析 如 10.240.0.201  gitlab.oldxu.net

在这里插入图片描述

2、创建新仓库,推送到gitlab仓库
在这里插入图片描述
在这里插入图片描述

[root@master01 springboot-CICD]# cd springboot-helloworld-master/
[root@master01 springboot-helloworld-master]# 
[root@master01 springboot-helloworld-master]# ls
deploy.yaml  Dockerfile  entrypoint.sh  pom.xml  push_jar.sh  README.md  src


git init
git add remote origin http://gitlab.oldxu.net/root/springboot.git
git add .

git config --global user.email "123456@qq.com"
git config --global user.name  "oldxu"

git commit -m "初始化"
git push -u origin master

在这里插入图片描述

deploy.yaml 需要替换的变量:
	{NameSpace}
	{Image}
	{host}

三、Pipeline流水线-获取代码

#本小段流程思路:
			1、获取代码
				调用git来获取即可;   
						1、slavePod如何访问Gitlab
							1、通过gitlab的service地址去访问项目;
							2、通过Coredns配置自定义域名解析;(*本文采用该方式)
						
						2、Gitlab项目是私有的 如何处理;
							需要 在jenkins上配置好对应gitlab认证的信息;
				
				才能使用pipeline去获取代码
				  environment{
					Gitlab_Id = "gitlab-root-token"
					Gitlab_Pro = "http://gitlab.oldxu.net/root/springboot.git"
				}
#过Coredns配置自定义域名解析;
kubectl edit configmap -n kube-system coredns

四、Pipeline流水线-漏洞扫描

五、Pipeline流水线-代码编译

六、Pipeline流水线-制作Docker镜像

七、Pipeline流水线-交付应用至K8S

八、Pipeline流水线-全自动CI过程及测试

九、PipelineCD流水线-获取Harbor镜像Tag

十、PipelineCD流水线-部署应用至K8S生产环境

十一、PipelineCD流水线-应用回滚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL8.0卸载、安装和使用(一)

1、MySQL数据库的卸载 有小伙伴在学MySQL的时候总是出现各种问题,MySQL的安装都会出现许多问题,今天以MySQL8.0作为示范,需要注意的问题和正确的使用方式。因为MySQL是系统软件,相对复杂,因此先讲卸载。 步骤一&#x…

病毒丨文件夹病毒

作者丨黑蛋 一、基本信息 文件名称 880753802c3e6f4b5269062d4e76200c66e3a71e2118702e24d2b32c19dddfd2 文件类型(Magic) PE32 executable (GUI) Intel 80386, for MS Windows 文件大小 479.50KB SHA256 880753802c3e6f4b5269062d4e76200c66e3a71e2118702e24d2b32c19dddfd2 …

青龙面板使用教程,以及安装

1. 青龙面板使用教程,以及安装 首先青龙面板是在docker里面的,我们要安装一个docker 我这里只有debian 11 安装的教程 如何在debian11上安装docker - 知乎 这个文章不错了,按命令执行就好了,其他操作系统的。去网上搜索安…

Unity - BRP - PP后效导致 Camera.targetTexture 被换掉,graphicsFormat 不对问题

文章目录 环境目的原因问题解决方法 环境 Unity : 国际版2020.3.37f1 Pipeline : BRP Packages: Post Processing 3.0.3 目的 BRP 虽然是 官方放弃更新的 渲染管线,但是有些项目仍然会使用到,有一些踩过的坑,该记录的还是记录一下&#xff…

Python爬虫入门 - 通过茅台脚本讲些爬虫知识,应用和价值

前言 前段时间抢茅台脚本非常火,它是 Python 脚本,加上刚好最近在学习 Python,我们准备通过这个脚本,来加深学习 Python。 抢茅台的脚本其实属于爬虫脚本的一类,它实现了模拟登陆,模拟访问并抓取数据。于…

chatgpt api调用方法指南

文章目录 python调用chatgpt api的方法获取api可以调用的模型各种任务代码示例文本分类任务文本生成(补全)任务多轮对话任务 机器翻译任务文本摘要任务信息抽取任务 本文主要介绍使用python调用chatgpt api的方法,并提供一些任务的代码样例&a…

2023年认证杯C题超详细思路配有实现代码

2023年认证杯初步解题思路 后续会更新思路对应的实现代码 问题一思路 数据预处理:首先,根据描述,你已经有了心电波形的功率谱密度数据。你可以将频率范围从0 Hz到180 Hz分成361个频率间隔为0.5 Hz的数据点。确保数据格式正确,并…

chatgpt赋能Python-python2虚拟环境

Python2虚拟环境——加强你的编程能力 Python是一种广泛应用于Web开发,数据科学和机器学习等领域的编程语言。但是,由于不同的应用程序需要使用不同的Python库和版本,因此在不同的项目之间切换时可能会出现问题。 Python虚拟环境可以帮助您解…

八股总结(五)java基础、集合、并发、JVM

文章目录 接口、类与继承java中创建对象有哪几种方式? 和equal区别是什么?hashCode()为什么重写equals方法必须重写hashcode方法?String为什么设计成不可变的?String,StringBuffer,StringBuilder的区别是什么&#xf…

2023年改版第七版PMBOK后的PMP到底考什么?出题依据是什么?

2023年改版第七版PMBOK后的PMP到底考什么?出题依据是什么? 自从PMBOK(Project Management Body of Knowledge)第一版于1987年发布以来,它已成为项目管理领域的标准参考。PMBOK指南是Project Management Institute&…

Python画图设置坐标轴数字的千位分隔符

目录 导入必要的库创建图形并设置坐标轴设置坐标轴的千位分隔符完整代码效果图 当使用Python进行绘图时,可以使用 Matplotlib库来设置坐标轴上的数字的千位分隔符。下面是一个完整的教程,其中包含代码示例。 导入必要的库 在开始编写代码之前&#xff…

Java学习平台系统的设计与实现

背景 本次设计任务是要设计一个学习平台,通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信…

使用sqoop从Hive导出数据到MySQL

1、启动hadoop:start-all.sh。 2、启动mysql:support-files/mysql.server start。 3、启动hive:hive。 4、在hive中创建表。 (学生信息:学号xh,姓名xm)xsxx: create table bigda…

streamlit魔法使用

正常在学习一个新框架之前, 肯定要先调研下这个框架究竟能做些什么事吧? 但对于 streamlit 来说,请你相信我,这是一个你可以无脑去学习的框架,我之所以这么说,是因为我相信终有一天,你一定能用…

11. Mysql执行原理之索引合并详解

MySQL性能调优 1. Intersection合并1.1 情况一:等值匹配1.2 情况二:主键列可以是范围匹配 2. Union合并2.1 情况一:等值匹配2.2 情况二:主键列可以是范围匹配2.3 情况三:使用Intersection索引合并的搜索条件 3. Sort-U…

云厂商纷纷降价开启新一轮价格大战,行业竞争加剧未来何从?

5月16日晚间,腾讯云和移动云两大云服务商相继宣布对旗下多款核心产品进行降价。其中,腾讯云降价幅度最高达40%,移动云部分产品直降60%。 而就在20天前4月26日阿里云2023合作伙伴大会上,阿里巴巴CEO张勇率先宣布启动“史上最大规模…

服务(第二十五篇)redis的优化和持久化

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下…

win7虚拟机无法安装VMwaretools的处理办法(亲测有效!)

最近在学习中用到要安装win7系统,于是我在虚拟机里装了win7系统,但是却发现无法安装VMware tools,最后经多方查证,以下方法可解决! 这里提示需要将原始win7升级到win7 SP1版本,可在控制面版——系统和安全…

ChatGPT应用场景巡航之会议纪要

今天我们拿昨天(2023年5月17日)腾讯发布2023年一季报会议来举例。 首先刚开篇Pony(马化腾)说的一段话来看下知否AI问答多场景中的会议纪要表现如何: 马化腾:谢谢你,温迪。晚上好。感谢您加入我…

macOS Monterey 12.6.6 (21G646) 正式版发布,ISO、IPSW、PKG 下载

macOS Monterey 12.6.6 (21G646) 正式版发布,ISO、IPSW、PKG 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持…