CN116301951A - 一种基于kubernetes的微服务应用安装升级方法及装置 - Google Patents

一种基于kubernetes的微服务应用安装升级方法及装置 Download PDF

Info

Publication number
CN116301951A
CN116301951A CN202310552258.1A CN202310552258A CN116301951A CN 116301951 A CN116301951 A CN 116301951A CN 202310552258 A CN202310552258 A CN 202310552258A CN 116301951 A CN116301951 A CN 116301951A
Authority
CN
China
Prior art keywords
application
installation
upgrading
offline
description file
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.)
Granted
Application number
CN202310552258.1A
Other languages
English (en)
Other versions
CN116301951B (zh
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.)
Beijing Chaitin Tech Co ltd
Original Assignee
Beijing Chaitin Tech 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 Beijing Chaitin Tech Co ltd filed Critical Beijing Chaitin Tech Co ltd
Priority to CN202310552258.1A priority Critical patent/CN116301951B/zh
Publication of CN116301951A publication Critical patent/CN116301951A/zh
Application granted granted Critical
Publication of CN116301951B publication Critical patent/CN116301951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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

本申请实施例提供了一种基于kubernete的微服务应用安装升级方法及装置,通过编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;将所述安装升级资源及所述安装升级描述文件打包成离线安装包;将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。解决了现有微服务应用安装升级过程中存在的部署更新困难、维护困难、资源获取困难的问题,能够实现在离线场景下对微服务应用进行安装/升级、提高了微服务维护效率。

Description

一种基于kubernetes的微服务应用安装升级方法及装置
技术领域
本申请各实施例属计算机技术领域,尤其涉及一种基于kubernetes的微服务应用安装升级方法及装置。
背景技术
微服务是一种软件开发技术,是面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。
然而,目前在离线环境下部署微服务应用时存在:1)、部署更新困难,不同的应用需要使用不同种类的工具、书写不同的脚本来适配不同场景的部署需求;2)、基于 helmchart 的应用描述方法在服务数量过大的场景下需要人工手动维护大量的charts 和helm values,其维护困难;3)、微服务应用的CI(持续集成Continuous Integration)产出物在不同种平台,包括github、gitlab等,平台繁多,资源获取困难。
发明内容
本实施例提供了一种基于kubernetes的微服务应用安装升级方法及装置,能够解决现有微服务应用安装升级过程中存在的部署更新困难、维护困难、资源获取困难等问题。
第一方面,本实施例提供了一种基于kubernetes的微服务应用安装升级方法,包括:
编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
将所述安装升级资源及所述安装升级描述文件打包成离线安装包;
将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
在一些实施例中,所述基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,包括:基于所述应用名称及所述应用源从代码仓库拉取源应用描述文件,所述源应用描述文件内包括所述后端docker仓库的地址;将所述源应用描述文件渲染成所述应用描述文件,并从所述应用描述文件中提取所述后端docker仓库的地址,其中,所述应用描述文件是yaml格式,所述应用描述文件用于描述所述应用的安装过程;基于所述后端docker仓库的地址从所述后端docker仓库中拉取所述应用docker镜像,得到所述安装升级资源。
在一些实施例中,所述源应用描述文件包括helm、kuberctl、kustomize中的至少一项。
在一些实施例中,所述将所述安装升级资源及所述安装升级描述文件打包成离线安装包,具体为:将所述应用描述文件、所述安装升级描述文件及所述应用docker 镜像打包成所述离线安装包。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,包括:将所述离线安装包发送至用户端,并部署用户端docker仓库;解析所述离线安装包,获得所述应用描述文件及所述应用docker镜像;将所述应用docker镜像推送至所述用户端docker仓库内;将所述应用描述文件内所述应用docker镜像的后端docker仓库地址修改为用户端docker仓库地址;基于所述应用描述文件、所述用户端docker仓库内的所述应用docker镜像安装或升级所述应用。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;渲染配置文件,并准备安装环境。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;检测所述用户端内应用的版本是否低于所述离线安装包内应用的版本;若所述用户端内应用的版本低于所述离线安装包内应用的版本,则进行安装或升级;若所述用户端内应用的版本不低于所述离线安装包内应用的版本,则停止安装或升级。
在一些实施例中,所述至少一个安装升级描述单元是多个安装升级描述单元,所述安装升级描述文件还用于描述多个所述安装升级描述单元的执行顺序;所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,还包括:解析所述安装升级描述文件,并获取所述执行顺序;基于所执行顺序依次安装或升级多个所述安装升级描述单元描述的应用。
第二方面,本实施例提供了一种基于kubernetes的微服务应用安装升级装置,包括:
文件编写模块,用于编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
资源获取模块,用于基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
资源打包模块,用于将所述安装升级资源及所述安装升级描述文件打包成离线安装包;以及
应用安装模块,用于将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
第三方面,本实施例提供了一种电子设备,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面中任一实施例所述方法的步骤。
本申请提供了一种基于kubernete的微服务应用安装升级方法及装置,通过编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;将所述安装升级资源及所述安装升级描述文件打包成离线安装包;将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。解决了现有微服务应用安装升级过程中存在的部署更新困难、维护困难、资源获取困难的问题,能够实现在离线场景下对微服务应用进行安装/升级、提高了微服务维护效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分,本领域技术人员应该理解的是,这些附图未必是按比例绘制的,在附图中:
图1为本说明书实施例提供的一种基于kubernetes的微服务应用安装升级方法的流程图;
图2为本说明书实施例提供的一种基于kubernetes的微服务应用安装升级装置的示意图;
图3为本说明书实施例提供的一种电子设备示意图;
图4为本说明书实施例提供的获取所述安装升级资源的流程图;
图5为本说明书实施例提供的安装/升级微服务应用的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
微服务应用开发完毕后,接下来要做的就是将已开发好的微服务应用部署到客户离线生产环境中。部署包含两个相互关联的概念:流程和架构。部署流程包括一些由开发人员和运维人员执行的步骤,以便将软件投入到生产环境(商用环境,任何修改都会影响到用户)。部署架构则定义了该软件运行的环境结构。
然而,在目前的微服务应用部署时,存在着:1)、部署更新困难,不同的应用需要使用不同种类的工具、书写不同的脚本来适配不同场景的部署需求;2)、基于 helm chart 的应用描述方法在服务数量过大的场景下需要人工手动维护大量的charts 和 helmvalues,其维护困难;3)、微服务应用的CI(持续集成Continuous Integration)产出物在不同种平台,包括github、gitlab等,平台繁多,资源获取困难;目前没有一个统一的应用升级模型指导操作人员对微服务应用进行安装升级。
针对上述技术问题,第一方面,如图1所示,本实施例提供了一种基于kubernetes的微服务应用安装升级方法,包括:
S101:编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
需要说明的是,所述安装升级描述文件是基于yaml编写的DSL编写的。一方面,选用yaml可以简单表达清单、散列表,标量等数据形态,适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲;另一方面,Kubernetes支持yaml格式管理资源对象。
需要说明的是,DSL(领域特定语言domain-specific language)是一种旨在特定领域下的上下文的语言。这里的领域是指某种商业上的(例如银行业、保险业等)上下文,也可以指某种应用程序的(例如 Web 应用、数据库等)上下文,本实施例所述的安装升级描述文件是仅为安装/升级微服务应用而设计的,具有较强的针对性。
需要说明的是,可将所述安装升级描述单元分为三个部分,auth(权限)、releases(释放)、manifests(名单),所述auth用来表示github、gitlab或git的地址以及认证信息,在所述应用源是github时,所述认证信息是access_token;在所述应用源是gitlab时,所述认证信息是token;
所述releases用于描述应用名称、需要被操作的最小单元(如一个 helm 的release,或者一个k8s的deployment对象)。releases相当于一个map,map的key为releasename,map的values为一个对象。map的values的字段通常为namespace、helm、kustomize、kubectl、shell、pre_apply、after_apply、timeout、weight。其中,helm、kustomize、kubectl、shell 字段用于描述应用的部署过程及需要的资源,namespace表示应用被安装在哪个namespace,timeout表示多长时间部署超时,pre_apply和after_apply表示安装应用之前或之后需要做的准备工作或者后处理过程;
所述manifests用于描述一个安装升级描述单元内应用安装需要的资源(比如helm的chart tar.gz文件,或者k8s的deployment.yaml文件),也可用于描述在gitlab、github等CI产物平台或者安装升级描述单元中下载/安装应用需要的资源的方法。
S102:基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
需要说明的是,用于安装或升级应用的源代码、或可执行程序、应用描述文件等通常储存在代码仓库或后端docker仓库中,所述安装资源可以是应用程序源代码或应用安装可执行程序,其中,所述应用描述文件用于描述应用的安装步骤或方法,所述docker镜像通常储存在后端docker仓库中,所述后端docker仓库通常是微服务提供者建立的docker仓库,所述后端docker仓库用于存放微服务提供者编写好的docker镜像。
在一些实施例中,所述基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,包括:基于所述应用名称及所述应用源从代码仓库拉取源应用描述文件,所述源应用描述文件内包括所述后端docker仓库的地址;将所述源应用描述文件渲染成所述应用描述文件,并从所述应用描述文件中提取所述后端docker仓库的地址,其中,所述应用描述文件是yaml格式,所述应用描述文件用于描述所述应用的安装过程;基于所述后端docker仓库的地址从所述后端docker仓库中拉取所述应用docker镜像,得到所述安装升级资源。
在一些实施例中,所述源应用描述文件包括helm、kuberctl、kustomize中的至少一项。
需要说明的是,所述源应用描述文件可能是helm、kubectl、或kustomize等类型,在获取到不同类型的源应用描述文件后,需将其渲染成kubernetes资源,通常所述kubernetes资源是yaml格式(即应用描述文件的格式),在从后端docker仓库中拉取所述应用docker 镜像后,可建立本地docker仓库以存储所述应用docker 镜像。
S103:将将所述安装升级资源及所述安装升级描述文件打包成离线安装包;
需要说明的是,在获取到所述安装升级资源及所述安装升级描述文件后,将其打包成离线安装包可便于发送到用户端(即前端)进行离线安装。
需要说明的是,所述应用描述文件的类型不同,其镜像存储的位置、要拉取的镜像也是不同的,如图4所示,其为获取所述安装升级资源的流程,包括:
S401:读取并解析安装升级描述文件;
S402:获取所述应用的应用源;
S403:基于所述应用源从github、gitlab、或git下载应用描述文件;
S404:根据所述应用描述文件的种类,拉取docker镜像地址;
若所述应用描述文件是helm,则从所述后端docker 仓库中拉取charts中的docker镜像地址;
若所述应用描述文件是kubectl,则从所述后端docker 仓库中拉取artifacts中的docker镜像地址;
若所述应用描述文件是kustomize,则从所述后端docker 仓库中拉取kustomize中的docker镜像地址。
S405:下载应用描述文件及应用docker镜像;
S406:将下载的应用描述文件及应用docker镜像打包成离线安装包。
在一些实施例中,所述将所述安装升级资源及所述安装升级描述文件打包成离线安装包,具体为:将所述应用描述文件、所述安装升级描述文件及所述应用docker 镜像打包成所述离线安装包。
需要说明的是,因可能存在一次安装多个微服务的情况,所以需将安装升级描述文件一并打包至离线安装包内,以便安装或升级应用时,依据所述安装升级描述文件内描述的执行顺序进行执行。
S104:将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,包括:将所述离线安装包发送至用户端,并部署用户端docker仓库;解析所述离线安装包,获得所述应用描述文件及所述应用docker镜像;将所述应用docker镜像推送至所述用户端docker仓库内;将所述应用描述文件内所述应用docker镜像的后端docker仓库地址修改为用户端docker仓库地址;基于所述应用描述文件、所述用户端docker仓库内的所述应用docker镜像安装或升级所述应用。
需要说明的是,在打包好离线安装包后,便可进行微服务应用的安装或升级,在对客户机(即用户端)的微服务应用进行安装或升级时,需在客户机上建立用户端docker仓库,然后将所述离线安装包内的docker镜像推送至所述用户端docker仓库内,以便进行后续的安装;
需要说明的是,因所述应用描述文件内的docker 镜像地址是后端docker 镜像地址,故需将其修改为用户端docker 镜像地址,以便在安装或升级微服务应用时能够查找到相应的应用docker 镜像。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;渲染配置文件,并准备安装环境。
需要说明的是,所述配置文件可以是填充机器的相关参数(如ip、cpu大小、mem大小等)、将helm values中的值填充至template中等,所述安装环境可以是硬件环境或软件环境。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;检测所述用户端内应用的版本是否低于所述离线安装包内应用的版本;若所述用户端内应用的版本低于所述离线安装包内应用的版本,则进行安装或升级;若所述用户端内应用的版本不低于所述离线安装包内应用的版本,则停止安装或升级。
需要说明的是,只有在用户端的微服务应用的版本低于离线安装包内应用的版本时才进行安装或更新,以免浪费资源进行安装、造成使用不便。
在一些实施例中,所述至少一个安装升级描述单元是多个安装升级描述单元,所述安装升级描述文件还用于描述多个所述安装升级描述单元的执行顺序;所述基于所述应用安装资源、所述应用描述文件、所述安装升级描述文件及所述用户端docker 仓库内的docker 镜像安装或升级所述应用,还包括:解析所述安装升级描述文件,并获取所述执行顺序;基于所执行顺序依次安装或升级多个所述应用。
需要说明的是,当所述安装升级描述文件内包括多个安装升级描述单元时,相应的会有多个应用描述文件及相应的多个应用docker仓库的地址,此时需将每一个后端docker仓库的地址修改为用户端docker仓库的地址。
需要说明的是,所述安装升级描述文件内可以包括多个安装升级描述单元,以便一次性、自动化安装或升级多个安装升级描述单元内描述的应用,当所述安装升级描述文件包括多个安装升级描述单元时,需描述多个所述安装升级描述单元的执行顺序,根据所述执行顺序便可一次对多个所述安装升级描述单元内描述的应用程序进行安装或升级。
如图5所示,其为安装/升级微服务应用的流程,包括:
S501:检测所述用户端内应用的版本是否低于所述离线安装包内应用的版本;
若所述用户端内应用的版本低于所述离线安装包内应用的版本,则进行安装或升级;若所述用户端内应用的版本不低于所述离线安装包内应用的版本,则停止安装或升级。
S502:部署用户端docker仓库;
S503:准备安装环境;
S504:读取并解析安装升级描述文件,并得到应用描述文件;
S505:渲染配置文件;
S506:推送docker镜像至用户端docker仓库;
S507:检测是否有应用需要安装;
S508:基于应用描述文件的种类进行安装应用;
需要说明的是,若所述应用描述文件的种类是helm,则通过helm进行安装;若所述应用描述文件的种类是kubectl,则通过kubectl进行安装;若所述应用描述文件的种类是kutomize,则通过kutomize进行安装;若所述应用描述文件的种类是shell,则通过shell进行安装;
S509:应用安装完成;
S510:循环检查各应用是否运行正常。
需要说明的是,循环检查各应用是否运行正常时,通过检测各应用的healthcheck接口是否工作,以判断各应用是否运行正常。
综上所述,本实施例提供了一种基于kubernete的微服务应用安装升级方法及装置,通过编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称、应用源及应用安装所需的资源;基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源文件,其中,所述安装升级资源包括应用安装资源、应用描述文件及所述应用依赖的docker镜像;将所述安装升级资源及所述安装升级描述文件打包成离线安装包;将所述离线安装包发送至用户端,部署用户端docker仓库,将所述离线安装包内的docker镜像推送至所述用户端docker仓库内;基于所述应用安装资源、所述应用描述文件、所述安装升级描述文件及所述用户端docker仓库内的docker镜像安装或升级所述应用,解决了现有微服务应用安装升级过程中存在的部署更新困难、维护困难、资源获取困难的问题,能够实现在离线场景下对微服务应用进行安装/升级、提高了微服务维护效率。
第二方面,如图2所示,本实施例提供了一种基于kubernete的微服务应用安装升级装置,包括:
文件编写模块210,用于编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
资源获取模块220,用于基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
资源打包模块230,用于将所述安装升级资源及所述安装升级描述文件打包成离线安装包;以及
应用安装模块240,用于将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
在一些实施例中,所述基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,包括:基于所述应用名称及所述应用源从代码仓库拉取源应用描述文件,所述应用描述文件内包括所述后端docker仓库的地址;将所述源应用描述文件渲染成所述应用描述文件,并从所述应用描述文件中提取所述后端docker仓库的地址,其中,所述应用描述文件是yaml格式,所述应用描述文件用于描述所述应用的安装过程;基于所述后端docker仓库的地址从所述后端docker仓库中拉取所述应用docker镜像,得到所述安装升级资源。
在一些实施例中,所述源应用描述文件包括helm、kuberctl、kustomize中的至少一项。
在一些实施例中,所述将所述安装升级资源及所述安装升级描述文件打包成离线安装包,具体为:将所述应用描述文件、所述安装升级描述文件及所述应用docker 镜像打包成所述离线安装包。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,包括:将所述离线安装包发送至用户端,并部署用户端docker仓库;解析所述离线安装包,获得所述应用描述文件及所述应用docker镜像;将所述应用docker镜像推送至所述用户端docker仓库内;将所述应用描述文件内所述应用docker镜像的后端docker仓库地址修改为用户端docker仓库地址;基于所述应用描述文件、所述用户端docker仓库内的所述应用docker镜像安装或升级所述应用。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;渲染配置文件,并准备安装环境。
在一些实施例中,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;检测所述用户端内应用的版本是否低于所述离线安装包内应用的版本;若所述用户端内应用的版本低于所述离线安装包内应用的版本,则进行安装或升级;若所述用户端内应用的版本不低于所述离线安装包内应用的版本,则停止安装或升级。
在一些实施例中,所述至少一个安装升级描述单元是多个安装升级描述单元,所述安装升级描述文件还用于描述多个所述安装升级描述单元的执行顺序;所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,还包括:解析所述安装升级描述文件,并获取所述执行顺序;基于所执行顺序依次安装或升级多个所述安装升级描述单元描述的应用。
第三方面,如图3所示,本实施例提供了一种电子设备300,包括处理器320和存储器310;
所述处理器320通过调用所述存储器310存储的程序或指令,用于执行如第一方面中任一实施例所述方法的步骤。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种基于kubernetes的微服务应用安装升级方法,其特征在于,包括:
编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
将所述安装升级资源及所述安装升级描述文件打包成离线安装包;
将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
2.根据权利要求1所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,包括:
基于所述应用名称及所述应用源从代码仓库拉取源应用描述文件,所述源应用描述文件内包括所述后端docker仓库的地址;
将所述源应用描述文件渲染成所述应用描述文件,并从所述应用描述文件中提取所述后端docker仓库的地址,其中,所述应用描述文件是yaml格式,所述应用描述文件用于描述所述应用的安装过程;
基于所述后端docker仓库的地址从所述后端docker仓库中拉取所述应用docker镜像,得到所述安装升级资源。
3.根据权利要求2所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述源应用描述文件包括helm、kuberctl、kustomize中的至少一项。
4.根据权利要求2所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述将所述安装升级资源及所述安装升级描述文件打包成离线安装包,具体为:
将所述应用描述文件、所述安装升级描述文件及所述应用docker 镜像打包成所述离线安装包。
5.根据权利要求1所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,包括:
将所述离线安装包发送至用户端,并部署用户端docker仓库;
解析所述离线安装包,获得所述应用描述文件及所述应用docker镜像;
将所述应用docker镜像推送至所述用户端docker仓库内;
将所述应用描述文件内所述应用docker镜像的后端docker仓库地址修改为用户端docker仓库地址;
基于所述应用描述文件和所述用户端docker仓库内的所述应用docker镜像安装或升级所述应用。
6.根据权利要求1所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;
渲染配置文件,并准备安装环境。
7.根据权利要求1所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用前,还包括;
检测所述用户端内应用的版本是否低于所述离线安装包内应用的版本;
若所述用户端内应用的版本低于所述离线安装包内应用的版本,则进行安装或升级;
若所述用户端内应用的版本不低于所述离线安装包内应用的版本,则停止安装或升级。
8.根据权利要求1-7中任一项所述的基于kubernetes的微服务应用安装升级方法,其特征在于,所述至少一个安装升级描述单元是多个安装升级描述单元,所述安装升级描述文件还用于描述多个所述安装升级描述单元的执行顺序;
所述将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用,还包括:
解析所述安装升级描述文件,并获取所述执行顺序;
基于所执行顺序依次安装或升级多个所述安装升级描述单元描述的应用。
9.一种基于kubernetes的微服务应用安装升级装置,其特征在于,包括:
文件编写模块,用于编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;
资源获取模块,用于基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;
资源打包模块,用于将所述安装升级资源及所述安装升级描述文件打包成离线安装包;以及
应用安装模块,用于将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。
10.一种电子设备,其特征在于,包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至8中任一项所述方法的步骤。
CN202310552258.1A 2023-05-17 2023-05-17 一种基于kubernetes的微服务应用安装升级方法及装置 Active CN116301951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310552258.1A CN116301951B (zh) 2023-05-17 2023-05-17 一种基于kubernetes的微服务应用安装升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310552258.1A CN116301951B (zh) 2023-05-17 2023-05-17 一种基于kubernetes的微服务应用安装升级方法及装置

Publications (2)

Publication Number Publication Date
CN116301951A true CN116301951A (zh) 2023-06-23
CN116301951B CN116301951B (zh) 2023-09-12

Family

ID=86798060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310552258.1A Active CN116301951B (zh) 2023-05-17 2023-05-17 一种基于kubernetes的微服务应用安装升级方法及装置

Country Status (1)

Country Link
CN (1) CN116301951B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234545A (zh) * 2023-11-16 2023-12-15 深圳万物安全科技有限公司 应用程序安装方法、装置、终端设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018161799A1 (zh) * 2017-03-08 2018-09-13 中兴通讯股份有限公司 一种云应用部署方法和系统
CN111352635A (zh) * 2019-04-16 2020-06-30 深圳市鸿合创新信息技术有限责任公司 一种部署微服务的方法及装置、电子设备
CN113485720A (zh) * 2021-05-21 2021-10-08 苏州德姆斯信息技术有限公司 一种微服务系统的离线升级方法
US20220129284A1 (en) * 2020-10-28 2022-04-28 International Business Machines Corporation Microservice Deployment
CN114549097A (zh) * 2021-12-22 2022-05-27 百望股份有限公司 企业发票系统版本管理方法、装置、电子设备及存储介质
CN114840226A (zh) * 2022-04-27 2022-08-02 杭州指令集智能科技有限公司 基于sa进行微服务升级版本的管理系统及方法
CN115543358A (zh) * 2022-10-18 2022-12-30 北京鸿鹄元数科技有限公司 基于Docker的分布式云平台微服务业务编排方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018161799A1 (zh) * 2017-03-08 2018-09-13 中兴通讯股份有限公司 一种云应用部署方法和系统
CN111352635A (zh) * 2019-04-16 2020-06-30 深圳市鸿合创新信息技术有限责任公司 一种部署微服务的方法及装置、电子设备
US20220129284A1 (en) * 2020-10-28 2022-04-28 International Business Machines Corporation Microservice Deployment
CN113485720A (zh) * 2021-05-21 2021-10-08 苏州德姆斯信息技术有限公司 一种微服务系统的离线升级方法
CN114549097A (zh) * 2021-12-22 2022-05-27 百望股份有限公司 企业发票系统版本管理方法、装置、电子设备及存储介质
CN114840226A (zh) * 2022-04-27 2022-08-02 杭州指令集智能科技有限公司 基于sa进行微服务升级版本的管理系统及方法
CN115543358A (zh) * 2022-10-18 2022-12-30 北京鸿鹄元数科技有限公司 基于Docker的分布式云平台微服务业务编排方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234545A (zh) * 2023-11-16 2023-12-15 深圳万物安全科技有限公司 应用程序安装方法、装置、终端设备以及存储介质
CN117234545B (zh) * 2023-11-16 2024-03-08 深圳万物安全科技有限公司 应用程序安装方法、装置、终端设备以及存储介质

Also Published As

Publication number Publication date
CN116301951B (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US20180143825A1 (en) Development of internet of things (iot) applications
CN106663002B (zh) Rest服务源代码生成
US9785452B2 (en) Framework for dependency management and automatic file load in a network environment
US20220236976A1 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
CN112329945A (zh) 一种模型部署及推理的方法和装置
CN106997298A (zh) 一种应用资源获取方法及装置
CN108628626B (zh) 开发环境搭建方法、代码更新方法及装置
CN103064663A (zh) 浏览器插件的生成、发布、加载和更新方法以及系统
JP2011008487A (ja) 互換性評価装置、互換性評価方法、及びプログラム
US11474796B1 (en) Build system for distributed applications
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
CN116301951B (zh) 一种基于kubernetes的微服务应用安装升级方法及装置
CN112114890A (zh) 小程序的处理方法、装置、设备及存储介质
CN111045683A (zh) 小程序代码编译方法、装置、设备及介质
CN117693734A (zh) 前端项目处理方法、装置、设备、管理系统及存储介质
US9996344B2 (en) Customized runtime environment
CN114706616A (zh) 小程序构建方法和装置
KR101907660B1 (ko) 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
US20170031667A1 (en) Managing application lifecycles within a federation of distributed software applications
CN115729604A (zh) 微应用集成方法、系统、电子设备和存储介质
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
JP2013164879A (ja) 情報処理装置、互換性評価方法、及びプログラム

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
GR01 Patent grant
GR01 Patent grant