组件处理方法、设备及存储介质转让专利

申请号 : CN202010967802.5

文献号 : CN112083971B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 闫航何晓曦范子逸

申请人 : 北京凌云雀科技有限公司

摘要 :

本申请提供了一种组件处理方法、设备及存储介质,其中,该方法包括:通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化,若是,根据变化后的各配置参数安装或者更新对应的组件。本申请根据变化后的配置参数安装或者更新对应的组件,和现有技术相比,避免出现大量的使用问题,从而提升了用户体验,并且大大减少了在部署组件时面对的资源冲突问题。

权利要求 :

1.一种组件处理方法,其特征在于,应用于集群系统,所述方法包括:

通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化,所述逻辑控制器位于所述集群系统中;

若是,根据变化后的各配置参数安装或者更新目标业务集群中对应的组件;

所述预设的自定义资源包括:组件部署请求和组件模板仓库;所述组件部署请求的配置参数包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息,所述资源参数配置信息包括所述待处理组件在运行时所占用资源的大小和资源类型;其中,所述组件模板仓库为所述待处理组件对应的组件模板所在的仓库;所述组件模板仓库的配置参数包括如下信息中的至少一种:所述组件模板仓库的认证信息、访问地址。

2.根据权利要求1所述的方法,其特征在于,所述根据变化后的各配置参数安装或者更新目标业务集群中对应的组件,包括:对所述变化后的各配置参数进行合法性校验;

若校验通过,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

通过预设的代码生成工具,根据所述预设的自定义资源生成对应的软件开发工具包SDK,所述SDK提供有应用程序接口。

4.一种组件处理方法,其特征在于,应用于管理集群,所述方法包括:

获取所述管理集群和/或多个业务集群中、自定义资源的变化后的配置参数,所述自定义资源包括:组件部署请求和组件模板仓库;所述组件部署请求的配置参数包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息,所述资源参数配置信息包括所述待处理组件在运行时所占用资源的大小和资源类型;其中,所述组件模板仓库为所述待处理组件对应的组件模板所在的仓库;所述组件模板仓库的配置参数包括如下信息中的至少一种:所述组件模板仓库的认证信息、访问地址;

通过调用其它业务集群的应用程序接口,根据所述变化后的配置参数在所述其它业务集群安装或者更新对应的组件。

5.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至3任一项所述的方法。

6.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求4所述的方法。

7.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至4中任一项所述的方法。

说明书 :

组件处理方法、设备及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,具体而言,涉及一种组件处理方法、设备及存储介质。

背景技术

[0002] Kubernetes是目前应用最为广泛的容器平台,在Kubernetes平台一般采用Helm来方便地管理较为复杂的应用。其中,Helm是一个命令行下的客户端工具,其通过组件(英文名称:Chart)来描述一个应用所包含的资源。
[0003] 目前,通常是通过输入命令行来安装和更新组件,随着用户自定义资源(CustomResourceDefinition,CRD)越来越多,该种方式在使用上存在大量的问题。

发明内容

[0004] 本申请的目的在于,针对上述现有技术中的不足,提供一种组件处理方法、设备及存储介质,以解决现有技术中通过命令行安装或者更新组件时存在大量的使用问题。
[0005] 为实现上述目的,本申请实施例采用的技术方案如下:
[0006] 第一方面,本申请一实施例提供了一种组件处理方法,所述方法包括:
[0007] 通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化;
[0008] 若是,根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0009] 可选地,所述根据变化后的各配置参数安装或者更新目标业务集群中对应的组件,包括:
[0010] 对所述变化后的各配置参数进行合法性校验;
[0011] 若校验通过,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0012] 可选地,所述方法还包括:
[0013] 通过预设的代码生成工具,根据所述预设的自定义资源生成对应的软件开发工具包(Software Development Kit,SDK),所述SDK提供有应用程序接口。
[0014] 可选地,所述预设的自定义资源包括:组件部署请求和组件模板仓库。
[0015] 可选地,所述组件部署请求的配置信息包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息;其中,所述组件模板仓库为所述待处理组件对应的组件模板所在的仓库。
[0016] 可选地,所述组件模板仓库的配置信息包括如下信息中的至少一种:所述组件模板仓库的认证信息、访问地址。
[0017] 第二方面,本申请另一实施例提供了一种组件处理方法,包括:
[0018] 获取所述管理集群和/或多个业务集群中、自定义资源的变化后的配置参数;
[0019] 通过调用其它业务集群的应用程序接口,根据所述变化后的配置参数在所述其它业务集群安装或者更新对应的组件。
[0020] 第三方面,本申请另一实施例提供了一种组件处理装置,包括:
[0021] 监听模块,用于通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化;
[0022] 若是,处理模块,用于根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0023] 可选地,所述处理模块,具体用于:
[0024] 对所述变化后的各配置参数进行合法性校验;
[0025] 若校验通过,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0026] 可选地,所述处理模块,还用于:
[0027] 通过预设的代码生成工具,根据所述预设的自定义资源生成对应的软件开发工具包SDK,所述SDK提供有应用程序接口。
[0028] 可选地,所述预设的自定义资源包括:组件部署请求和组件模板仓库。
[0029] 可选地,所述组件部署请求的配置信息包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息;其中,所述组件模板仓库为所述待处理组件对应的组件模板所在的仓库。
[0030] 可选地,所述组件模板仓库的配置信息包括如下信息中的至少一种:所述组件模板仓库的认证信息、访问地址。
[0031] 第四方面,本申请另一实施例提供了一种组件处理装置,包括:
[0032] 获取模块,用于获取所述管理集群和/或多个业务集群中、自定义资源的变化后的配置参数;
[0033] 处理模块,用于通过调用其它业务集群的应用程序接口,根据所述变化后的配置参数在所述其它业务集群安装或者更新对应的组件。
[0034] 第五方面,本申请另一实施例提供了一种计算机设备,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述第一方面任一项所述的方法。
[0035] 第六方面,本申请另一实施例提供了一种计算机设备,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述第二方面所述的方法。
[0036] 第七方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述第一方面和第二方面任一项所述的方法。
[0037] 本申请提供的组件处理方法、设备及存储介质,其中,该方法包括:通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化,若是,根据变化后的各配置参数安装或者更新对应的组件。本申请根据变化后的配置参数安装或者更新对应的组件,和现有技术相比,避免出现大量的使用问题,从而提升了用户体验,并且大大减少了在部署组件时面对的资源冲突问题。

附图说明

[0038] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0039] 图1示出了本申请实施例提供的组件处理系统的架构示意图;
[0040] 图2示出了本申请实施例提供的组件处理方法的流程示意图一;
[0041] 图3示出了本申请实施例提供的组件处理方法的流程示意图二;
[0042] 图4示出了本申请实施例提供的组件处理方法的流程示意图三;
[0043] 图5示出了本申请实施例提供的组件处理装置的结构示意图一;
[0044] 图6示出了本申请实施例提供的组件处理装置的结构示意图二;
[0045] 图7示出了本申请实施例提供的计算机设备的结构示意图一;
[0046] 图8示出了本申请实施例提供的计算机设备的结构示意图二。

具体实施方式

[0047] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
[0048] 另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0049] 需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
[0050] 在介绍本申请的技术方案之前,首先对本申请涉及的现有技术进行说明:
[0051] Kubernetes已经是目前应用最为广泛的容器平台,人们越来越想要能够方便地管理较为复杂的应用,Helm应运而生。Helm包含一个命令行工具,通过命令行工具来安装或者升级组件,但是Helm本身对资源的处理不够完善,会带来大量使用上的问题,以及随着自定义资源CRD的使用越来越多,而Helm对CRD的处理本身也带有不少问题,更严重的是,其采用的client‑server架构本身用户难以理解,同时在使用上也带了诸多问题,例如,删除部署的组件时,可能导致没有删除干净,重新安装组件时会报错,引起资源冲突问题。
[0052] 基于此,本申请实施例提供了一种组件处理方法,通过监听预设的自定义资源的各配置参数,并在各配置参数发生变化时,根据变化后的配置参数安装或者更新对应的组件,和现有技术相比,避免出现大量的使用问题,从而提升了用户体验,并且大大减少了在部署组件时面对的资源冲突问题。
[0053] 图1示出了本申请实施例提供的组件处理系统的架构示意图,如图1所示,集群系统100包括:通信连接的管理集群200和多个业务集群300,其中,管理集群200和每个业务集群300分别由多个服务器组成。在Kubernetes中,组件用于描述一个应用所包含的资源,也就是说,组件运行在多个业务集群300上,客户端实际上访问的是业务集群300上对应的服务器,管理集群200用于管理多个业务集群300。
[0054] 下面结合上述图1示出的集群系统中描述的内容,对本申请实施例提供的组件处理方法进行详细说明。
[0055] 图2示出了本申请实施例提供的组件处理方法的流程示意图一,本实施例的执行主体可以为图1所示的集群系统。如图2所示,该方法包括如下步骤:
[0056] S101、通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化。
[0057] S102、若是,根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0058] 其中,逻辑控制器(英文名称:controller)可以设置于集群系统中的每个服务器上,用于实现监听功能。
[0059] 在开发过程中,当开发出新的应用或者应用存在新版本时,开发人员可以在后台配置好自定义资源的各个配置参数,其中,在配置过程中,自定义资源的各配置参数具有默认参数,开发人员只需根据实际需求更改各自定义资源的各默认参数即可。
[0060] 在本实施例中,集群系统可以每隔预设时长通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化,具体地,预先保存有上一次监听到的自定义资源的各配置参数,当本次监听到自定义资源的各配置参数时,则通过对比,确定自定义资源的各配置参数是否发生变化。
[0061] 若预设的自定义资源的各配置参数发生变化,则集群系统根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0062] 在一可选的实施方式中,若监听到自定义资源的配置参数,说明需要安装新的组件,则确定集群系统中的目标业务集群,以及目标业务集群中的目标服务器,并根据变化后的各配置参数在目标服务器上安装对应的组件。
[0063] 在另一可选的实施方式中,若上一次监听到的配置参数为某应用旧版本的配置参数,本次监听到的配置参数相比旧版本的配置参数发生变化,则说明需要更新组件,则确定集群系统中的目标业务集群,以及目标业务集群中的目标服务器,并根据变化后的各配置参数在目标服务器上更新对应的组件。
[0064] 可选地,预设的自定义资源包括:组件部署请求和组件模板仓库。
[0065] 其中,组件部署请求(英文名称:HelmRequest)定义了一个组件的部署需求;组件模板仓库(英文名称:ChartRepo)定义了一个组件仓库,组件仓库中包括组件模板。
[0066] 需要说明的是,组件部署请求可以存在于集群系统中的任意服务器,组件模板仓库可以存在于管理集群中的任意服务器,但组件模板仓库的访问地址一般存在于集群系统之外的其它设备。
[0067] 可选地,组件部署请求的配置信息包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息;其中,组件模板仓库为待处理组件对应的组件模板所在的仓库。
[0068] 组件模板仓库的配置信息包括如下信息中的至少一种:组件模板仓库的认证信息、访问地址。
[0069] 其中,待处理组件的版本信息可以包括版本号,若待处理组件为未安装组件,则其版本信息例如可以为第一版,若待处理组件为待更新组件,则其版本信息例如可以为第二版、第三版等。
[0070] 资源参数配置信息包括待处理组件在运行时所占用资源的大小和资源类型。
[0071] 对应的组件模板仓库的标识信息表示待处理组件对应的组件模板所在的仓库的标识信息,例如可以为1号组件模板仓库。
[0072] 组件模板仓库的认证信息用于表示在调用该组件模板仓库时需要开发人员输入相应的认证信息,也就是说,开发人员在输入认证信息后方可调用该组件模板仓库中的组件模板。
[0073] 组件模板仓库的访问地址可以为网页链接,通过该访问地址才可访问该组件模板仓库中的组件模板。
[0074] 可选地,该方法还包括:
[0075] 通过预设的代码生成工具,根据预设的自定义资源生成对应的软件开发工具包SDK,SDK提供有应用程序接口。
[0076] 其中,预设的代码生成工具可以为Kubernetes提供的,集群系统通过代码生成工具,根据预设的自定义资源可以生成对应的软件开发工具包SDK,其中,该SDK提供有应用程序接口API。
[0077] 本实施例提供的组件处理方法,包括:通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化,若是,根据变化后的各配置参数安装或者更新对应的组件。本申请根据变化后的配置参数安装或者更新对应的组件,和现有技术相比,避免出现大量的使用问题,从而提升了用户体验,并且大大减少了在部署组件时面对的资源冲突问题。
[0078] 在一可选的实施方式中,下面结合图3实施例对步骤S102的一种具体实现进行说明。图3示出了本申请实施例提供的组件处理方法的流程示意图二。如图3所示,步骤S102具体包括:
[0079] S201、对变化后的各配置参数进行合法性校验。
[0080] S202、若校验通过,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0081] 其中,集群系统可以注册Validate以及Mutate Webhook,用于对变化后的各配置参数进行合法性校验以及配置默认配置参数,若变化后的各配置参数为预设的合法性参数,则校验通过,若变化后的各配置参数不是预设的合法性参数,则校验不通过。在校验通过时,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。从而保证了配置的配置参数的合法性,避免根据非法的配置参数安装或者更新组件,导致组件不合法。其中,默认配置参数可以为最新版本应用的最新配置参数。
[0082] 在上述实施例的基础上,图1实施例中的管理集群还可以根据自定义资源的变化后的配置参数、在集群系统中除了目标业务集群的其它业务集群中安装或者更新对应的组件。下面结合图4实施例进行说明。
[0083] 图4示出了本申请实施例提供的组件处理方法的流程示意图三,本实施例的执行主体为管理集群。如图4所示,该方法包括如下步骤:
[0084] S301、获取管理集群和/或多个业务集群中、自定义资源的变化后的配置参数。
[0085] S302、通过调用待处理组件所指定的其它业务集群的应用程序接口,根据变化后的配置参数在其它业务集群安装或者更新对应的组件。
[0086] 其中,自定义资源可以保存在管理集群和/或多个业务集群中。在本实施例中,获取管理集群和/或多个业务集群中、自定义资源的变化后的配置参数,然后通过调用其它业务集群的应用程序接口,根据变化后的配置参数在其它业务集群安装或者更新对应的组件。
[0087] 其中,其它业务集群的数量可以为至少一个,只要在目标业务集群中安装或者更新了对应的组件,根据实际需求,管理集群调用需要安装或更新对应组件的其它业务集群的应用程序接口,根据变化后的配置参数在其它业务集群中安装或者更新对应的组件。从而只需配置一次参数即可将组件安装或更新到一个或多个集群,提高了组件安装或者更新的效率。
[0088] 本实施例提供的组件处理方法,包括:获取管理集群和/或多个业务集群中、自定义资源的变化后的配置参数,通过调用待处理组件所指定的其它业务集群的应用程序接口,根据变化后的配置参数在其它业务集群安装或者更新对应的组件,从而只需配置一次参数即可将组件安装或更新到一个或多个集群,与现有技术中Helm需要逐个集群安装或者更新组件相比,提高了组件安装或者更新的效率。
[0089] 图5示出了本申请实施例提供的组件处理装置的结构示意图一,如图5所示,组件处理装置50可以集成在图7实施例中的计算机设备中。组件处理装置50包括:
[0090] 监听模块501,用于通过逻辑控制器监听预设的自定义资源的各配置参数是否发生变化;
[0091] 若是,处理模块502,用于根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0092] 可选地,所述处理模块502,具体用于:
[0093] 对所述变化后的各配置参数进行合法性校验;
[0094] 若校验通过,则根据变化后的各配置参数安装或者更新目标业务集群中对应的组件。
[0095] 可选地,所述处理模块502,还用于:
[0096] 通过预设的代码生成工具,根据所述预设的自定义资源生成对应的软件开发工具包SDK,所述SDK提供有应用程序接口。
[0097] 可选地,所述预设的自定义资源包括:组件部署请求和组件模板仓库。
[0098] 可选地,所述组件部署请求的配置信息包括如下信息中的至少一种:待处理组件的版本信息、标识信息、资源参数配置信息、对应的组件模板仓库的标识信息;其中,所述组件模板仓库为所述待处理组件对应的组件模板所在的仓库。
[0099] 可选地,所述组件模板仓库的配置信息包括如下信息中的至少一种:所述组件模板仓库的认证信息、访问地址。
[0100] 关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0101] 图6示出了本申请实施例提供的组件处理装置的结构示意图二,如图6所示,组件处理装置60可以集成在图8实施例中的计算机设备中,组件处理装置60包括:
[0102] 获取模块601,用于获取所述管理集群和/或多个业务集群中、自定义资源的变化后的配置参数;
[0103] 处理模块602,用于通过调用其它业务集群的应用程序接口,根据所述变化后的配置参数在所述其它业务集群安装或者更新对应的组件。
[0104] 关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0105] 图7示出了本申请实施例提供的计算机设备的结构示意图一,该计算机设备70可以为集群系统中的任意服务器。如图7所示,计算机设备70包括:存储器701、处理器702,所述存储器701中存储有可在所述处理器702上运行的计算机程序,所述处理器702执行所述计算机程序时,实现上述方法实施例中集群系统所执行的方法。
[0106] 可选地,存储器701和处理器702通过总线703连接。
[0107] 图8示出了本申请实施例提供的计算机设备的结构示意图二,该计算机设备80可以为管理集群中的服务器。如图8所示,计算机设备80包括:存储器801、处理器802,所述存储器801中存储有可在所述处理器802上运行的计算机程序,所述处理器802执行所述计算机程序时,实现上述方法实施例中管理集群所执行的方法。
[0108] 可选地,存储器801和处理器802通过总线803连接。
[0109] 本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现上述方法实施例所述的方法。
[0110] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0111] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0112] 以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。