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

一种跨集群应用路由访问方法、系统、设备及介质与流程

2022-11-09 21:48:02 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种跨集群应用路由访问方法、系统、设备及介质。


背景技术:

2.云平台大部分基于kubernetes框架,面向用户提供以应用管理为核心的功能体系。原生kubernetes管理应用时一般以集群为单位,无法提供跨集群的应用调度、管理及访问。伴随着kubernetes的大量使用,越来越多的使用者都会部署多个kubernetes集群,通过多集群实现应用隔离、高可用和容灾这些功能,要实现这些功能就需要实现跨集群的服务或应用访问。
3.开源社区中有很多项目来解决这个问题,典型的开源项目如submariner、karmada、skupper等,这些开源项目都实现了跨集群的应用访问,但都是局限于在一个集群内部访问另一个集群内的应用或服务,如submariner中,可将kubernetes的service export至互联的全部集群,在互联的任意集群内部即可通过clusterip或者service name方式访问这个服务,但未实现集群外部对跨集群服务或者应用的访问。
4.在原生kubernetes中为了实现集群外部访问集群内服务,提供了一种路由应用资源ingress,通过创建特定的路由应用资源ingress即可在集群外通过对应的url直接访问集群内的服务,并实现了负载均衡的功能。但原生的路由应用资源ingress无法实现跨集群的服务访问。因此,尚缺乏一种方案实现在集群外部访问跨集群的内部服务。


技术实现要素:

5.本技术实施例提供了一种跨集群应用路由访问方法、系统、设备及介质,用以解决现有技术无法实现跨集群访问应用的技术问题。
6.一方面,本技术实施例提供了一种跨集群应用路由访问方法,所述方法包括:
7.搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api server可以在其他集群中访问;
8.将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群;
9.部署代理组件和应用路由导入控制器,并创建应用路由导出资源;
10.基于所述代理组件创建的应用路由导入资源,控制所述应用路由导入控制器监听所述应用路由导入资源,并修改所述应用路由导入控制器;
11.基于预设域名访问跨集群的应用。
12.在本技术的一种实现方式中,所述将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群之后,所述方法还包括:
13.部署委托组件;
14.为所述委托组件设定配置文件;
15.基于所述委托组件以及设定的配置文件监听指定端口。
16.在本技术的一种实现方式中,所述委托组件与多个互联的集群分别建立连接,用于多个互联集群之间的元数据交换。
17.在本技术的一种实现方式中,所述代理组件以及所述应用路由导入控制器基于dameonset形式部署。
18.在本技术的一种实现方式中,所述控制所述应用路由导入控制器监听所述应用路由导入资源,具体包括:
19.解析所述应用路由导入资源的资源中对应的后端服务信息;
20.基于解析出的后端服务信息,修改nginx配置文件;
21.基于修改后的所述nginx配置文件,判断是否需要执行重新加载;
22.执行重新加载,以使修改后的所述nginx配置文件生效。
23.在本技术的一种实现方式中,所述基于解析出的后端服务信息,修改nginx配置文件,具体包括:
24.确定所述应用路由导入资源存在资源更新情况;其中,所述资源更新情况包括:资源创建和资源修改;
25.在所述应用路由导入资源存在资源创建时,则根据预设规则将资源中指定的域名与解析到的后端服务一一对应并写入nginx配置文件中;
26.在所述应用路由导入资源存在资源修改时,则根据所述资源修改的内容修改nginx的配置文件。
27.此外,本技术实施例还提供了一种跨集群应用路由访问系统,所述系统包括:
28.集群搭建模块,用于搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api server可以在其他集群中访问;
29.委托集群设置模块,用于将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群;
30.组件部署模块,用于部署代理组件、应用路由导入控制器、应用路由导出控制器,并创建应用路由导出资源;
31.组件控制模块,用于控制所述应用路由导入控制器监听所述应用路由导入资源;
32.访问模块,用于基于预设域名访问跨集群的应用。
33.在本技术的一种实现方式中,所述组件部署模块包括:
34.委托组件部署子模块,用于部署委托组件;
35.文件配置子模块,用于为所述委托组件设定配置文件;
36.监听子模块,用于基于所述委托组件以及设定的配置文件监听指定端口。
37.本技术实施例还提供了一种跨集群应用路由访问设备,所述设备包括:
38.至少一个处理器;以及,
39.与所述至少一个处理器通信连接的存储器;其中,
40.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
41.搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api sever可以在其他集群中访问;
42.将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群;
43.部署代理组件和应用路由导入控制器,并创建应用路由导出资源;
44.基于所述代理组件创建的应用路由导入资源,控制所述应用路由导入控制器监听所述应用路由导入资源,并修改所述应用路由导入控制器;
45.基于预设域名访问跨集群的应用。
46.本技术实施例还涉及一种跨集群应用路由访问的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
47.搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api server可以在其他集群中访问;
48.将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群;
49.部署代理组件和应用路由导入控制器,并创建应用路由导出资源;
50.基于所述代理组件创建的应用路由导入资源,控制所述应用路由导入控制器监听所述应用路由导入资源,并修改所述应用路由导入控制器;
51.基于预设域名访问跨集群的应用。
52.本技术实施例提供的一种跨集群应用路由访问方法,通过设置部署集群组件,丰富了容器云平台的功能,实现了应用路由在互联集群内的自动发现。通过应用路由导入控制器对应用路由导入资源的监听,并根据资源的创建情况实时修改nginx配置文件,实现通过应用路由的访问请求在互联集群内的转发。并且根据资源信息实时修改配置文件,实现集群外部通过应用路由访问集群内服务。解决了现有的技术中原生的ingress资源无法实现跨集群的服务访问的难题。
附图说明
53.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
54.图1为本技术实施例提供的一种跨集群应用路由访问方法流程图;
55.图2为本技术实施例提供的一种跨集群应用路由访问系统结构图;
56.图3为本技术实施例提供的一种跨集群应用路由访问设备示意图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.下面通过附图对本技术实施例提出的技术方案进行详细的说明。
59.图1为本技术实施例提供的一种跨集群应用路由访问方法流程图。如图1所示,该方法主要包括以下步骤:
60.步骤101、搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api server可以在其他集群中访问。
61.本技术实施例中,首先搭建多个k8s集群,并且需要保证至少有一个集群的应用程序接口服务api server的集群可以在其他集群中访问。
62.步骤102、将应用程序接口服务api server可以在其他集群中访问的集群设置为委托集群。
63.本技术实施例中,选择步骤101中设置的可以在其他集群中访问应用程序接口服务api server的集群作为委托集群broker,并部署委托组件broker。
64.进一步地,在部署完broker组件之后,为委托组件broker设定配置文件,然后根据broker组件以及设定的配置文件指定监听某个特定的端口。
65.需要说明的是,broker组件与多个互联的集群连接,并负责多个互联集群元数据互相交换。
66.步骤103、部署代理组件和应用路由导入控制器、应用路由导出控制器,并创建应用路由导出资源。
67.本技术实施例中,代理组件以及所述应用路由导入控制器基于dameonset形式部署。由于要在集群外通过应用路由访问集群内应用,因此要求应用路由导入控制器组件以hostnetwork形式部署,或者指定hostport监听宿主机的指定端口。
68.步骤104、控制所述应用路由导入控制器监听所述应用路由导入资源。
69.本技术实施例中,当本地集群代理组件监听到有应用路由导出资源创建后会将创建事件发送至broker委托集群的应用程序接口服务apiserver,同时其他集群的代理组件会通过broker集群的应用程序接口服务apiserver监听到有新的应用路由导出资源ingress-export资源创建,此时agent代理组件会在本地集群创建应用路由导入资源ingress-import资源。
70.进一步地,选择一个集群创建应用路由导出资源。
71.进一步地,另一个集群中的代理组件agent监听到上述资源的创建事件后,会在本地创建入口-导入ingress-import资源,资源的yaml文件跟上述入口-出口ingress-export资源基本一致。
72.本技术实施例中,控制所述应用路由导入控制器监听所述应用路由导入资源首先解析所述应用路由导入资源的资源中对应的后端服务信息,基于解析出的后端服务信息,修改nginx配置文件,基于修改后的所述nginx配置文件,判断是否需要执行重新加载,执行重新加载,以使修改后的所述nginx配置文件生效。
73.修改完成后,执行nginx reload重新加载命令使配置生效。
74.具体的,修改nginx配置文件首先确定所述应用路由导入资源存在资源更新情况;其中,所述资源更新情况包括:资源创建和资源修改;在所述应用路由导入资源存在资源创建时,则根据预设规则将资源中指定的域名与解析到的后端服务一一对应并写入nginx配置文件中;在所述应用路由导入资源存在资源修改时,则根据所述资源修改的内容修改nginx的配置文件。一般来说对于存在的少量修改,直接修改即可,而对于同时修改应用路由导出资源的rule部分,应用路由导出资源的host名称,应用路由导出资源的新增路径、删除路径等,同样需要像资源创建时将后端服务一一对应写入nginx配置文件中。
75.步骤105、基于预设域名访问跨集群的应用。
76.本技术实施例中,经过以上操作之后,在集群外的任一pc机,只要能够联通互联集群中的任一节点就可以通过预设的域名www.test.com名访问跨集群的内部应用。例如当前互联集群中cluster1集群的节点node1可以被集群外部某pc机联通,ip为100.2.216.244,
则在集群外的这台pc上修改配置文件/etc/hosts,添加如下内容www.test.com100.2.216.244,修改完成后即可通过www.test.com/aaa访问集群内的应用。
77.本技术实施例提供的一种跨集群应用路由访问方法,通过设置部署集群组件,丰富了容器云平台的功能,实现了应用路由在互联集群内的自动发现。通过应用路由导入控制器对应用路由导入资源的监听,并根据资源的创建情况实时修改nginx配置文件,实现通过应用路由的访问请求在互联集群内的转发。并且根据资源信息实时修改配置文件,实现集群外部通过应用路由访问集群内服务。解决了现有的技术中原生的ingress资源无法实现跨集群的服务访问的难题。
78.以上是本技术实施例提供的一种跨集群应用路由访问方法,基于同样的发明构思,本技术实施例还提供了一种跨集群应用路由访问系统,如图2所示。图2为本技术实施提供的一种跨集群路由应用访问系统结构图。所述系统包括:
79.集群搭建模块201,用于搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api sever可以在其他集群中访问;
80.委托集群设置模块202,用于将应用程序接口服务api sever可以在其他集群中访问的集群设置为委托集群;
81.组件部署模块,用于部署代理组件、应用路由导入控制器、应用路由导出控制器,并创建应用路由导出资源;
82.组件控制模块,用于控制所述应用路由导入控制器监听所述应用路由导入资源;
83.访问模块205,用于基于预设域名访问跨集群的应用。
84.本技术实施例中,所述组件部署模块203包括:
85.委托组件部署子模块,用于部署委托组件;
86.文件配置子模块,用于为所述委托组件设定配置文件;
87.监听子模块,用于基于所述委托组件以及设定的配置文件监听指定端口。
88.本技术实施例提供的一种跨集群应用路由访问系统,通过设置部署集群组件,丰富了容器云平台的功能,实现了应用路由在互联集群内的自动发现。通过应用路由导入控制器对应用路由导入资源的监听,并根据资源的创建情况实时修改nginx配置文件,实现通过应用路由的访问请求在互联集群内的转发。并且根据资源信息实时修改配置文件,实现集群外部通过应用路由访问集群内服务。解决了现有的技术中原生的ingress资源无法实现跨集群的服务访问的难题。
89.以上是本技术实施例提供的一种跨集群应用路由访问方法,基于同样的发明构思,本技术实施例还提供了一种跨集群应用路由访问设备,图3为本技术实施例提供的一种跨集群应用路由访问设备示意图,如图3所示,该设备主要包括:至少一个处理器301;以及,与至少一个处理器通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够完成:搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api sever可以在其他集群中访问;
90.将应用程序接口服务api sever可以在其他集群中访问的集群设置为委托集群;
91.部署代理组件和应用路由导入控制器,并创建应用路由导出资源;
92.基于所述代理组件创建的应用路由导入资源,控制所述应用路由导入控制器监听
所述应用路由导入资源,并修改所述应用路由导入控制器;
93.基于预设域名访问跨集群的应用。
94.除此之外,本技术实施例还提供了一种跨集群应用路由访问的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:搭建若干集群;其中,若干所述集群中有一个至多个集群的应用程序接口服务api sever可以在其他集群中访问;
95.将应用程序接口服务api sever可以在其他集群中访问的集群设置为委托集群;
96.部署代理组件和应用路由导入控制器,并创建应用路由导出资源;
97.基于所述代理组件创建的应用路由导入资源,控制所述应用路由导入控制器监听所述应用路由导入资源,并修改所述应用路由导入控制器;
98.基于预设域名访问跨集群的应用。
99.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
103.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
104.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
105.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献