一种云原生应用管理系统及方法与流程

文档序号:33380822发布日期:2023-03-08 05:38阅读:27来源:国知局
一种云原生应用管理系统及方法与流程

1.本发明涉及容器部署,具体涉及一种云原生应用管理系统及方法。


背景技术:

2.在项目向容器迁移过程中,越来越多的项目需要迁移到容器化平台,容器化平台的kubernetes集群越来越多,当越来越多的项目和项目部署到越来越多的kubernetes集群时,同时随着业务依赖的资源种类越来越多,新的功能在逐步的增多,导致一个云原生的应用程序包需要非常多的资源类型去部署,同时配合上多个机房,数量又会翻倍非常多,人工维护非常困难,容易出错,学习这些资源的成本也非常的高,此时就需要一种能够简洁高效的管理项目部署到多个集群的系统,以解决上述的问题,提高效率。
3.现有的技术方案中一种情况是开发kubernetes的crd或者准入控制器,定义一种新的kubernetes资源,新的kubernetes资源中处理多个kubernetes原生的资源,将这种自定义的资源部署到k8s集群,在集群中创建这种资源,这种资源实际上会将业务使用到的kubernetes原生的资源重新实现,一同处理,用来完成一个业务在一个集群的部署。
4.在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
5.现有的方案无法处理在一个控制端部署业务到多个集群的情况。


技术实现要素:

6.本发明实施例提供一种云原生应用管理系统及方法,通过一个控制端,实现将应用的多个云原生资源部署到多个集群,形成相应的应用。
7.为达上述目的,一方面,本发明实施例提供一种云原生应用管理系统,所述云原生应用管理系统包括控制端、模板实例生成器、各kubernetes集群共用的接口适配器和接口适配器应用程序接口、设置于每个kubernetes集群内的kubernetes集群管理模块,其中:
8.所述控制端,用于发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息,所述云原生资源的配置信息包括:将kubernetes资源模板实例对应的云原生资源与所要下发的kubernetes集群进行绑定标记;所述参数值的调整配置信息包括:适应性调整后下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值;
9.所述模板实例生成器,用于基于云原生资源所需的各初始模板、以及接收到的所述参数值的调整配置信息,形成相应的模板实例;所述模板实例包括kubernetes资源模板实例;
10.所述接口适配器,用于将所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息转化成与所要下发的云原生资源相匹配的版本;
11.所述接口适配器应用程序接口,用于根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;所述模板实例的描述包括:kubernetes资源模板实例的描述;将所述kubernetes资源模板实例的描述、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信
息、以及所述模板实例形成分发资源;向创建云原生资源的各kubernetes集群管理模块发送云原生资源创建请求、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源;
12.所述kubernetes集群管理模块,用于在接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源,在所属的kubernetes集群内部署云原生资源形成相应的应用。
13.另一方面,本发明实施例提供一种云原生应用管理方法,包括:
14.通过控制端发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息,所述云原生资源的配置信息包括:将kubernetes资源模板实例对应的云原生资源与所要下发的kubernetes集群进行绑定标记;所述参数值的调整配置信息包括:适应性调整后下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值;
15.通过模板实例生成器基于云原生资源所需的各初始模板、以及接收到的所述参数值的调整配置信息,形成相应的模板实例;所述模板实例包括kubernetes资源模板实例;
16.通过接口适配器将所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息转化成与所要下发的云原生资源相匹配的版本;
17.通过接口适配器应用程序接口根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;所述模板实例的描述包括:kubernetes资源模板实例的描述;将所述kubernetes资源模板实例的描述、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息、以及所述模板实例形成分发资源;向创建云原生资源的各kubernetes集群管理模块发送云原生资源创建请求、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源;
18.通过kubernetes集群管理模块接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源,在所属的kubernetes集群内部署云原生资源形成相应的应用;其中,每个kubernetes集群内均设置kubernetes集群管理模块。
19.上述技术方案具有如下有益效果:云原生应用管理系统包括控制端、模板实例生成器、各kubernetes集群共用的接口适配器和接口适配器应用程序接口、设置于每个kubernetes集群内的kubernetes集群管理模块,通过控制端发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息;模板实例生成器自接收到控制端发送的参数值的调整配置信息,基于云原生资源所需的各初始模板形成相应的模板实例;接口适配器在接收到控制端发送的模板实例生成器所采用的云原生资源的配置信息、参数值的调整配置信息和分发配置信息后转化成与所要下发的云原生资源相匹配的版本;接口适配器应用程序接口根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;将kubernetes资源模板实例的描述、与所要下发的云原生资源相匹配版本的云原生资源的配置信息、参数值的调整配置信息和分发配置信息、以及模板实例形成分发资源;kubernetes集群管理模块,用于在接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的云原生资源的配置信息、参数值的调整配置信息、以及分发资源,在所属的kubernetes集群内部署云原生资源形成相应的应用。通过一个控制端可以将业务的多
个云原生资源部署到多个集群。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明实施例的一种云原生应用管理系统的结构示意图;
22.图2是本发明实施例的一种云原生应用管理方法的流程示意图;
23.图3是本发明实施例的另一种云原生应用管理方法的流程示意图
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.本发明涉及的技术术语释义如下:
26.kubernetes:一种容器编排管理工具;
27.crd:一种kubernetes提供的自定义资源定义接口和方法;
28.kubernetes原生资源:比如deployment,service,ingress等等,是部署业务用的;
29.容器:容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码、系统工具、系统库、设置等等,容器是容器影响中程序的运行状态;
30.istio是一种开源软件;服务网格软件套件,连接、安全加固、控制和观察服务的开放平台,目前比较流行的微服务管理软件;
31.karmada:多云多集群管理软件。
32.如图1所示,结合本发明的实施例,提供一种云原生应用管理系统,所述云原生应用管理系统包括控制端11、模板实例生成器12、各kubernetes集群共用的接口适配器13和接口适配器应用程序接口14、设置于每个kubernetes集群内的kubernetes集群管理模块15,其中:
33.所述控制端11,用于发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息,所述云原生资源的配置信息包括:将kubernetes资源模板实例对应的云原生资源与所要下发的kubernetes集群进行绑定标记;所述参数值的调整配置信息包括:适应性调整后下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值;
34.所述模板实例生成器12,用于基于云原生资源所需的各初始模板、以及接收到的所述参数值的调整配置信息,形成相应的模板实例;所述模板实例包括kubernetes资源模板实例;
35.所述接口适配器13,用于将所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息转化成与所要下发的云原生资源相匹配的版本;
36.所述接口适配器应用程序接口14,用于根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;所述模板实例的描述包括:kubernetes资源模板实例的描述;将所述kubernetes资源模板实例的描述、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息、以及所述模板实例形成分发资源;向创建云原生资源的各kubernetes集群管理模块发送云原生资源创建请求、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源;
37.所述kubernetes集群管理模块15,用于在接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源,在所属的kubernetes集群内部署云原生资源形成相应的应用。
38.优选地,所述云原生应用管理系统还包括模板管理器,用于生成云原生资源所需的各初始模板;
39.所述模板管理器包括kubernetes资源模板管理器、istio模板管理器、应用软件模板管理器和应用辅助软件模板管理器,其中:
40.所述kubernetes资源模板管理器,用于生成部署在kubernetes集群之上的云原生资源内置资源的各初始模板,在所述部署在kubernetes集群之上的云原生资源内置资源的初始模板内配置生成云原生资源所需的各参数;
41.所述istio模板管理器,用于生成创建istio内置资源的各初始模板,在所述istio内置资源的初始模板内配置生成istio内置资源所需的各参数;
42.所述应用软件模板管理器,用于生成运行云原生资源的应用软件的各初始模板,在所述运行原生资源的应用软件的初始模板内配置生成软件运行所需的参数;
43.所述应用辅助软件管理器,用于生成应用软件的辅助软件的各初始模板,在所述辅助软件的初始模板内配置生成辅助软件运行所需的参数。
44.优选地,所述模板实例生成器12,还用于自所述模板管理器接收云原生资源所需的各初始模板;
45.所述模板实例生成器12,具体用于:
46.接收所述控制端发送的云原生资源内置资源相应的第一参数值,基于所述第一参数值、以及所述部署在kubernetes集群的云原生资源内置资源的初始模板,形成云原生资源模板实例;
47.接收所述控制端发送的istio的内置资源相应的第二参数值,基于所述第二参数值创建所述istio内置资源的初始模板,形成创建istio的内置资源的模板实例,所述istio的内置资源用于对云原生资源进行微服务管理;
48.接收所述控制端发送的生成运行云原生资源的应用软件所需的第三参数值,基于所述第三参数值、所述运行云原生资源的应用软件的初始模板,形成运行云原生资源的应用软件的模板实例,所述应用软件用于部署并运行所述云原生资源;
49.接收所述控制端发送的辅助软件的第四参数值,基于所述第四参数值、所述辅助软件的初始模板,形成辅助软件的模板实例,所述辅助软件用于辅助运行云原生资源的应用软件;
50.其中,所述参数值的调整配置信息包括所述第一参数值、所述第二参数值、所述第
三参数值、所述第四参数值。
51.优选地,所述接口适配器应用程序接口14,具体用于:
52.接收所述云原生资源模板实例、所述创建istio的内置资源的模板实例、所述运行云原生资源的应用软件的模板实例和所述辅助软件的模板实例;
53.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述创建istio各内置资源的模板实例,创建istio各内置资源;
54.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述运行云原生资源的应用软件的模板实例,创建运行云原生资源的应用软件;
55.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述辅助软件的模板实例,创建相应的辅助软件;
56.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述云原生资源模板实例、所述云原生资源的配置信息和所述参数值的调整配置信息,形成下发到各kubernetes集群的分发资源。
57.优选地,所述kubernetes集群管理模块15,还用于:
58.接收修改本kubernetes集群内的云原生资源的请求,对本kubernetes集群内的所述云原生资源进行修改;
59.接收删除本kubernetes集群内云原生资源的请求,将本kubernetes集群内的所述云原生资源删除。
60.如图2所示,结合本发明的实施例,提供一种云原生应用管理方法,包括:
61.s201:通过控制端发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息,所述云原生资源的配置信息包括:将kubernetes资源模板实例对应的云原生资源与所要下发的kubernetes集群进行绑定标记;所述参数值的调整配置信息包括:适应性调整后下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值;
62.s202:通过模板实例生成器基于云原生资源所需的各初始模板、以及接收到的所述参数值的调整配置信息,形成相应的模板实例;所述模板实例包括kubernetes资源模板实例;
63.s203:通过接口适配器将所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息转化成与所要下发的云原生资源相匹配的版本;
64.s204:通过接口适配器应用程序接口根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;所述模板实例的描述包括:kubernetes资源模板实例的描述;将所述kubernetes资源模板实例的描述、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息、以及所述模板实例形成分发资源;向创建云原生资源的各kubernetes集群管理模块发送云原生资源创建请求、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源;
65.s205:通过kubernetes集群管理模块接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源,在所属的kubernetes集群内部署云原生资源形成相应的应用;其中,每个kubernetes集群内均设置kubernetes集群管理模块。
66.优选地,还包括:
67.s205:通过模板管理器生成云原生资源所需的各初始模板;其中,所述模板管理器包括kubernetes资源模板管理器、istio模板管理器、应用软件模板管理器和应用辅助软件模板管理器;
68.s2051:通过模板管理器生成云原生资源所需的各初始模板,具体包括:
69.s2052:通过kubernetes资源模板管理器生成部署在kubernetes集群之上的云原生资源内置资源的各初始模板,在所述部署在kubernetes集群之上的云原生资源内置资源的初始模板内配置生成云原生资源所需的各参数;
70.s2053:通过istio模板管理器生成创建istio内置资源的各初始模板,在所述istio内置资源的初始模板内配置生成istio内置资源所需的各参数;
71.s2054:通过应用软件模板管理器生成运行云原生资源的应用软件的各初始模板,在所述运行原生资源的应用软件的初始模板内配置生成软件运行所需的参数;
72.s2055:通过应用辅助软件管理器生成应用软件的辅助软件的各初始模板,在所述辅助软件的初始模板内配置生成辅助软件运行所需的参数。
73.优选地,所述参数值的调整配置信息包括所述第一参数值、所述第二参数值、所述第三参数值、所述第四参数值;
74.所述云原生应用管理方法,还包括s206:通过模板实例生成器自所述模板管理器接收云原生资源所需的各初始模板;
75.s202:通过模板实例生成器基于云原生资源所需的各初始模板、以及接收到的所述参数值的调整配置信息,形成相应的模板实例;所述模板实例包括kubernetes资源模板实例,具体包括:
76.s2021:接收所述控制端发送的云原生资源内置资源相应的第一参数值,基于所述第一参数值、以及所述部署在kubernetes集群的云原生资源内置资源的初始模板,形成云原生资源模板实例;
77.s2022:接收所述控制端发送的istio的内置资源相应的第二参数值,基于所述第二参数值创建所述istio内置资源的初始模板,形成创建istio的内置资源的模板实例,所述istio的内置资源用于对云原生资源进行微服务管理;
78.s2023:接收所述控制端发送的生成运行云原生资源的应用软件所需的第三参数值,基于所述第三参数值、所述运行云原生资源的应用软件的初始模板,形成运行云原生资源的应用软件的模板实例,所述应用软件用于部署并运行所述云原生资源;
79.s2024:接收所述控制端发送的辅助软件的第四参数值,基于所述第四参数值、所述辅助软件的初始模板,形成辅助软件的模板实例,所述辅助软件用于辅助运行云原生资源的应用软件。
80.优选地,s203:所述通过接口适配器将所述云原生资源的配置信息、所述参数值的调整配置信息和所述分发配置信息转化成与所要下发的云原生资源相匹配的版本,具体用
于:
81.s2031:接收所述云原生资源模板实例、所述创建istio的内置资源的模板实例、所述运行云原生资源的应用软件的模板实例和所述辅助软件的模板实例;
82.s2032:根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述创建istio各内置资源的模板实例,创建istio各内置资源;
83.s2033:根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述运行云原生资源的应用软件的模板实例,创建运行云原生资源的应用软件;
84.s2034:根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述辅助软件的模板实例,创建相应的辅助软件;
85.s2035:根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述云原生资源模板实例、所述云原生资源的配置信息和所述参数值的调整配置信息,形成下发到各kubernetes集群的分发资源。
86.优选地,还包括:
87.s207:所述kubernetes集群管理模块接收修改本kubernetes集群内的云原生资源的请求,对本kubernetes集群内的所述云原生资源进行修改;
88.s208:接收删除本kubernetes集群内云原生资源的请求,将本kubernetes集群内的所述云原生资源删除。
89.下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
90.本发明为一种云原生应用管理系统和方法,云原生应用管理系统包括控制端、模板实例生成器、各kubernetes集群共用的接口适配器和接口适配器应用程序接口、设置于每个kubernetes集群内的kubernetes集群管理模块,关于系统涉及到的组件如图3所示,具体为:
91.一、管理员侧,通过控制端实现:
92.1、如图3步骤0所示,管理员通过控制端启动、操作各种模板管理器,通过各种模板管理器生成业务(即应用)实际需要所对应的各模板;其中,模板的属性包括:版本、通用配置、个性配置,将各模板保存供备用。其中,控制端能够用于发送云原生资源的配置信息、参数值的调整配置信息和分发配置信息,云原生资源的配置信息包括:将kubernetes资源模板实例对应的云原生资源与所要下发的kubernetes集群进行绑定标记;参数值的调整配置信息包括:适应性调整后下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值。
93.2、管理员会根据用户的实际需要,通过控制端调整模板;或者,用户提出模板需求,管理员制作模板。
94.二、模板管理器
95.模板管理器是用来生成并管理应用的云原生资源所需要的各初始模板,模板管理
器包括kubernetes资源模板管理器、istio模板管理器、应用软件模板管理器和应用辅助软件模板管理器,其中:
96.1、kubernetes资源模板管理器:用于生成部署在kubernetes集群之上的云原生资源内置资源的各初始模板,在所述部署在kubernetes集群之上的云原生资源内置资源的初始模板内配置生成云原生资源所需的各参数。比如:生成kubernetes内置的deployment,service,ingress,configmap,hpa,vpa等等资源的模板,生成需要用户填写的参数,比如deloyment中的replicaset需要的数值等;用于构建云原生资源。
97.2、istio模板管理器:用于生成创建istio内置资源的各初始模板,在所述istio内置资源的初始模板内配置生成istio内置资源所需的各参数。比如:生成istio内置的gateway,virtualservice,destinationrule,serviceentry,workloadentry等资源的模板,生成用户需要填写的参数。
98.3、应用软件模板管理器:用于生成运行云原生资源的应用软件的各初始模板,在所述运行原生资源的应用软件的初始模板内配置生成软件运行所需的参数;比如:一个nginx应用的模板,生成的参数比如nginx的日志文件路径,index文件位置等等。生成比如php-fpm、uwsgi、等等各类编程语言发布http服务时候依赖的必要web容器组件,生成这些软件用户经常需要修改的参数。
99.4、应用辅助软件管理器:用于生成应用软件的辅助软件的各初始模板,在所述辅助软件的初始模板内配置生成辅助软件运行所需的参数。比如rsyslog软件的配置,cronnolog软件,ntp,zabbix等等辅助软件的模板,用来辅助应用程序的运行,观察应用程序的性能,行为,状态。
100.5、自定义模板管理器:生成模板里还没出现的模板,根据模板生成事前没有被用到的软件或者资源,用来辅助前面各项模板管理器共同生成应用的模板。
101.一个完成的应用模板示例:
102.1)deployemnt资源,配置参数replicas,imgage
103.2)service资源,配置参数,serviceport
104.3)ingress资源,配置参数,host,port
105.4)hpa资源,配置参数,minreplicas,maxreplicas,cpu percent
106.5)gateway资源,配置参数,labelselector
107.6)virtualservice资源:配置参数servicename,host
108.7)destinationrule资源:配置参数route,host,servicename
109.8)workloadentry资源:配置参数labelselector
110.9)serviceentry资源:配置参数servicename,host
111.10)nginx资源:配置参数access_log,host,root
112.11)php-fpm资源:配置参数process number
113.12)rsyslog:配置参数imfile,omfile
114.13)其他
115.三、用户侧,通过控制端控制:
116.1、如图3步骤1所示,用户通过控制端选取相应的模板,通过所选取的各种模板组合成符合自己业务需要的整套模板。
117.2、用户会通过控制端设定各模板内的参数值,这些参数值用于形成模板实例。
118.3、用户将选取好的模板交到模板实例生成器,由模板实例生成器生成最终的资源配置。
119.四、模板实例生成器:
120.本组件是本系统的核心组件,基于云原生资源所需的各初始模板、接收用户通过控制端提交的参数值的调整配置信息,生成相应的模板实例,所述模板实例包括kubernetes资源模板实例。然后将模板实例提交到karmada接口适配器接口适配器karmada,便于后续步骤将模板实例转化成各类资源。其中,参数值的调整配置信息包括第一参数值、第二参数值、第三参数值、第四参数值,且模板实例生成器通过如下步骤生成各模板实例:
121.接收控制端发送的云原生资源内置资源相应的第一参数值,基于第一参数值、以及部署在kubernetes集群的云原生资源内置资源的初始模板,形成云原生资源模板实例;
122.接收控制端发送的istio的内置资源相应的第二参数值,基于第二参数值创建istio内置资源的初始模板,形成创建istio的内置资源的模板实例,istio的内置资源用于对云原生资源进行微服务管理;
123.接收控制端发送的生成运行云原生资源的应用软件所需的第三参数值,基于第三参数值、运行云原生资源的应用软件的初始模板,形成运行云原生资源的应用软件的模板实例,应用软件用于部署并运行所述云原生资源;
124.接收控制端发送的辅助软件的第四参数值,基第四参数值、辅助软件的初始模板,形成辅助软件的模板实例,所述辅助软件用于辅助运行云原生资源的应用软件。
125.一种云原生应用管理系统通过如下步骤实现:
126.一、与用户交互:
127.如图3步骤1所示:模板实例生成器接收用户通过控制端提交的所需要使用的模板、模板内相应的参数值,基于参数值和模板生成模板实例,以便于后续实现转换成云原生资源。
128.接收用户通过控制端发送的分发配置信息(propagation policy资源),属于karmada的资源,用来分发云原生资源,分发配置信息中配置了云原生的资源需要下发到哪些kubernetes集群。
129.接收用户的参数值的调整配置信息(overwirte policy资源),适应性调整下发到不同kubernetes集群的云原生资源对应的kubernetes资源模板实例的参数值,比如模板中deployment的replicas为2,但是1号kubernetes集群需要配置此参数为1,2号kubernetes集群需要配置2,其他kuberentes集群需要配置为3,用来达到不同集群的差异化需求。
130.生成以上数据,需要下发应用的目的kubernetes集群的具体信息也确定了。
131.二、与模板管理器交互
132.如图3步骤2所示,根据用户通过控制器提交的模板,从模板管理器读取相应的模板数据,得到各模板。
133.三、与存储系统交互
134.如图3步骤3所示,将最终组装好的应用对应的分发资源放到存储系统,每次在用户修改后都带有版本号,以便用户查找历史修改的数据。
135.四、与接口适配器karmada交互
136.如图3步骤4所示,将模板实例生成器在相应的模板实例内所采用的云原生资源配置信息、参数值的调整配置信息、分发配置信息转化成与所要下发的云原生资源相匹配的版本,并发送给接口适配器karmada。
137.e.接口适配器karmada:
138.如图3步骤5所示,karmada接口适配器将接收云原生资源配置信息、参数值的调整配置信息和分发配置信息,并转换成所要下发的云原生资源相匹配的版本,然后向接口适配器应用程序接口karmada apiserver下发这些配置。
139.f.接口适配器应用程序接口karmada apiserver:
140.如图3步骤6所示,根据所要下发的云原生资源的版本,在容器编排管理工具kubernetes上创建模板实例的描述;模板实例的描述包括:kubernetes资源模板实例的描述;创建模板实例的目的是karmada软件的特性,因为在创建之后与所要下发的云原生资源相匹配版本的云原生资源的配置信息、分发配置信息、参数值的调整配置信息、模板实例共同被处理形成成分发的资源。具体为:
141.接收所述云原生资源模板实例、所述创建istio的内置资源的模板实例、所述运行云原生资源的应用软件的模板实例和所述辅助软件的模板实例;
142.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述创建istio各内置资源的模板实例,创建istio各内置资源;
143.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述运行云原生资源的应用软件的模板实例,创建运行云原生资源的应用软件;
144.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述辅助软件的模板实例,创建相应的辅助软件;
145.根据所述kubernetes资源模板实例的描述、与云原生资源下发匹配版本的所述云原生资源的配置信息、与云原生资源下发匹配版本的所述参数值的调整配置信息、所述云原生资源模板实例、所述云原生资源的配置信息和所述参数值的调整配置信息,形成下发到各kubernetes集群的分发资源。
146.从而达到在下发分发资源前确定的云原生资源和所要绑定的kuberentes集群之间的绑定关系,因为不同的集群使用的配置参数可能不同。
147.向创建云原生资源的各kubernetes集群管理模块(kubernetes apiserver)发送云原生资源创建请求、与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所述参数值的调整配置信息、以及所述分发资源。
148.g.kubernetes集群管理模块(kubernetes apiserver):
149.如图3步骤7所示,kubernetes apiserver在每个kubernetes集群中都有一个。每一个kubernetes apiserver都与karmada apiserver进行交互。
150.因为kubernetes apiserver是kuberntes集群的唯一入口,在接收到云原生资源创建请求后,接收与所要下发的云原生资源相匹配版本的所述云原生资源的配置信息、所
述参数值的调整配置信息、以及所述分发资源后,通过kubernetes集群管理模块与kubernetes集群交互,来最终在kubernetes集群(目标集群或者叫子集群)内创建用于提供服务的资源,即完成应用的创建。
151.kubernetes apiserver还用于接收修改、或者删除云原生资源的请求,执行命令,对本kubernetes集群内的所述云原生资源进行修改;或者将本kubernetes集群内的所述云原生资源删除。修改和删除的操作与创建的过程相同。
152.本发明实施例所取得的有益效果如下:
153.1、通过一个控制端,基于karmada,可以将业务(即应用)需要的的多个云原生资源打包、分发、部署到多个目标kubenetes集群。
154.2、管理员通过控制端来更新模板,支持动态热更新,热加载来适配新的资源版本和特性。在不改动软件的情况下,随着新技术的增加,适配新的资源类型。从而支持动态添加新的资源类型。所以也能够根据需要修改模本版本,动态升级。
155.3、通过模板和参数机制,简化资源配置,简单易用,用户使用成本低,需要学习的成本小。抽象各种层面的资源,剥离公共配置,用户仅需要修改很少的配置项。
156.4、具有适配器功能,支持适配多版本的karmada软件。
157.应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
158.在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
159.为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本技术公开的原理和新颖性特征的最广范围相一致。
160.上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
161.本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明
性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
162.本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
163.本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
164.在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
165.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1