CN116069354A - 应用程序的升级方法、装置、设备及存储介质 - Google Patents

应用程序的升级方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116069354A
CN116069354A CN202211567298.5A CN202211567298A CN116069354A CN 116069354 A CN116069354 A CN 116069354A CN 202211567298 A CN202211567298 A CN 202211567298A CN 116069354 A CN116069354 A CN 116069354A
Authority
CN
China
Prior art keywords
image file
target
upgrading
application program
upgraded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202211567298.5A
Other languages
English (en)
Inventor
苗建彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Segi Information Technology Co ltd
Original Assignee
Shenzhen Segi Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Segi Information Technology Co ltd filed Critical Shenzhen Segi Information Technology Co ltd
Priority to CN202211567298.5A priority Critical patent/CN116069354A/zh
Publication of CN116069354A publication Critical patent/CN116069354A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及数据处理领域,公开了一种应用程序的升级方法、装置、设备及存储介质。该方法包括:采集运行在K8s中的Deployment集合;根据Deployment集合确定目标Pod;在目标Pod中确定是否存在预设类型的JAR包;若目标Pod中不存在JAR包,返回执行采集运行在K8s中的Deployment集合的步骤;若目标Pod中存在JAR包,获取JAR包对应的镜像文件,得到待升级镜像文件;构建待升级镜像文件对应的目标镜像文件;引用目标镜像文件并返回执行采集运行在K8s中的Deployment集合的步骤。本发明提高了应用程序的升级效率。

Description

应用程序的升级方法、装置、设备及存储介质
技术领域
本发明涉及数据处理领域,尤其涉及一种应用程序的升级方法、装置、设备及存储介质。
背景技术
K8s(Kubernetes)是一个可移植的、可扩展的开源容器编排平台,用于自动化部署、扩展和管理容器化应用。
在K8s平台中,部署的JAVA语言应用程序,由于安全漏洞问题,经常需要紧急修复,升级相应的jar包为安全版本。当采用微服务架构时,一套复杂系统通常涉及上百至几百个服务。传统的升级方式为各开发人员逐个应用更新pom升级jar包,重新编译和构建镜像,再经过测试后发布到生产。整个过程需要花费大量的时间,在修复时间上无法满足紧急漏洞快速修复的需求。
传统的应用升级方式是由各开发人员逐个更新代码、重新编译、打包、构建镜像,测试人员测试验证后,走版本发布流程发布到生产环境。整个过程花费时间长,特别是采用微服务架构时,应用数目庞大,逐个更新需要的时间更长,无法满足严重安全漏洞的快速修复需求,应用升级效率低。
发明内容
本发明的主要目的在于解决应用升级效率低的技术问题。
本发明第一方面提供了一种应用程序的升级方法,1、所述应用程序的升级方法包括:
采集运行在K8s中的Deployment集合;
根据所述Deployment集合确定目标Pod;
在所述目标Pod中确定是否存在预设类型的JAR包;
若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建所述待升级镜像文件对应的目标镜像文件;
引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
可选的,在本发明第一方面的第一种实现方式中,所述在所述目标Pod中确定是否存在预设类型的JAR包的步骤包括:
在所述目标Pod中确定是否存在被标记为非安全包的所述JAR包。
可选的,在本发明第一方面的第二种实现方式中,所述引用所述目标镜像文件的步骤包括:
调用预设的kube-api接口将所述待升级镜像文件的第一镜像地址更新为所述目标镜像文件的第二镜像地址。
可选的,在本发明第一方面的第三种实现方式中,所述若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件的步骤之后,所述方法还包括:
若所述目标Pod中不存在所述待升级镜像文件,返回执行所述采集运行在K8s中的Deployment集合的步骤。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述Deployment集合确定目标Pod的步骤包括:
获取所述Deployment集合对应的容器集合;
在所述容器集合中确定所述目标Pod。
可选的,在本发明第一方面的第五种实现方式中,所述采集运行在K8s中的Deployment集合的步骤包括:
批量采集运行在K8s中的Deployment集合。
可选的,在本发明第一方面的第六种实现方式中,所述构建所述待升级镜像文件对应的目标镜像文件的步骤包括:
生成dockerfile文件;
根据所述dockerfile文件构建所述待升级镜像文件对应的所述目标镜像文件。
本发明第二方面提供了一种应用程序的升级装置,包括:
采集模块,用于采集运行在K8s中的Deployment集合;
第一确定模块,用于根据所述Deployment集合确定目标Pod;
第二确定模块,用于在所述目标Pod中确定是否存在预设类型的JAR包;
循环模块,用于若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
获取模块,用于与若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建模块,用于构建所述待升级镜像文件对应的目标镜像文件;
引用模块,用于引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
本发明第三方面提供了一种应用程序的升级设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序的升级设备执行上述的应用程序的升级方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的应用程序的升级方法。
本发明实施例中,应用程序的升级设备采集运行在K8s中的Deployment集合;根据所述Deployment集合确定目标Pod;在所述目标Pod中确定是否存在预设类型的JAR包;若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;构建所述待升级镜像文件对应的目标镜像文件;引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。由于应用程序的升级设备可采集运行在K8s中的Deployment集合,因此,可基于Deployment集合查找运行中的应用中是否使用了相关JAR包,从而确定目标Pod中待升级的镜像文件,再以当前运行的镜像文件为基础,基于预设类型将安全包替换掉非安全包,重新构建镜像并发布,可在较短时间内完成大规模应用的批量安全更新,大量缩短了JAR包升级的时长,可满足突发严重安全漏洞时候的紧急修复需求;由于只替换有安全问题的JAR包,不涉及业务代码变动,对业务稳定性影响小;升级有功能问题时,也可回退,简单快速;相对于由各开发人员逐个更新代码、重新编译、打包、构建镜像、测试验证再到版本发布,本发明提高了应用程序的升级效率。
附图说明
图1为本发明实施例中应用程序的升级方法的一个实施例示意图;
图2为本发明实施例中应用程序的升级装置的一个实施例示意图;
图3为本发明实施例中应用程序的升级设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种应用程序的升级方法、装置、设备及存储介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中应用程序的升级方法的一个实施例包括:
101、采集运行在K8s中的Deployment集合;
具体的,K8s(Kubernetes)是一个可移植的、可扩展的开源容器编排平台,用于自动化部署、扩展和管理容器化应用。
K8s是一个最初由Google开发的,用于自动化部署、扩展和管理容器化应用的开源容器编排器技术。K8s使部署和管理微服务架构应用程序变得很简单。它通过在集群之上形成一个抽象层来实现这一点,允许开发团队平滑地部署应用程序,而K8s主要处理以下任务:
控制和管理应用程序对资源的使用;
自动负载均衡应用程序的多个实例之间请求;
监控资源使用和资源限制,为了可以自动阻止应用消耗过多的资源并且可以再次恢复它们;
如果主机资源耗尽或主机死机,将应用程序实例从一台主机迁移到另一台主机是一个可行的选项;
当有新的主机加入集群时,新增加的额外资源可以被自动使用。
Deployment是一个定义及管理多副本应用(即多个副本Pod)的新一代对象,与Replication Controller相比,它提供了更加完善的功能,使用起来更加简单方便。
可选的,批量采集运行在K8s中的Deployment集合。其中,通过批量查找运行中的应用的方式进行应用升级,可进一步提高应用程序的升级效率。
102、根据所述Deployment集合确定目标Pod;
具体的,Pod(容器组)是Kubernetes中最小的可部署单元。Pod代表了Kubernetes中一个独立的应用程序运行实例,该实例可能由单个容器或者几个紧耦合在一起的容器组成。
容器引擎允许绑定和运行一个应用在一个容器里,这是一个松散隔离的环境。由于隔离性和安全性,可以在一台主机上操作多个容器。容器引擎利用了操作系统的内核资源隔离特性,可以在同一个操作系统上运行多个容器。通常把容器引擎比作虚拟机(VMs)。另一方面,虚拟机利用物理硬件资源抽象层之上可执行代码封装了整个操作系统。
一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用、系统库和全部重要设置的默认值。应用程序通过使用容器与底层的宿主机架构解耦。可以利用底层机器在容器引擎之上运行多个容器。这促进了容器在各种操作系统和云场景中的部署。
本步骤包括以下效步骤:
步骤一、采集运行在K8s中的deployment集合。
步骤二、遍历获取到的deployment集合。
步骤三、获取deployment对应的pod集合,选取其中一个pod作为上述目标Pod。
可选的,获取所述Deployment集合对应的容器集合;在所述容器集合中确定所述目标Pod。
103、在所述目标Pod中确定是否存在预设类型的JAR包;
在所述目标Pod中确定是否存在预设类型的JAR包;
具体的,在软件领域,JAR包即JAR文件,JAR文件(Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。JAR文件是一种归档文件,以ZIP格式构建,以.JAR为文件扩展名。用户可以使用JDK自带的JAR命令创建或提取JAR文件。也可以使用其他zip压缩工具,不过压缩时zip文件头里的条目顺序很重要,因为Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。
104、若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤。
105、若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件。
可选的,在所述目标Pod中确定是否存在被标记为非安全包的所述JAR包,具体的,在所述目标Pod中确定是否存被标记为存在安全问题的JAR包。本发明实施例中,以当前运行的镜像文件为基础,基于预设类型将安全包替换掉非安全包,重新构建镜像并发布,可在较短时间内完成大规模应用的批量安全更新,大量缩短了JAR包升级的时长,可满足突发严重安全漏洞时候的紧急修复需求;由于只替换有安全问题的JAR包,不涉及业务代码变动,对业务稳定性影响小;升级有功能问题时,也可回退,简单快速;通过该方式提高了应用程序的升级效率。
具体的,所谓镜像文件其实和rar ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。而通常意义上的刻录软件都可以直接将支持的镜像文件所包含的内容刻录到光盘上。其实,镜像文件就是光盘的“提取物”。
镜像文件是无法直接使用的,需要利用一些虚拟光驱工具进行解压后才能使用。虚拟光驱的原理跟物理光驱一样,例如:买了一张游戏光盘,那么把游戏光盘加入物理光驱就能顺利进行游戏,而虚拟光驱中需要加入的是镜像文件(iso文件,相当于游戏光盘),当装载完虚拟光驱以后,电脑里面多了一个光驱,那就是虚拟光驱。接着载入镜像文件,以便完成游戏的安装,如果安装完以后那么就可以再载入它要求的镜像进入游戏。
106、构建所述待升级镜像文件对应的目标镜像文件;
107、引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
步骤四、查找pod中是否有需要替换的JAR包,若没有则进行下一个deployment遍历;若有,则继续获取pod中所有需要替换的JAR包,并生成对应关系。
步骤五、对于如何获取pod中所有需要替换的JAR包,并生成对应关系,示例如下:
pod容器中JAR/data/app1/webapp/app1/WEB-INF/lib/fastjson-1.2.70.JAR需要替换为fastjson-1.2.83.JAR版本,则生成关系如下:
/data/app1/webapp/app1/WEB-INF/lib/fastjson-1.2.70.JAR->fastjson-1.2.83.J
AR,
若有多个需要替换的JAR包,则生成多个对应关系。
步骤六:获取deployment中的镜像地址,例如:harbor.example.com/app1:v1.0.0。
步骤七:根据以上信息,生成dockerfile文件,内容如:
FROM harbor.example.com/app1:v1.0.0;
RUN rm-f/data/app1/webapp/app1/WEB-INF/lib/fastjson-1.2.70.JAR;
COPY fastjson-1.2.83.jar/data/app1/webapp/app1/WEB-INF/lib/fastjson-1.2.83.jar。
步骤八:依据S7中的dockerfile文件,构建镜像,镜像名如:harbor.example.com/app1:v1.0.0-patch01。
步骤九:可选的,调用预设的kube-api接口将所述待升级镜像文件的第一镜像地址更新为所述目标镜像文件的第二镜像地址,具体的,更新deployment中的镜像地址,如:
使用kubectl patch或调用kube-api接口更新deployment镜像地址为:harbor.example.com/app1:v1.0.0-patch01。
继续下一个遍历,直至处理完所有deployment。
可选的,生成dockerfile文件;根据所述dockerfile文件构建所述待升级镜像文件对应的所述目标镜像文件。
传统升级方式:由各开发人员逐个更新代码,重新编译、打包、构建镜像,测试人员测试验证后,走版本发布流程发布到生产环境。整个过程花费时间长,特别是当采用微服务架构时,应用数目庞大,逐个更新需要的时间更长,无法满足严重安全漏洞的快速修复需求。本发明采用自动化批量更新的方式,直接在运行的测试环境上批量更新相关安全jar包,验证后再批量更新到生产环境,极大缩短了jar包安全升级的时长。相对于传统审计方式,本实施例提高了应用程序的升级效率。
本发明实施例中,应用程序的升级设备采集运行在K8s中的Deployment集合;根据所述Deployment集合确定目标Pod;在所述目标Pod中确定是否存在预设类型的JAR包;若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;构建所述待升级镜像文件对应的目标镜像文件;引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。由于应用程序的升级设备可采集运行在K8s中的Deployment集合,因此,可基于Deployment集合查找运行中的应用中是否使用了相关JAR包,从而确定目标Pod中待升级的镜像文件,再以当前运行的镜像文件为基础,基于预设类型将安全包替换掉非安全包,重新构建镜像并发布,可在较短时间内完成大规模应用的批量安全更新,大量缩短了JAR包升级的时长,可满足突发严重安全漏洞时候的紧急修复需求;由于只替换有安全问题的JAR包,不涉及业务代码变动,对业务稳定性影响小;升级有功能问题时,也可回退,简单快速;通过该方式提高了应用程序的升级效率。
上面对本发明实施例中应用程序的升级方法进行了描述,下面对本发明实施例中应用程序的升级装置进行描述,请参阅图2,本发明实施例中应用程序的升级装置一个实施例包括:
采集模块301,用于采集运行在K8s中的Deployment集合;
第一确定模块302,用于根据所述Deployment集合确定目标Pod;
第二确定模块303,用于在所述目标Pod中确定是否存在预设类型的JAR包;
循环模块304,用于若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
获取模块305,用于与若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建模块306,用于构建所述待升级镜像文件对应的目标镜像文件;
引用模块307,用于引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
可选的,第二确定模块303还可以具体用于:
在所述目标Pod中确定是否存在被标记为非安全包的所述JAR包。
可选的,引用模块307还可以具体用于:
调用预设的kube-api接口将所述待升级镜像文件的第一镜像地址更新为所述目标镜像文件的第二镜像地址。
可选的,获取模块303还可以具体用于:
若所述目标Pod中不存在所述待升级镜像文件,返回执行所述采集运行在K8s中的Deployment集合的步骤。
可选的,第一确定模块302还可以具体用于:
获取所述Deployment集合对应的容器集合;
在所述容器集合中确定所述目标Pod。
可选的,采集模块301还可以具体用于:
批量采集运行在K8s中的Deployment集合。
可选的,构建模块306还可以具体用于:
生成dockerfile文件;
根据所述dockerfile文件构建所述待升级镜像文件对应的所述目标镜像文件。
本发明实施例中,应用程序的升级设备采集运行在K8s中的Deployment集合;根据所述Deployment集合确定目标Pod;在所述目标Pod中确定是否存在预设类型的JAR包;若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;构建所述待升级镜像文件对应的目标镜像文件;引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。由于应用程序的升级设备可采集运行在K8s中的Deployment集合,因此,可基于Deployment集合查找运行中的应用中是否使用了相关JAR包,从而确定目标Pod中待升级的镜像文件,再以当前运行的镜像文件为基础,基于预设类型将安全包替换掉非安全包,重新构建镜像并发布,可在较短时间内完成大规模应用的批量安全更新,大量缩短了JAR包升级的时长,可满足突发严重安全漏洞时候的紧急修复需求;由于只替换有安全问题的JAR包,不涉及业务代码变动,对业务稳定性影响小;升级有功能问题时,也可回退,简单快速;相对于由各开发人员逐个更新代码、重新编译、打包、构建镜像、测试验证再到版本发布,本发明提高了应用程序的升级效率。
上面图2从模块化功能实体的角度对本发明实施例中的应用程序的升级装置进行详细描述,下面从硬件处理的角度对本发明实施例中应用程序的升级设备进行详细描述。
图3是本发明实施例提供的一种应用程序的升级设备的结构示意图,该应用程序的升级设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用程序的升级设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在应用程序的升级设备500上执行存储介质530中的一系列指令操作。
基于应用程序的升级设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图3示出的应用程序的升级设备结构并不构成对基于应用程序的升级设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述应用程序的升级方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种应用程序的升级方法,其特征在于,所述应用程序的升级方法包括:
采集运行在K8s中的Deployment集合;
根据所述Deployment集合确定目标Pod;
在所述目标Pod中确定是否存在预设类型的JAR包;
若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建所述待升级镜像文件对应的目标镜像文件;
引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
2.根据权利要求1所述的应用程序的升级方法,其特征在于,所述在所述目标Pod中确定是否存在预设类型的JAR包的步骤包括:
在所述目标Pod中确定是否存在被标记为非安全包的所述JAR包。
3.根据权利要求1所述的应用程序的升级方法,其特征在于,所述引用所述目标镜像文件的步骤包括:
调用预设的kube-api接口将所述待升级镜像文件的第一镜像地址更新为所述目标镜像文件的第二镜像地址。
4.根据权利要求1所述的应用程序的升级方法,其特征在于,所述若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件的步骤之后,所述方法还包括:
若所述目标Pod中不存在所述待升级镜像文件,返回执行所述采集运行在K8s中的Deployment集合的步骤。
5.根据权利要求1所述的应用程序的升级方法,其特征在于,所述根据所述Deployment集合确定目标Pod的步骤包括:
获取所述Deployment集合对应的容器集合;
在所述容器集合中确定所述目标Pod。
6.根据权利要求1所述的应用程序的升级方法,其特征在于,所述采集运行在K8s中的Deployment集合的步骤包括:
批量采集运行在K8s中的Deployment集合。
7.根据权利要求1-6任一项所述的应用程序的升级方法,其特征在于,所述构建所述待升级镜像文件对应的目标镜像文件的步骤包括:
生成dockerfile文件;
根据所述dockerfile文件构建所述待升级镜像文件对应的所述目标镜像文件。
8.一种应用程序的升级装置,其特征在于,所述应用程序的升级装置包括:
采集模块,用于采集运行在K8s中的Deployment集合;
第一确定模块,用于根据所述Deployment集合确定目标Pod;
第二确定模块,用于在所述目标Pod中确定是否存在预设类型的JAR包;
循环模块,用于若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
获取模块,用于与若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建模块,用于构建所述待升级镜像文件对应的目标镜像文件;
引用模块,用于引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
9.一种应用程序的升级设备,其特征在于,所述应用程序的升级设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序的升级设备执行如权利要求1-7中任一项所述的应用程序的升级方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的应用程序的升级方法。
CN202211567298.5A 2022-12-07 2022-12-07 应用程序的升级方法、装置、设备及存储介质 Withdrawn CN116069354A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211567298.5A CN116069354A (zh) 2022-12-07 2022-12-07 应用程序的升级方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211567298.5A CN116069354A (zh) 2022-12-07 2022-12-07 应用程序的升级方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116069354A true CN116069354A (zh) 2023-05-05

Family

ID=86182976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211567298.5A Withdrawn CN116069354A (zh) 2022-12-07 2022-12-07 应用程序的升级方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116069354A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270887A (zh) * 2023-11-22 2023-12-22 广州嘉为科技有限公司 一种Spring微服务的管理方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270887A (zh) * 2023-11-22 2023-12-22 广州嘉为科技有限公司 一种Spring微服务的管理方法、装置及存储介质
CN117270887B (zh) * 2023-11-22 2024-03-19 广州嘉为科技有限公司 一种Spring微服务的管理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US11144306B2 (en) Scheduling upgrades in distributed computing systems
US11232015B2 (en) Automated software verification service
CN110417613B (zh) 基于Jmeter的分布式性能测试方法、装置、设备及存储介质
Jacobsen et al. Contain this, unleashing docker for hpc
US9513938B2 (en) Virtual appliance integration with cloud management software
US20200026505A1 (en) Scheduling firmware operations in distributed computing systems
US8924954B2 (en) Application software installation method and application software installation apparatus
EP2765508B1 (en) Installation method and installation device for application software
US20170083359A1 (en) System and method for deploying a virtual machine
US20200034167A1 (en) Automatic application migration across virtualization environments
US20170123777A1 (en) Deploying applications on application platforms
US20130152078A1 (en) Method and system for deploying multiple distributed application stacks on a target machine
US10963236B2 (en) Creation of software images of software applications for image-based maintenance of the software applications
CN107885551A (zh) 一种服务部署方法、装置、可读介质及存储控制器
US11775475B2 (en) Deferred path resolution during container deployment
CN107783816A (zh) 虚拟机的创建方法及装置、大数据集群创建的方法及装置
US9747091B1 (en) Isolated software installation
US11442765B1 (en) Identifying dependencies for processes for automated containerization
US9542173B2 (en) Dependency handling for software extensions
CN116069354A (zh) 应用程序的升级方法、装置、设备及存储介质
US11487878B1 (en) Identifying cooperating processes for automated containerization
US9760364B2 (en) Checks for software extensions
US20220353341A1 (en) Efficient deployment of cloud resources
Nielsen et al. Private cloud configuration with metaconfig
US11966723B2 (en) Automatic management of applications in a containerized environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20230505

WW01 Invention patent application withdrawn after publication