CN116301951A - 一种基于kubernetes的微服务应用安装升级方法及装置 - Google Patents
一种基于kubernetes的微服务应用安装升级方法及装置 Download PDFInfo
- 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
Links
- 238000009434 installation Methods 0.000 title claims abstract description 272
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004806 packaging method and process Methods 0.000 claims abstract description 20
- 241000380131 Ammophila arenaria Species 0.000 claims description 13
- 238000009877 rendering Methods 0.000 claims description 9
- 238000011900 installation process Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 9
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种基于kubernete的微服务应用安装升级方法及装置,通过编写安装升级描述文件,所述安装升级描述文件包括至少一个安装升级描述单元,所述安装升级描述单元用于描述应用名称及应用源;基于所述应用名称及所述应用源从代码仓库及后端docker仓库中获取安装升级资源,其中,所述安装升级资源包括应用描述文件及应用docker镜像;将所述安装升级资源及所述安装升级描述文件打包成离线安装包;将所述离线安装包发送至用户端,并基于所述离线安装包安装或升级所述应用。解决了现有微服务应用安装升级过程中存在的部署更新困难、维护困难、资源获取困难的问题,能够实现在离线场景下对微服务应用进行安装/升级、提高了微服务维护效率。
Description
技术领域
本申请各实施例属计算机技术领域,尤其涉及一种基于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中任一项所述方法的步骤。
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234545A (zh) * | 2023-11-16 | 2023-12-15 | 深圳万物安全科技有限公司 | 应用程序安装方法、装置、终端设备以及存储介质 |
CN118093010A (zh) * | 2024-04-22 | 2024-05-28 | 北京长亭科技有限公司 | 一种应用包生成方法及装置 |
Citations (7)
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的分布式云平台微服务业务编排方法及*** |
-
2023
- 2023-05-17 CN CN202310552258.1A patent/CN116301951B/zh active Active
Patent Citations (7)
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234545A (zh) * | 2023-11-16 | 2023-12-15 | 深圳万物安全科技有限公司 | 应用程序安装方法、装置、终端设备以及存储介质 |
CN117234545B (zh) * | 2023-11-16 | 2024-03-08 | 深圳万物安全科技有限公司 | 应用程序安装方法、装置、终端设备以及存储介质 |
CN118093010A (zh) * | 2024-04-22 | 2024-05-28 | 北京长亭科技有限公司 | 一种应用包生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116301951B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
CN108279932B (zh) | 一种移动终端动态配置用户界面方法和装置 | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
CN106663002B (zh) | Rest服务源代码生成 | |
US9785452B2 (en) | Framework for dependency management and automatic file load in a network environment | |
US11561784B2 (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 | |
CN112114890A (zh) | 小程序的处理方法、装置、设备及存储介质 | |
CN117693734A (zh) | 前端项目处理方法、装置、设备、管理***及存储介质 | |
CN112000334A (zh) | 页面开发方法、装置、服务器及存储介质 | |
US9996344B2 (en) | Customized runtime environment | |
CN111723314B (zh) | 网页展示方法、装置、电子设备及计算机可读存储介质 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN114706616A (zh) | 小程序构建方法和装置 | |
KR101907660B1 (ko) | 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법 | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN110825373A (zh) | 一种移动端动态化方法及装置 | |
US20170031667A1 (en) | Managing application lifecycles within a federation of distributed software applications | |
CN115729604A (zh) | 微应用集成方法、***、电子设备和存储介质 |
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 |