一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源的分配方法和装置、存储介质及电子装置与流程

2022-05-11 16:54:37 来源:中国专利 TAG:


1.本发明涉及通信领域,具体而言,涉及一种资源的分配方法和装置、存储介质及电子装置。


背景技术:

2.容器技术作为一门新兴的虚拟化技术,在云计算和容器云领域发挥了重要的作用。容器技术能够将待部署组件的程序打包成容器镜像,在不同的环境中能够实现组件的快速部署和运行,提升了开发的效率和性能。
3.在k8s官方所提供的部署方案中,是通过安装kubelet、kubectl以及kubeadm,并导入apiserver、kube-controller-manager、coredns等组件的镜像文件,然后由kubeadm引导安装该组件,但是原生的技术无法实现当前业务需求,当业务场景是在单个节点上部署k8s,然后通过k8s在该节点上部署其他服务,因此不仅需要对其他服务中的资源配额做管理,还需要对k8s内置的apiserver、kube-controller-manager等组件的资源配额进行管理。
4.针对相关技术中,无法对部署在云平台上的组件进行资源配额的管理等问题,尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种资源的分配方法和装置、存储介质及电子装置,以至少解决相关技术中,无法对部署在云平台上的组件进行资源配额的管理等问题。
6.根据本发明实施例的一个实施例,提供了一种资源的分配方法,包括:获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
7.在一个示例性实施例中,所述获取待部署组件的资源包的第一镜像文件,包括:确定所述资源包与所述待部署组件的组件代码是否存在依赖关系;在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述资源包中的原始镜像文件,将所述原始镜像文件作为所述第一镜像文件;在所述资源包与所述待部署组件的组件代码存在依
赖关系的情况下,编译所述组件代码,得到代码镜像文件,将所述代码镜像文件作为所述第一镜像文件。
8.在一个示例性实施例中,所述根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,包括:在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述原始镜像文件的原始文件地址,将所述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述原始文件地址;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,获取所述代码镜像文件的代码文件地址,将所述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述代码文件地址。
9.在一个示例性实施例中,所述根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,包括:根据所述配置文件中的所述资源配额配置信息生成所述资源包的渲染值,其中,所述渲染值用于指示允许分配给所述待部署组件的所述第一资源配额;将所述第二标记语言文件中的所述第二字段的取值更新为所述渲染值,得到所述第三标记语言文件。
10.在一个示例性实施例中,在所述根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件之后,所述方法还包括以下至少之一:在所述待部署组件为所述云平台中的原生组件的情况下,将所述第三标记语言文件存储至所述云平台的目标目录中;在所述待部署组件为所述云平台中的外接插件的情况下,将所述第三标记语言文件发送至所述云平台的接口服务中,以使所述接口服务根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在所述云平台中根据所述第一镜像文件部署所述待部署组件。
11.在一个示例性实施例中,在云平台中根据所述第一镜像文件部署所述待部署组件,包括:通过应用容器引擎拉取所述第一镜像文件,并根据所述第一镜像文件开启目标容器;在所述目标容器中获取所述第一镜像文件的二进制文件,以根据所述二进制文件在所述云平台中部署所述待部署组件。
12.在一个示例性实施例中,所述获取所述待部署组件的资源包的配置文件,包括:在将所述资源包中的所述第一标记语言文件更新为所述第二标记语言文件的情况下,将所述资源包保存至所述云平台中的目标仓库中;获取所述资源包的网络地址,并根据所述网络地址在所述目标仓库中获取所述待部署组件的所述资源包的配置文件,其中所述网络地址用于指示所述资源包在所述目标仓库中的地址。
13.根据本发明实施例的另一个实施例,还提供了一种资源的分配装置,包括:第一获取模块,用于获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;第二获取模块,用于获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;分配模块,用于根据所述第
三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
14.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述资源的分配方法。
15.根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的资源的分配方法。
16.在本发明实施例中,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源;采用上述技术方案,解决了无法对部署在云平台上的组件进行资源配额的管理等问题,进而通过资源包产物构建适配部署方案,来解决当前的业务需求,以资源包包而非镜像文件作为组件的部署入口,能够对组件的资源配额进行限制,便于进行小规模部署。
附图说明
17.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
18.图1是本发明实施例的一种资源的分配方法的计算机终端的硬件结构框图;
19.图2是根据本发明实施例的资源的分配方法的流程图;
20.图3是根据本发明可选实施例的容器云安装部署流程图;
21.图4是根据本发明可选实施例的资源的分配方法中各个待部署组件的资源配额图;
22.图5是根据本发明可选实施例的资源的分配方法的流程图;
23.图6是根据本发明实施例的一种资源的分配装置的结构框图。
具体实施方式
24.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
25.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.本技术实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种资源的分配方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
27.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的资源的分配方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
29.在本实施例中提供了一种资源的分配方法,应用于上述计算机终端,图2是根据本发明实施例的资源的分配方法的流程图,该流程包括如下步骤:
30.步骤s202,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;
31.步骤s204,获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新
所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;
32.步骤s206,根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
33.通过上述步骤,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源,解决了相关技术中,无法对部署在云平台上的组件进行资源配额的管理等问题,进而通过资源包产物构建适配部署方案,来解决当前的业务需求,以资源包包而非镜像文件作为组件的部署入口,能够对组件的资源配额进行限制,便于进行小规模部署。
34.在一个示例性实施例中,通过以下方式获取第一镜像文件:确定所述资源包与所述待部署组件的组件代码是否存在依赖关系;在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述资源包中的原始镜像文件,将所述原始镜像文件作为所述第一镜像文件;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,编译所述组件代码,得到代码镜像文件,将所述代码镜像文件作为所述第一镜像文件。
35.具体的,首先构建好待部署组件的资源包(例如,chart包),资源包分为有代码依赖与无代码依赖两种类型,无代码依赖的资源包(即资源包与待部署组件的组件代码不存在依赖关系)中的原始镜像文件是固定的,资源包中的第一标记语言文件的第一字段的取值为固定的;有代码依赖的资源包(即资源包与待部署组件的组件代码存在依赖关系)中的镜像文件不是固定的,需要将待部署组件的组件代码进行编译,得到代码镜像文件,将代码镜像文件代替资源包中的原始镜像文件。在构建好待部署组件的资源包的情况下,根据待部署组件的资源包的类型获取对应的第一镜像文件,即在资源包的类型为有代码依赖类型的情况下,获取代码镜像文件,并将代码镜像文件作为第一镜像文件;在资源包的类型为无代码依赖类型的情况下,获取原始镜像文件,并将原始镜像文件作为第一镜像文件。
36.在一个示例性实施例中,上述步骤s202具体方法为:在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述原始镜像文件的原始文件地址,将所
述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述原始文件地址;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,获取所述代码镜像文件的代码文件地址,将所述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述代码文件地址。
37.也就是说,在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,资源包中的所述第一标记语言文件的所述第一字段的取值为原始镜像文件的原始文件地址;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,资源包中的所述第一标记语言文件的所述第一字段的取值为代码镜像文件的代码文件地址,以使在部署所述待部署组件的情况下,从根据所述第一字段的取值,获取所述代码镜像文件或者原始镜像文件,进而通过代码镜像文件或者原始镜像文件部署所述待部署组件。
38.在一个示例性实施例中,所述根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,包括:根据所述配置文件中的所述资源配额配置信息生成所述资源包的渲染值,其中,所述渲染值用于指示允许分配给所述待部署组件的所述第一资源配额;将所述第二标记语言文件中的所述第二字段的取值更新为所述渲染值,得到所述第三标记语言文件。
39.也就是说,根据配置文件生成资源包的渲染值,例如map形式的值,借助包管理器helm原生的资源包的渲染功能,渲染值对资源包进行渲染,更新资源包中第二字段的取值。最终得到各组件符合云平台k8s部署规范的标记语言文件,用于部署待部署组件。
40.在一个示例性实施例中,在所述待部署组件为所述云平台中的原生组件的情况下,将所述第三标记语言文件存储至所述云平台的目标目录中;在所述待部署组件为所述云平台中的外接插件的情况下,将所述第三标记语言文件发送至所述云平台的接口服务中,以使所述接口服务根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在所述云平台中根据所述第一镜像文件部署所述待部署组件。
41.由于待部署组件分为:云平台的原生组件和外接插件,在待部署组件为云平台的原生组件的情况下,将上述得到的第三标记语言文件保存至目标目录,以使所述云平台将所述待部署组件作为静态容器组pod部署在云平台上,在待部署组件为云平台的外接插件的情况下,将上述得到的第三标记语言文件发送至云平台对应的接口服务(例如,apiserver),以使所述接口服务根据所述第一镜像文件在所述云平台上部署所述外接插件。
42.在一个示例性实施例中,在云平台中根据所述第一镜像文件部署所述待部署组件,包括:通过应用容器引擎拉取所述第一镜像文件,并根据所述第一镜像文件开启目标容器;在所述目标容器中获取所述第一镜像文件的二进制文件,以根据所述二进制文件在所述云平台中部署所述待部署组件。
43.具体地,获取k8s的相关插件的资源包,通过自定义的kubeadm实现对其引导部署,包括keepalived、nginx、etcd高可用集群、apiserver、kube-scheduler、kube-controller-manager、kube-proxy、crd和role资源以及calico、coredns、helm、chartmuseum插件。由于部署过程中的入口统一为资源包,因此提前将kubectl以及kubelet的二进制置入镜像文件中,部署时通过组件镜像引擎docker拉起镜像,从镜像容器中获取镜像文件相应的二进制文件,然后关闭镜像容器。在此过程中还将生成ca相关自签名证书,然后依据ca证书生成
apiserver、etcd等组件用于双向通信的公钥和私钥。
44.在一个示例性实施例中,所述获取所述待部署组件的资源包的配置文件,包括:在将所述资源包中的所述第一标记语言文件更新为所述第二标记语言文件的情况下,将所述资源包保存至所述云平台中的目标仓库中;获取所述资源包的网络地址,并根据所述网络地址在所述目标仓库中获取所述待部署组件的所述资源包的配置文件,其中所述网络地址用于指示所述资源包在所述目标仓库中的地址。
45.也就是说,helm repo add添加目标仓库(例如,chart仓库)后,helm package将资源包打包,helm push将资源包上传至目标仓库,在需要在云平台上部署所述待部署组件的情况下,获取资源包在所述目标仓库中的网络地址,以根据所述网络地址目标仓库中获取待部署组件的资源包,以及资源包的配置文件。
46.为了更好的理解上述资源的分配方法的过程,以下再结合可选实施例对上述资源的分配的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
47.在本实施例中提供了一种资源的分配方法,图3是根据本发明可选实施例的容器云安装部署流程图,如图3所示,具体流程如下:
48.pxe装机:基于pxe模版完成节点安装,完成操作系统基础组件依赖固化,包括自动化运维工具ansible、应用容器引擎docker、wsagent、ip虚拟服务器的管理器ipvsadm等,并且在操作系统中定制了一些功能,包括关闭防火墙,关闭postfix、配置systemd-journald等。
49.配置主机:配置节点信息,并在/etc/hosts中添加harbor仓库信息,用于拉取部署组件时所需要的chart包(相当于上述实施例中的资源包)。实现mysql和etcd的挂载。
50.启动时间同步服务器ntp:实现各节点之间的时间同步。
51.部署k8s及相关插件:获取k8s组件及相关插件的chart包,通过自定义的kubeadm实现对其引导部署,包括keepalived、nginx、etcd高可用集群、apiserver、kube-scheduler、kube-controller-manager、kube-proxy、crd和role资源以及calico、coredns、helm、chartmuseum插件。由于部署过程中的入口统一为chart包,因此提前将kubectl以及kubelet的二进制置入镜像中,部署时通过docker拉起镜像文件,从镜像容器中获取镜像文件相应的二进制文件,然后停掉镜像容器。在此过程中还将生成ca相关自签名证书,然后依据ca证书生成apiserver、etcd等组件用于双向通信的公钥和私钥。
52.部署管理面服务组件及自研组件:k8s集群部署成功后,还将部署管理面服务组件,便于对资源的可视化管理,这些服务组件的部署也是以chart包为入口,通过helmrequest资源进行统一部署,包括ipsection、topolvm等k8s扩展组件,prometheus及vm资源监控报警组件,promtail和loki日志采集组件,mysql、redis等数据库及中间件组件,便于可视化操作的web组件,本地harbor仓库组件。
53.自定义apiserver、kube-controller-manager等待部署组件的chart包,其中,resources属性来管理资源配额,包括具体的资源需求(requests)和限制(limits),主要管理的资源为中央处理器cpu和存储器memory的资源。如图4所示,图4是根据本发明可选实施例的资源的分配方法中各个待部署组件的资源配额图。
54.本发明实施例提供了一种资源的分配方法,图5是根据本发明可选实施例的资源的分配方法的流程图,如图5所示,具体步骤如下:
55.步骤s501:自定义待部署组件的chart包,在所述chart包中的配置文件中为所述待部署组件设置资源配额信息;
56.步骤s502:通过单向构建将chart包上传到chart仓库中,其中,本发明实施例使用harbor仓库作为chart仓库;
57.步骤s503:获取chart包的网络地址url,根据网络地址chart仓库中获取chart包的配置文件,根据配置文件生成chart包的渲染值——map形式的val,其中,所述网络地址url用于指示所述chart包在chart仓库中的地址;
58.步骤s504:借助helm原生的chart包渲染功能,将val作为渲染值对chart包进行渲染,更新chart包中values.yaml的值(相当于上述实施例中的第二字段的取值)。最终得到各组件符合k8s部署规范的yaml文件(相当于上述实施例中的第三标记语言文件),用于部署所述待部署组件;
59.步骤s505:确定是将yaml文件对应的待部署组件作为静态pod部署,还是需要提交到apiserver(相当于上述实施例中的接口服务),通过apiserver部署所述待部署组件,在确定是将yaml文件对应的待部署组件作为静态pod部署的情况下,执行步骤s506,否则执行步骤s507;
60.步骤s506:当待部署组件属于k8s组件(相当于上述实施例中的原生组件)时,例如apiserver、kube-proxy等,则作为静态pod进行部署,将yaml文件拷贝至/etc/kubernetes/manifests目录下(相当于上述实施例中的目标目录);
61.步骤s507:当待部署组件属于k8s的插件(相当于上述实施例中的外接插件)时,例如calico、helm-captain等,将yaml文件提交apiserver,通过kubectl apply进行部署所述待部署组件。
62.本发明实施例,通过helm编排的chart包产物构建适配部署方案,来解决当前的业务需求,以chart包而非镜像作为部署入口,能够对组件的资源配额进行限制,便于进行小规模部署;原生能力无法满足业务发展。
63.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
64.在本实施例中还提供了资源的分配装置,该资源的分配装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
65.图6是根据本发明实施例的一种资源的分配装置的结构框图;如图6所示,包括:
66.第一获取模块62,用于获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;
67.第二获取模块64,用于获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;
68.分配模块66,用于根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
69.通过上述装置,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源,解决了相关技术中,无法对部署在云平台上的组件进行资源配额的管理等问题,进而通过资源包产物构建适配部署方案,来解决当前的业务需求,以资源包包而非镜像文件作为组件的部署入口,能够对组件的资源配额进行限制,便于进行小规模部署。
70.在一个示例性实施例中,第一获取模块62,还用于确定所述资源包与所述待部署组件的组件代码是否存在依赖关系;在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述资源包中的原始镜像文件,将所述原始镜像文件作为所述第一镜像文件;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,编译所述组件代码,得到代码镜像文件,将所述代码镜像文件作为所述第一镜像文件。
71.在一个示例性实施例中,第一获取模块62,还用于在所述资源包与所述待部署组件的组件代码不存在依赖关系的情况下,获取所述原始镜像文件的原始文件地址,将所述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述原始文件地址;在所述资源包与所述待部署组件的组件代码存在依赖关系的情况下,获取所述代码镜像文件的代码文件地址,将所述资源包中的所述第一标记语言文件的所述第一字段的取值更新为所述代码文件地址。
72.在一个示例性实施例中,第二获取模块64,还用于根据所述配置文件中的所述资源配额配置信息生成所述资源包的渲染值,其中,所述渲染值用于指示允许分配给所述待部署组件的所述第一资源配额;将所述第二标记语言文件中的所述第二字段的取值更新为所述渲染值,得到所述第三标记语言文件。
73.在一个示例性实施例中,分配模块66,还用于在所述待部署组件为所述云平台中的原生组件的情况下,将所述第三标记语言文件存储至所述云平台的目标目录中;在所述待部署组件为所述云平台中的外接插件的情况下,将所述第三标记语言文件发送至所述云平台的接口服务中,以使所述接口服务根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在所述云平台中根据所述第一镜像文件部署所述待部署组件。
74.在一个示例性实施例中,分配模块66,还用于通过应用容器引擎拉取所述第一镜像文件,并根据所述第一镜像文件开启目标容器;在所述目标容器中获取所述第一镜像文件的二进制文件,以根据所述二进制文件在所述云平台中部署所述待部署组件。
75.在一个示例性实施例中,第二获取模块64,还用于在将所述资源包中的所述第一标记语言文件更新为所述第二标记语言文件的情况下,将所述资源包保存至所述云平台中的目标仓库中;获取所述资源包的网络地址,并根据所述网络地址在所述目标仓库中获取所述待部署组件的所述资源包的配置文件,其中所述网络地址用于指示所述资源包在所述目标仓库中的地址。
76.本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
77.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
78.s1,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;
79.s2,获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;
80.s3,根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
81.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
82.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
83.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
84.s1,获取待部署组件的资源包的第一镜像文件和所述第一镜像文件的第一文件地址,并根据所述第一镜像文件的所述第一文件地址更新所述资源包中的第一标记语言文件
的第一字段的取值,得到第二标记语言文件,其中,所述第一字段的取值用于指示所述第一镜像文件的所述第一文件地址;
85.s2,获取所述待部署组件的资源包的配置文件,并根据所述配置文件更新所述第二标记语言文件中的第二字段的取值,得到第三标记语言文件,其中,所述配置文件中包括资源配额配置信息,所述资源配额配置信息用于指示允许分配给所述待部署组件的第一资源配额,所述第二标记语言文件中的所述第二字段的取值用于指示允许分配给所述待部署组件的第二资源配额;
86.s3,根据所述第三标记语言文件中的所述第一字段的取值获取所述第一镜像文件,并在云平台中根据所述第一镜像文件部署所述待部署组件,以及根据所述第三标记语言文件中的所述第二字段的取值确定允许分配给所述待部署组件的所述第一资源配额,并在所述云平台中根据所述第一资源配额为所述待部署组件分配对应的资源。
87.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
88.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
89.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
90.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献