一种基于Kubernetes集群的多版本web服务发布方法与流程

未命名 07-23 阅读:89 评论:0

一种基于kubernetes集群的多版本web服务发布方法
技术领域
1.本发明涉及web服务技术领域,特别是一种基于kubernetes集群的多版本web服务发布方法。


背景技术:

2.现在基于kubernetes部署的云原生服务越来越多,在传统的发布平台中的思路中,每一次部署只能选择某个项目的代码的分支来进行部署。如果开发团队想要部署多个分支并且对多个分支按照版本对外提供web服务,则往往不能实现。
3.例如当用户发送请求时,需要根据用户请求提供对应版本的服务。传统的发布只能升级该服务的最新版本,无法提供多个版本。而且传统的发布平台构建环境复杂,错综复杂的微服务项目并没有进行统一的环境构建、部署和交付,导致发布的效率不高;而且现有发布平台往往基于某个web服务的最新的版本,无法自动的按照版本号提供特定的服务,这些发布平台一般基于传统的发布,例如使用人工发布或者基于非云原生方式部署,无法提供云原生方法的部署,对于发布来说,流程太复杂,资源消耗太多。


技术实现要素:

4.本发明的目的在于克服现有技术的缺点,提供一种基于kubernetes集群的多版本web服务发布方法。
5.本发明的目的通过以下技术方案来实现:一种基于kubernetes集群的多版本web服务发布方法,包括以下步骤:
6.s1:运维人员确定要发布的项目和版本号;
7.s2:在发布平台中创建待发布的项目和项目仓库地址;
8.s3:在发布平台中配置kubernetes的yaml文件,并配置项目分支、版本号和共享卷;
9.s4:如果确认发布,则选择发布,否则结束发布。
10.优选的,步骤s2中,创建待发布的项目和项目仓库地址时克隆web项目的分支代码。
11.优选的,步骤s3中,配置项目分支时克隆web项目的分支代码。
12.优选的,克隆web项目的分支代码进行编译打包,根据打包的web服务构建docker镜像,并将docker镜像上传到镜像仓库中,若镜像仓库存在完整的web服务镜像则构建成功,若不存在完成镜像或者构建中出现错误,则构建失败,结束发布。
13.优选的,还包括以下步骤:
14.s1.1:若构建成功,则使用kubernetes的job执行部署任务的脚本;
15.s1.2:从脚本获取步骤s3中配置的版本号;
16.s1.3:从步骤s3中kubernetes配置yaml文件的共享卷获取当前版本的所有发布,
17.s1.4:判断是否存在当前版本version的发布。
18.优选的,步骤s1.4中,若存在当前版本的发布,则将该版本的上一次发布信息进行备份,然后重新部署该版本的web服务,若不存在当前版本的发布,则直接重新部署该版本的web服务。
19.优选的,通过重新部署该版本的web服务后,利用kubernetes通过监听job判断本次部署是否成功,若job正常执行并将web服务则部署成功,否则部署失败,并结束发布。
20.本发明具有以下优点:本发明基于kubernetes实现自动化发布,不需要开发人员或者运维人员手工运维,而且每次发布都会备份历史发布信息,支持发布和回滚,流程发布完成后,kubernetes会自动清理过期的资源,节省资源。
附图说明
21.图1为web服务发布整体架构的结构示意图;
22.图2为web服务发布流程的结构示意图。
具体实施方式
23.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。通常在此处附图中描述和示出的本发明实施方式的组件可以以各种不同的配置来布置和设计。
24.因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
25.需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。
26.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
27.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
28.在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
29.在本实施例中,如图1和图2所示,一种基于kubernetes集群的多版本web服务发布方法,包括以下步骤:
30.s1:运维人员确定要发布的项目和版本号;
31.s2:在发布平台中创建待发布的项目和项目仓库地址;
32.s3:在发布平台中配置kubernetes的yaml文件,并配置项目分支、版本号和共享卷;
33.s4:如果确认发布,则选择发布,否则结束发布。基于kubernetes实现自动化发布,不需要开发人员或者运维人员手工运维,而且每次发布都会备份历史发布信息,支持发布和回滚,流程发布完成后,kubernetes会自动清理过期的资源,节省资源。
34.进一步的,步骤s2中,创建待发布的项目和项目仓库地址时克隆web项目的分支代码。再进一步的,步骤s3中,配置项目分支时克隆web项目的分支代码。在本实施例中,克隆web项目的分支代码通过现有方法克隆实现,就不再进行赘述。
35.在本实施例中,克隆web项目的分支代码进行编译打包,根据打包的web服务构建docker镜像,并将docker镜像上传到镜像仓库中,若镜像仓库存在完整的web服务镜像则构建成功,若不存在完成镜像或者构建中出现错误,则构建失败,结束发布。具体地说,编译打包是通过现有方法进行打包,并未对其改进,这里就不再进行赘述。
36.在本实施例中,还包括以下步骤:
37.s1.1:若构建成功,则使用kubernetes的job执行部署任务的脚本;
38.s1.2:从脚本获取步骤s3中配置的版本号;
39.s1.3:从步骤s3中kubernetes配置yaml文件的共享卷获取当前版本的所有发布,
40.s1.4:判断是否存在当前版本version的发布。进一步的,步骤s1.4中,若存在当前版本的发布,则将该版本的上一次发布信息进行备份,然后重新部署该版本的web服务,若不存在当前版本的发布,则直接重新部署该版本的web服务。具体地说,该备份可以用来进行该发布版本的回滚。再进一步的,通过重新部署该版本的web服务后,利用kubernetes通过监听job判断本次部署是否成功,若job正常执行并将web服务则部署成功,否则部署失败,并结束发布。具体地说,若部署失败,记录部署失败的原因,基于kubernetes的job执行发布,job执行完成后自动销毁,占用资源少。利用kubernetes通过监听job判断本次部署是否成功也是通过现有方法实现,这里就不再赘述。
41.尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于kubernetes集群的多版本web服务发布方法,其特征在于:包括以下步骤:s1:运维人员确定要发布的项目和版本号;s2:在发布平台中创建待发布的项目和项目仓库地址;s3:在发布平台中配置kubernetes的yaml文件,并配置项目分支、版本号和共享卷;s4:如果确认发布,则选择发布,否则结束发布。2.根据权利要求1所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:所述步骤s2中,创建待发布的项目和项目仓库地址时克隆web项目的分支代码。3.根据权利要求2所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:所述步骤s3中,配置项目分支时克隆web项目的分支代码。4.根据权利要求3所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:克隆web项目的分支代码进行编译打包,根据打包的web服务构建docker镜像,并将docker镜像上传到镜像仓库中,若镜像仓库存在完整的web服务镜像则构建成功,若不存在完成镜像或者构建中出现错误,则构建失败,结束发布。5.根据权利要求4所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:还包括以下步骤:s1.1:若构建成功,则使用kubernetes的job执行部署任务的脚本;s1.2:从脚本获取所述步骤s3中配置的版本号;s1.3:从所述步骤s3中kubernetes配置yaml文件的共享卷获取当前版本的所有发布,s1.4:判断是否存在当前版本version的发布。6.根据权利要求5所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:所述步骤s1.4中,若存在当前版本的发布,则将该版本的上一次发布信息进行备份,然后重新部署该版本的web服务,若不存在当前版本的发布,则直接重新部署该版本的web服务。7.根据权利要求6所述的一种基于kubernetes集群的多版本web服务发布方法,其特征在于:通过重新部署该版本的web服务后,利用kubernetes通过监听job判断本次部署是否成功,若job正常执行并将web服务则部署成功,否则部署失败,并结束发布。

技术总结
本发明公开了一种基于Kubernetes集群的多版本web服务发布方法,包括以下步骤:S1:运维人员确定要发布的项目和版本号;S2:在发布平台中创建待发布的项目和项目仓库地址;S3:在发布平台中配置Kubernetes的yaml文件,并配置项目分支、版本号和共享卷;S4:如果确认发布,则选择发布,否则结束发布。本发明的有益效果是:基于Kubernetes实现自动化发布,不需要开发人员或者运维人员手工运维,而且每次发布都会备份历史发布信息,支持发布和回滚,流程发布完成后,Kubernetes会自动清理过期的资源,节省资源。节省资源。节省资源。


技术研发人员:杨京京 吕玉生 廖文华 李奇 俞涛毅 宓建栋
受保护的技术使用者:浙江网筑信息技术服务有限公司
技术研发日:2023.04.19
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐