CN114546588A - 任务的部署方法、装置、存储介质及电子装置 - Google Patents
任务的部署方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN114546588A CN114546588A CN202210139276.2A CN202210139276A CN114546588A CN 114546588 A CN114546588 A CN 114546588A CN 202210139276 A CN202210139276 A CN 202210139276A CN 114546588 A CN114546588 A CN 114546588A
- Authority
- CN
- China
- Prior art keywords
- target
- task
- control
- data packet
- determining
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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
-
- 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
- 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
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本发明实施例提供了一种任务的部署方法、装置、存储介质及电子装置,其中,该方法包括:确定待部署的多个数据包中包括的每个目标数据包与多个数据包中包括的其他数据包之间的依赖关系;基于每个目标数据包与多个数据包中包括的其他数据包之间的依赖关系确定目标任务,其中,目标任务中包括有目标数据包以及与目标数据包具有目标依赖关系的数据包;将目标任务部署到目标容器应用中,以在目标容器应用中部署目标任务。通过本发明,解决了相关技术中存在的部署任务时仅能一次性提交所有资源到容器应用的问题,达到可以按照依赖关系顺序部署数据包的效果。
Description
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种任务的部署方法、装置、存储介质及电子装置。
背景技术
Ubuntu下的ap-get或者CentOS下的yum,这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。kubernetes是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式的完备的分布式系统开发和支撑平台。可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis(https://deis.com/)开发的一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录。其中,values.yaml是安装chart所需的参数配置文件。
kubernetes中Helm Chart的安装管理工具大多数都是针对单个chart(或其依赖的子charts),当发布一个云平台产品版本时,会有几十个几百个的chart产品包需要管理,这些chart产品的安装部署是有依赖关系的,有些chart的安装必须使用前一个chart安装后的参数等要求。每个chart的配置项(通过配置该chart的values.yaml文件完成)和chart产品包的编排部署管理是一个比较繁琐的过程,逐个发布chart的话,需要人工随时守候在机房旁,按文档理清楚安装顺序,人工管理的产品发布过程较长,维护成本较高。
在相关技术中,当前容器云平台需要引入对helm模板的支撑,然而,Helm模板中如果存在依赖,原生的方式是将所有的yaml文件一起渲染出来之后,一次性将所有的资源提交到k8s。原生Helm将资源创建到k8s之后,其使命就算完成了,其部署继续根据资源的状态变更来维护部署实例的状态。
由此可知,在相关技术中存在部署任务时仅能一次性提交所有资源到容器应用的问题。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种任务的部署方法、装置、存储介质及电子装置,以至少解决相关技术中存在的部署任务时仅能一次性提交所有资源到容器应用的问题。
根据本发明的一个实施例,提供了一种任务的部署方法,包括:确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
根据本发明的另一个实施例,提供了一种任务的部署装置,包括:第一确定模块,用于确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;第二确定模块,用于基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;部署模块,用于将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,确定待部署的多个数据包中包括的每个目标数据包与多个数据包中包括的其他数据包之间的依赖关系,根据每个目标数据包中与多个数据包中包括的其他数据包之间的依赖关系确定目标任务,将目标任务部署到目标容器中。由于在目标任务中包括目标数据包以及目标数据包所依赖的数据包,在任务部署时,可以仅部署目标数据包以及目标数据包所依赖的数据包,无需一次性将所有资源部署到目标容器应用中,因此,可以解决相关技术中存在的部署任务时仅能一次性提交所有资源到容器应用的问题,达到可以按照依赖关系顺序部署数据包的效果。
附图说明
图1是本发明实施例的一种任务的部署方法的移动终端的硬件结构框图;
图2是根据本发明实施例的任务的部署方法的流程图;
图3是根据本发明具体实施例的任务的部署方法流程图;
图4是根据本发明实施例的任务的部署装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种任务的部署方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的任务的部署方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于任务的部署方法,图2是根据本发明实施例的任务的部署方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;
步骤S204,基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;
步骤S206,将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
在上述实施例中,数据包可以为chart包,目标任务可以是task任务,目标容器应用可以是kubernetes,简称k8s。可以根据chart包中描述的dependency依赖关系,以及渲染后的manifest进行对应的拆分逻辑,将每个包中以及其对应的yaml文件创建出各自对应的task任务,并且将依赖关系记录其中,如果定义了输入输出,则也可以相应记录到task中。
在上述实施例中,可以调用helm原生客户端代码,按照helm原生逻辑,一次性渲染出所有数据包的yaml文件,根据目标数据包的yaml文件确定出依赖关系。
在上述实施例中,可以在Helm源码中处理原生模式和增强模式,从而判断是否要执行hook和将资源直接更新到k8s,自定义的kubeclient,用于增强模式的处理。在进行增强模式时,即执行上述步骤S202-S206。
可选地,上述步骤的执行主体可以是处理器、helm客户端,但不限于此。
通过本发明,确定待部署的多个数据包中包括的每个目标数据包与多个数据包中包括的其他数据包之间的依赖关系,根据每个目标数据包中与多个数据包中包括的其他数据包之间的依赖关系确定目标任务,将目标任务部署到目标容器中。由于在目标任务中包括目标数据包以及目标数据包所依赖的数据包,在任务部署时,可以仅部署目标数据包以及目标数据包所依赖的数据包,无需一次性将所有资源部署到目标容器应用中,因此,可以解决相关技术中存在的部署任务时仅能一次性提交所有资源到容器应用的问题,达到可以按照依赖关系顺序部署数据包的效果。
在一个示例性实施例中,基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务包括:基于所述依赖关系确定所述目标数据包依赖的依赖数据包;确定所述目标数据包对应的第一配置文件以及所述依赖数据包对应的第二配置文件;将所述目标数据包、所述依赖数据包、所述第一配置文件、所述第二配置文件以及所述依赖关系确定为所述目标任务。在本实施例中,在确定目标任务时,可以根据依赖关系确定目标数据包依赖的依赖数据包,并确定目标数据包对应的第一配置文件,依赖数据包对应的第二配置文件,将目标数据包、依赖数据包、第一配置文件、第二配置文件以及依赖关系写入task任务中。其中,第一配置文件和第二配置文件可以为yaml文件。
在一个示例性实施例中,将所述目标任务部署到目标容器应用中包括:基于所述目标任务中包括的所述依赖关系确定所述依赖数据包以及所述目标数据包的部署顺序;按照所述部署顺序、所述第一配置文件以及所述第二配置文件依次将所述依赖数据包、所述目标数据包部署到所述目标容器应用中。在本实施例中,在部署时,可以根据依赖关系确定部署顺序,按照部署顺序、第一配置文件和第二配置文件依次将依赖数据包和目标数据包部署到目标容器应用中。例如,chart包A依赖chart包B、C,则可以先部署chart包B、C,再部署chart包A。
在一个示例性实施例中,在基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务之后,所述方法还包括以下至少之一:将所述目标任务的所属资源设置为当前实例,以在所述目标任务变化的情况下,基于所述目标任务的资源状态确定所述目标任务的运行状态;设置所述目标任务的目标标签,以通过所述目标标签查询所述目标任务。在本实施例中,所属资源可以为ownerreference,当前实例可以是release。在部署时,可以将创建的task任务的ownerreference设置为当前的release实例,这样可以根据每个task任务的变化触发release的watch事件。因为yaml文件中的ownerreference中设置了task,所以这些资源的变更会触发task的watch事件,这样当监听到时候,可以根据所有资源的状态来动态更新task任务的运行时状态readyStatus。还可以将Task的labels打上helmrequest的标签,便于后面查询。其中,HelmRequest对象可参加表1。
表1
在一个示例性实施例中,所述方法还包括:确定接收到的控制指令对应的控制任务以及控制类型;基于所述控制类型设置所述控制任务中包括的目标动作;基于所述目标动作执行所述控制指令。在本实施例中,可以通过helm客户端输入控制指令,helm客户端在接收到控制指令后,可以确定接收到的控制指令对应的控制任务以及控制类型。根据控制类型设置控制任务中包括的目标动作,根据目标动作执行控制指令。其中,控制指令可以是升级指令、回滚指令、删除指令、更新指令、安装指令等。目标动作可以为task任务中的action。List-watch到task的消息之后,可以根据其中的action操作进行对应处理。
在一个示例性实施例中,基于所述控制类型设置所述控制任务中包括的目标动作包括:在所述控制类型为升级类型或回滚类型的情况下,比对升级任务列表或回滚任务列表与当前部署的当前任务列表,得到比对结果,基于所述比对结果设置所述控制任务中包括的所述目标动作;在所述控制类型为第一删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第一删除;在所述控制类型为第二删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第二删除;在所述控制类型为下线类型的情况下,将所述控制任务中包括的所述目标动作设置为不安装;在所述控制类型为上线类型的情况下,将所述控制任务中包括的所述目标动作设置为安装。在本实施例中,当控制类型为升级类型或回滚类型的情况下,可以根据新的yaml文件和chart包信息,生成对应的最新的task任务列表,比对两个任务列表,得到对比结果,根据对比结果设置控制任务中包括的目标任务。当控制类型为第一删除类型的情况下,将目标动作设置为第一删除。第一删除类型可以为删除,则第一删除为delete。即将对应的task任务的action全部更新为delete。当控制类型为第二删除类型时,可以将目标动作设置为第二删除。其中,第二删除类型可以为强制删除,第二删除为forceDelete。即对应的task任务的action全部更新为forcedelete。当控制类型为下线类型时,将对应的task任务的action全部更新为uninstall(即不安装)。当控制类型为上线类型时,将action改为install(即安装)。
在上述实施例中,部署、升级、删除可以直接调用helm原生kubeclient的实现,对于下线再上线操作,在下线操作时,可以将client参数设置KeepHistory=false,不保留release实例再上线的时候,client参数设置Replace=true。对于回滚操作,可以通过指定helmrequest.spec.rollbackVersion字段去指定需要回滚的版本,然后从调用helm原生的kubeclient的实现,可以把spec.values清空,避免后面出现歧义。
在一个示例性实施例中,基于所述比对结果设置所述控制任务中包括的所述目标动作包括:确定所述比对结果中指示的所述升级任务列表或回滚任务列表与所述当前任务列中均包括的第一控制子任务,将所述第一控制子任务的所述目标动作设置为升级;确定所述比对结果中指示的所述升级任务列表或回滚任务列表中包括,但所述当前任务列中不包括的第二控制子任务,将所述第二控制子任务的所述目标动作设置为安装;确定所述比对结果中指示的所述升级任务列表或回滚任务列表中不包括,但所述当前任务列中包括的第三控制子任务,将所述第三控制子任务的所述目标动作设置为删除。在本实施例中,在控制类型为升级或回滚类型时,可以查询获取当前对应的task任务列表(直接从缓存中查询),然后和部署时产生的task任务进行比对(通过名称比对),新有旧无的则action设置为install,新有旧也有的则为upgrade,新无旧有的则为delete,Task的annotation中的helmrequestAction设置为upgrade。其中,回滚操作和升级逻辑是一致的,只是回滚的时候,回滚到的yaml和chart包信息是从指定的release版本中加载。
在上述实施例中,当action=install时,可以将spec.manifest中的yaml部署到k8s中,根据annotation中的helmrequestAction字段判断触发那种类型的hook,将task添加到yaml中每个资源的ownerreference中,并且打上label中打上task的名称的标签,便于查询。当action=upgrade时,Helmrequest的upgrade、rollback操作对task来说触发的都是upgrade操作。可以将task添加到yaml中每个资源的ownerreference中,并且打上label中打上task的名称的标签,便于查询,可以将oldManifest和manifest中的yaml进行对比,进行资源的增删改,还可以根据annotation中的helmrequestAction字段判断触发那种类型的hook。当action=delete时,可以直接删除manifest中yaml对应的资源,并且触发hook。资源更新到k8s并触发hook之后,可以更新task的status中的phase和lastSpecHash字段。因为yaml文件中的ownerreference中设置了task,所以这些资源的变更会触发task的watch事件,这样当监听到时候,可以根据所有资源的状态来动态更新task任务的运行时状态readyStatus。当readyStatus变为成功之后,action=install/upgrade的时候需要处理输出,action=delete的时候,则需要删除task任务。因为task的ownerreference上设置了release,所有task的变化可以直接触发release实例的watch事件,从而根据所有task的readyStatus去更新release的readyStatus。其中,Release对象可以参见表2。
表2
在一个示例性实施例中,在基于所述目标动作执行所述控制指令之后,所述方法还包括:确定执行了所述控制指令后所得到的部署资源;将所述部署资源更新到所述目标容器应用中。在本实施例中,在执行了控制指令之后,可以将当前资源更新到k8s中,在资源更新到k8s并触发hook之后,还可以更新task的status中的phase和lastSpecHash字段。其中,Task对象可参见表3。
表3
下面结合具体实施方式对任务的部署方法进行说明:
图3是根据本发明具体实施例的任务的部署方法流程图,如图3所示,该流程包括:
步骤S302,调用helm原生客户端代码;
步骤S304,按helm原生逻辑,一次性渲染出所有yalm;
步骤S306,创建release;
步骤S308,执行增强模式,将渲染后的yaml文件,根据chart包中描述的dependency关系,拆分出不同的部署任务task创建到k8s中,将依赖关系也写入其中;
步骤S310,list-watch task任务;
步骤S312,根据task中记录的依赖关系判断task是否需要去部署,校验没通过的情况下,在队列中重新重试;
步骤S314,依赖校验通过后,触发hook并触发资源的部署、更新、删除;
步骤S316,将task的部署转台更新为已部署;
步骤S318,通过ownerreference将资源和task任务进行绑定,这样资源的更新能直接出发task任务的消息,从而来触发task任务的运行时状态的变化;
步骤S320,当task中的资源全部就绪之后,task的运行时状态更新为成功,如果有输出的变量则输出到configmap中;
步骤S322,由于ownerreference的联系,task的变更其实会触发release的事件,从而release的运行时状态的变更可以由task的运行时状态变更来触发;
步骤S324,调用apiserver触发hook和实现资源的更新;
步骤S326,更新release状态为deployed。
在前述实施例中,在原生helm的部署功能上进行了定制,在不需要修改原生helm的chart的情况下,支持顺序启动每个chart包,并且可以在部署完成之后,维护其运行时状态。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种任务的部署装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的任务的部署装置的结构框图,如图4所示,该装置包括:
第一确定模块42,用于确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;
第二确定模块44,用于基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;
部署模块46,用于将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
在一个示例性实施例中,第二确定模块44可以通过如下方式实现基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务:基于所述依赖关系确定所述目标数据包依赖的依赖数据包;确定所述目标数据包对应的第一配置文件以及所述依赖数据包对应的第二配置文件;将所述目标数据包、所述依赖数据包、所述第一配置文件、所述第二配置文件以及所述依赖关系确定为所述目标任务。
在一个示例性实施例中,第二确定模块44可以通过如下方式实现将所述目标任务部署到目标容器应用中:基于所述目标任务中包括的所述依赖关系确定所述依赖数据包以及所述目标数据包的部署顺序;按照所述部署顺序、所述第一配置文件以及所述第二配置文件依次将所述依赖数据包、所述目标数据包部署到所述目标容器应用中。
在一个示例性实施例中,所述装置可以用于以下至少之一:在基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务之后,将所述目标任务的所属资源设置为当前实例,以在所述目标任务变化的情况下,基于所述目标任务的资源状态确定所述目标任务的运行状态;设置所述目标任务的目标标签,以通过所述目标标签查询所述目标任务。
在一个示例性实施例中,所述装置还可以用于确定接收到的控制指令对应的控制任务以及控制类型;基于所述控制类型设置所述控制任务中包括的目标动作;基于所述目标动作执行所述控制指令。
在一个示例性实施例中,所述装置可以通过如下方式实现基于所述控制类型设置所述控制任务中包括的目标动作:在所述控制类型为升级类型或回滚类型的情况下,比对升级任务列表或回滚任务列表与当前部署的当前任务列表,得到比对结果,基于所述比对结果设置所述控制任务中包括的所述目标动作;在所述控制类型为第一删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第一删除;在所述控制类型为第二删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第二删除;在所述控制类型为下线类型的情况下,将所述控制任务中包括的所述目标动作设置为不安装;在所述控制类型为上线类型的情况下,将所述控制任务中包括的所述目标动作设置为安装。
在一个示例性实施例中,所述装置可以通过如下方式实现基于所述比对结果设置所述控制任务中包括的所述目标动作:确定所述比对结果中指示的所述升级任务列表或回滚任务列表与所述当前任务列中均包括的第一控制子任务,将所述第一控制子任务的所述目标动作设置为升级;确定所述比对结果中指示的所述升级任务列表或回滚任务列表中包括,但所述当前任务列中不包括的第二控制子任务,将所述第二控制子任务的所述目标动作设置为安装;确定所述比对结果中指示的所述升级任务列表或回滚任务列表中不包括,但所述当前任务列中包括的第三控制子任务,将所述第三控制子任务的所述目标动作设置为删除。
在一个示例性实施例中,所述装置还可以用于在基于所述目标动作执行所述控制指令之后,确定执行了所述控制指令后所得到的部署资源;将所述部署资源更新到所述目标容器应用中。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种任务的部署方法,其特征在于,包括:
确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;
基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;
将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
2.根据权利要求1所述的方法,其特征在于,基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务包括:
基于所述依赖关系确定所述目标数据包依赖的依赖数据包;
确定所述目标数据包对应的第一配置文件以及所述依赖数据包对应的第二配置文件;
将所述目标数据包、所述依赖数据包、所述第一配置文件、所述第二配置文件以及所述依赖关系确定为所述目标任务。
3.根据权利要求2所述的方法,其特征在于,将所述目标任务部署到目标容器应用中包括:
基于所述目标任务中包括的所述依赖关系确定所述依赖数据包以及所述目标数据包的部署顺序;
按照所述部署顺序、所述第一配置文件以及所述第二配置文件依次将所述依赖数据包、所述目标数据包部署到所述目标容器应用中。
4.根据权利要求1所述的方法,其特征在于,在基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务之后,所述方法还包括以下至少之一:
将所述目标任务的所属资源设置为当前实例,以在所述目标任务变化的情况下,基于所述目标任务的资源状态确定所述目标任务的运行状态;
设置所述目标任务的目标标签,以通过所述目标标签查询所述目标任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定接收到的控制指令对应的控制任务以及控制类型;
基于所述控制类型设置所述控制任务中包括的目标动作;
基于所述目标动作执行所述控制指令。
6.根据权利要求5所述的方法,其特征在于,基于所述控制类型设置所述控制任务中包括的目标动作包括:
在所述控制类型为升级类型或回滚类型的情况下,比对升级任务列表或回滚任务列表与当前部署的当前任务列表,得到比对结果,基于所述比对结果设置所述控制任务中包括的所述目标动作;
在所述控制类型为第一删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第一删除;
在所述控制类型为第二删除类型的情况下,将所述控制任务中包括的所述目标动作设置为第二删除;
在所述控制类型为下线类型的情况下,将所述控制任务中包括的所述目标动作设置为不安装;
在所述控制类型为上线类型的情况下,将所述控制任务中包括的所述目标动作设置为安装。
7.根据权利要求6所述的方法,其特征在于,基于所述比对结果设置所述控制任务中包括的所述目标动作包括:
确定所述比对结果中指示的所述升级任务列表或回滚任务列表与所述当前任务列中均包括的第一控制子任务,将所述第一控制子任务的所述目标动作设置为升级;
确定所述比对结果中指示的所述升级任务列表或回滚任务列表中包括,但所述当前任务列中不包括的第二控制子任务,将所述第二控制子任务的所述目标动作设置为安装;
确定所述比对结果中指示的所述升级任务列表或回滚任务列表中不包括,但所述当前任务列中包括的第三控制子任务,将所述第三控制子任务的所述目标动作设置为删除。
8.根据权利要求5述的方法,其特征在于,在基于所述目标动作执行所述控制指令之后,所述方法还包括:
确定执行了所述控制指令后所得到的部署资源;
将所述部署资源更新到所述目标容器应用中。
9.一种任务的部署装置,其特征在于,包括:
第一确定模块,用于确定待部署的多个数据包中包括的每个目标数据包与多个所述数据包中包括的其他数据包之间的依赖关系;
第二确定模块,用于基于每个所述目标数据包与多个所述数据包中包括的其他数据包之间的所述依赖关系确定目标任务,其中,所述目标任务中包括有所述目标数据包以及与所述目标数据包具有目标依赖关系的数据包;
部署模块,用于将所述目标任务部署到目标容器应用中,以在所述目标容器应用中部署所述目标任务。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的方法的步骤。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210139276.2A CN114546588A (zh) | 2022-02-15 | 2022-02-15 | 任务的部署方法、装置、存储介质及电子装置 |
PCT/CN2023/076287 WO2023155819A1 (zh) | 2022-02-15 | 2023-02-15 | 一种应用部署方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210139276.2A CN114546588A (zh) | 2022-02-15 | 2022-02-15 | 任务的部署方法、装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546588A true CN114546588A (zh) | 2022-05-27 |
Family
ID=81676337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210139276.2A Pending CN114546588A (zh) | 2022-02-15 | 2022-02-15 | 任务的部署方法、装置、存储介质及电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114546588A (zh) |
WO (1) | WO2023155819A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023155819A1 (zh) * | 2022-02-15 | 2023-08-24 | 浙江大华技术股份有限公司 | 一种应用部署方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117289951B (zh) * | 2023-11-22 | 2024-04-02 | 华信咨询设计研究院有限公司 | 一种基于递归原则的软件系统多应用自动部署方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704188B (zh) * | 2014-11-27 | 2019-04-12 | 华为软件技术有限公司 | 应用与服务的部署方法和装置 |
CN108762769B (zh) * | 2018-06-04 | 2022-06-21 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
US11170009B2 (en) * | 2019-10-23 | 2021-11-09 | Cognizant Technology Solutions India Pvt. Ltd. | System and a method for resource data classification and management |
CN110768833B (zh) * | 2019-10-25 | 2022-07-29 | 北京宝兰德软件股份有限公司 | 基于kubernetes的应用编排部署方法及装置 |
CN114546588A (zh) * | 2022-02-15 | 2022-05-27 | 浙江大华技术股份有限公司 | 任务的部署方法、装置、存储介质及电子装置 |
-
2022
- 2022-02-15 CN CN202210139276.2A patent/CN114546588A/zh active Pending
-
2023
- 2023-02-15 WO PCT/CN2023/076287 patent/WO2023155819A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023155819A1 (zh) * | 2022-02-15 | 2023-08-24 | 浙江大华技术股份有限公司 | 一种应用部署方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023155819A1 (zh) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210406079A1 (en) | Persistent Non-Homogeneous Worker Pools | |
CN108733380B (zh) | 应用部署方法和装置 | |
CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
CN106126273B (zh) | 一种升级bios的方法 | |
CN111651178A (zh) | 容器配置更新方法、装置、计算机设备和存储介质 | |
EP3444719B1 (en) | Method and system for a client to server deployment via an online distribution platform | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN110083366B (zh) | 应用运行环境的生成方法、装置、计算设备及存储介质 | |
EP4162649B1 (en) | Stable references for network function life cycle management automation | |
US20190012161A1 (en) | Distributed and self-deleting apparatus for fast software deployment and upgrade in a network | |
US20160335068A1 (en) | Checks for software extensions | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
CN115357198B (zh) | 存储卷的挂载方法及装置、存储介质及电子设备 | |
US11425203B2 (en) | Commissioning a virtualized network function | |
CN114662102A (zh) | 一种文件处理方法、装置及存储介质 | |
CN112199161A (zh) | 一种云平台服务管理方法、装置及相关组件 | |
CN112685102A (zh) | 一种网关插件热加载方法、装置、设备及介质 | |
CN114443104B (zh) | 一种应用的部署方法、装置、存储介质及电子装置 | |
CN112579247A (zh) | 确定任务状态的方法和装置 | |
US9477447B1 (en) | Semantic representations of software extensions | |
CN114500268B (zh) | chart资源的部署方法、装置、服务器及存储介质 | |
CN108664259B (zh) | 一种进行应用安装的方法和终端 | |
CN114327539A (zh) | 关联关系的建立方法和装置、存储介质及电子装置 | |
CN114217830A (zh) | 应用更新方法、系统、终端设备以及计算机可读存储介质 | |
Agrawal | Advanced Objects In Kubernetes Clusters |
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 |