本发明专利技术涉及数据处理领域,公开了一种应用程序的升级方法、装置、设备及存储介质。该方法包括:采集运行在K8s中的Deployment集合;根据Deployment集合确定目标Pod;在目标Pod中确定是否存在预设类型的JAR包;若目标Pod中不存在JAR包,返回执行采集运行在K8s中的Deployment集合的步骤;若目标Pod中存在JAR包,获取JAR包对应的镜像文件,得到待升级镜像文件;构建待升级镜像文件对应的目标镜像文件;引用目标镜像文件并返回执行采集运行在K8s中的Deployment集合的步骤。本发明专利技术提高了应用程序的升级效率。的升级效率。的升级效率。
【技术实现步骤摘要】
应用程序的升级方法、装置、设备及存储介质
[0001]本专利技术涉及数据处理领域,尤其涉及一种应用程序的升级方法、装置、设备及存储介质。
技术介绍
[0002]K8s(Kubernetes)是一个可移植的、可扩展的开源容器编排平台,用于自动化部署、扩展和管理容器化应用。
[0003]在K8s平台中,部署的JAVA语言应用程序,由于安全漏洞问题,经常需要紧急修复,升级相应的jar包为安全版本。当采用微服务架构时,一套复杂系统通常涉及上百至几百个服务。传统的升级方式为各开发人员逐个应用更新pom升级jar包,重新编译和构建镜像,再经过测试后发布到生产。整个过程需要花费大量的时间,在修复时间上无法满足紧急漏洞快速修复的需求。
[0004]传统的应用升级方式是由各开发人员逐个更新代码、重新编译、打包、构建镜像,测试人员测试验证后,走版本发布流程发布到生产环境。整个过程花费时间长,特别是采用微服务架构时,应用数目庞大,逐个更新需要的时间更长,无法满足严重安全漏洞的快速修复需求,应用升级效率低。
技术实现思路
[0005]本专利技术的主要目的在于解决应用升级效率低的技术问题。
[0006]本专利技术第一方面提供了一种应用程序的升级方法,1、所述应用程序的升级方法包括:
[0007]采集运行在K8s中的Deployment集合;
[0008]根据所述Deployment集合确定目标Pod;
[0009]在所述目标Pod中确定是否存在预设类型的JAR包;
[0010]若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
[0011]若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
[0012]构建所述待升级镜像文件对应的目标镜像文件;
[0013]引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
[0014]可选的,在本专利技术第一方面的第一种实现方式中,所述在所述目标Pod中确定是否存在预设类型的JAR包的步骤包括:
[0015]在所述目标Pod中确定是否存在被标记为非安全包的所述JAR包。
[0016]可选的,在本专利技术第一方面的第二种实现方式中,所述引用所述目标镜像文件的步骤包括:
[0017]调用预设的kube
‑
api接口将所述待升级镜像文件的第一镜像地址更新为所述目标镜像文件的第二镜像地址。
[0018]可选的,在本专利技术第一方面的第三种实现方式中,所述若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件的步骤之后,所述方法还包括:
[0019]若所述目标Pod中不存在所述待升级镜像文件,返回执行所述采集运行在K8s中的Deployment集合的步骤。
[0020]可选的,在本专利技术第一方面的第四种实现方式中,所述根据所述Deployment集合确定目标Pod的步骤包括:
[0021]获取所述Deployment集合对应的容器集合;
[0022]在所述容器集合中确定所述目标Pod。
[0023]可选的,在本专利技术第一方面的第五种实现方式中,所述采集运行在K8s中的Deployment集合的步骤包括:
[0024]批量采集运行在K8s中的Deployment集合。
[0025]可选的,在本专利技术第一方面的第六种实现方式中,所述构建所述待升级镜像文件对应的目标镜像文件的步骤包括:
[0026]生成dockerfile文件;
[0027]根据所述dockerfile文件构建所述待升级镜像文件对应的所述目标镜像文件。
[0028]本专利技术第二方面提供了一种应用程序的升级装置,包括:
[0029]采集模块,用于采集运行在K8s中的Deployment集合;
[0030]第一确定模块,用于根据所述Deployment集合确定目标Pod;
[0031]第二确定模块,用于在所述目标Pod中确定是否存在预设类型的JAR包;
[0032]循环模块,用于若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;
[0033]获取模块,用于与若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
[0034]构建模块,用于构建所述待升级镜像文件对应的目标镜像文件;
[0035]引用模块,用于引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。
[0036]本专利技术第三方面提供了一种应用程序的升级设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用程序的升级设备执行上述的应用程序的升级方法。
[0037]本专利技术的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的应用程序的升级方法。
[0038]本专利技术实施例中,应用程序的升级设备采集运行在K8s中的Deployment集合;根据所述Deployment集合确定目标Pod;在所述目标Pod中确定是否存在预设类型的JAR包;若所述目标Pod中不存在所述JAR包,返回执行所述采集运行在K8s中的Deployment集合的步骤;若所述目标Pod中存在所述JAR包,获取所述JAR包对应的镜像文件,得到待升级镜像文件;
构建所述待升级镜像文件对应的目标镜像文件;引用所述目标镜像文件并返回执行所述采集运行在K8s中的Deployment集合的步骤。由于应用程序的升级设备可采集运行在K8s中的Deployment集合,因此,可基于Deployment集合查找运行中的应用中是否使用了相关JAR包,从而确定目标Pod中待升级的镜像文件,再以当前运行的镜像文件为基础,基于预设类型将安全包替换掉非安全包,重新构建镜像并发布,可在较短时间内完成大规模应用的批量安全更新,大量缩短了JAR包升级的时长,可满足突发严重安全漏洞时候的紧急修复需求;由于只替换有安全问题的JAR包,不涉及业务代码变动,对业务稳定性影响小;升级有功能问题时,也可回退,简单快速;相对于由各开发人员逐个更新代码、重新编译、打包、构建镜像、测试验证再到版本发布,本专利技术提高了应用程序的升级效率。
附图说明
[0039]图1为本专利技术实施例中应用程序的升级方法的一个实施例示意图;
[0040]图2为本专利技术实施例中应用程序的升级装置的一个实施例示意图;
[0041]图3为本专利技术实施例中应用程序的升级设备的一个实施例示意图。
具体实施方式
[0042]本专利技术实施例提供了一种应用程序的升级方法、装置、设备及存储介质。
...
【技术保护点】
【技术特征摘要】
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中的Deplo...
【专利技术属性】
技术研发人员:苗建彬,
申请(专利权)人:深圳市四格互联信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。