1.本发明涉及集群通信领域,尤其涉及一种基于云原生的集群通信装置、方法、计算机设备及存储介质。
背景技术:2.当前在集群通信领域中,通常使用的是kubernetes容器集群(kubernetes,容器编排引擎)进行集群通信。在kubernetes容器集群中,单个集群内部构建了一个完整的私有网络,不同容器集群之间网络并不相通,因此现有业务只能在单个容器内部进行交互。然而。目前容器集群规模可以突破5000个节点乃至更大的规模,不可避免需要部署多个容器集群,尤其是跨地域的集群,需要通过部署多个容器集群来实现业务负载分摊,容灾等需求场景。
3.但是在通过kubernetes容器集群进行多容器集群部署,只能通过将容器集群中的内部容器降级成传统非云原生的点点调用方式,来实现不同容器集群之间的信息交互,直接导致了集群通信效率低下。
4.因此,现有方式存在因不同容器集群之间网络并不相通而导致集群通信效率低的问题。
技术实现要素:5.本发明实施例提供一种基于云原生的集群通信装置、方法、计算机设备及存储介质,以提高集群通信效率。
6.一种基于云原生的集群通信装置,包括:
7.所述装置包括多集群注册中心、集群元数据管理服务模块、集群节点路由代理服务模块、集群流量转发网关模块、集群流量治理服务模块,所述多集群注册中心、所述集群元数据管理服务模块、所述集群节点路由代理服务模块、所述集群流量转发网关模块和所述集群流量治理服务模块均基于云原生,所述多集群注册中心与每一个容器集群相连接,用于共享所有所述容器集群的信息,所述集群元数据管理服务模块位于每一个所述容器集群上,用于管理所述容器集群的元数据,所述集群节点路由代理服务模块运行在每一个所述容器集群中的所有容器上,用于将所述所有容器的流量信息转发到所述集群流量转发网关模块进行处理,所述集群流量转发网关模块位于每一个所述容器集群上,用于管理所述容器集群的流量转发,所述集群流量治理服务模块位于每一个所述容器集群上,用于实现所述容器集群之间的流量治理配置。
8.一种基于云原生的集群通信方法,包括:
9.第一流量转换网关接收来自第一云原生容器集群的通信请求,其中,所述第一流量转换网关是指所述第一云原生容器集群与所述多集群注册中心中任一个云原生容器集群进行通信的软件网关,所述通信请求包括通信对象的ip地址;
10.根据所述通信请求中的ip地址,所述第一流量转换网关查询本地容器集群表,确
定与所述ip地址对应的所述第二云原生容器集群;
11.所述第一流量转换网关将所述通信请求转发给所述第二流量转换网关,以使所述第二流量转换网关对所述通信请求中ip地址进行域名解析处理,确定所述通信对象所在位置;
12.所述第二流量转换网关将所述通信请求发送到所述通信对象。
13.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于云原生的集群通信方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于云原生的集群通信方法的步骤。
15.本发明实施例提供的基于云原生的集群通信装置、方法、计算机设备及存储介质,该装置包括多集群注册中心、集群元数据管理服务模块、集群节点路由代理服务模块、集群流量转发网关模块、集群流量治理服务模块,所述多集群注册中心、所述集群元数据管理服务模块、所述集群节点路由代理服务模块、所述集群流量转发网关模块和所述集群流量治理服务模块均基于云原生,所述多集群注册中心与每一个容器集群相连接,用于共享所有所述容器集群的信息,所述集群元数据管理服务模块位于每一个所述容器集群上,用于管理所述容器集群的元数据,所述集群节点路由代理服务模块运行在每一个所述容器集群中的所有容器上,用于将所述所有容器的流量信息转发到所述集群流量转发网关模块进行处理,所述集群流量转发网关模块位于每一个所述容器集群上,用于管理所述容器集群的流量转发,所述集群流量治理服务模块位于每一个所述容器集群上,用于实现所述容器集群之间的流量治理配置。通过采用联邦容器集群方案,首先容器集群规模突破单个容器集群的规模,通过多个容器集群来实现大规模,跨地域,跨环境等不同的业务场景,从底层容器基础设施支持跨容器业务交互的需求。其次通过多集群注册中心,统一管理维护所有容器集群,通过容器内转发网关,实现容器间流量治理可控,避免单个集群流量洪峰压垮其他容器集群,从而提高集群通信效率。
附图说明
16.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1是本发明一实施例中基于云原生的集群通信装置的结构示意图;
18.图2是本发明一实施例中基于云原生的集群通信装置的又一结构示意图;
19.图3是本发明一实施例中基于云原生的集群通信方法的一流程图;
20.图4是本发明一实施例中计算机设备的一示意图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明实施例提供了一种基于云原生的集群通信装置,如图1所示,该基于云原生的集群通信装置包括多集群注册中心01、集群元数据管理服务模块02、集群节点路由代理服务模块03、集群流量转发网关模块04、集群流量治理服务模块05,多集群注册中心01、集群元数据管理服务模块02、集群节点路由代理服务模块03、集群流量转发网关模块04和集群流量治理服务模块05均基于云原生,多集群注册中心01与每一个容器集群相连接,用于共享所有容器集群的信息,集群元数据管理服务模块02位于每一个容器集群上,用于管理容器集群的元数据,集群节点路由代理服务模块03运行在每一个容器集群中的所有容器上,用于将所有容器的流量信息转发到集群流量转发网关模块04进行处理,集群流量转发网关模块04位于每一个容器集群上,用于管理容器集群的流量转发,集群流量治理服务模块05位于每一个容器集群上,用于实现容器集群之间的流量治理配置。
23.其中,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(cloudnative)是一个组合词,cloud+native。cloud表示应用程序位于云中,而不是传统的数据中心;native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性加上分布式优势,云原生具有模块化、可观察、可部署、可测试、可替换的优点。
24.其中,多集群注册中心01为全局的集中式集群注册中心,多集群注册中心01的注册方式包括自动注册方式和纳管注册方式。
25.上述自动注册方式是指单个容器集群通过秘钥主动注册到多集群注册中心01中。该自动注册方式应用于新增容器集群纳管。
26.上述纳管注册方式是指通过手工纳管,梳理容器集群的相关信息,手工将信息导入多集群注册中心01,实现集群纳管,该纳管注册方式应用于已有存量容器集群纳管。
27.通过注册,每个容器集群不仅获取一个唯一的集群编码,还获取到容器集群的ip子网信息等,以便所有容器集群共享所有容器集群的信息。
28.集群节点路由代理服务模块03,运行在容器集群的每个节点上,按照容器cni标准实现,负责将容器集群每个节点的流量按照配置的规则代理转发到集群流量转发网关模块04;根据节点上流量的目的地,结合流量转发的配置,将跨集群的网络流量转发到集群流量转发网关模块04,其他常规的流量按照原来的路径即可。
29.进一步地,如图2所示,集群元数据管理服务模块02包括元数据查询单元021、接口访问单元022、监听单元023,元数据查询单元021用于查询容器集群中元数据信息,接口访问单元022用于通过多集群注册中心01访问任一个容器集群的元数据接口信息,监听单元023用于监听所有容器集群对应的状态信息。
30.集群元数据管理服务模块02为四个分布式单机群的集群元数据管理服务模块02。
31.集群流量转发网关模块04为中心化架构集群流量转发网关模块04。
32.其中,上述监听单元023使用list-watch模式监听所有容器集群服务的变动,及时通知集群流量转发网关模块04更新容器集群流量的转发路由策略。
33.进一步地,集群流量治理服务模块05包括粗粒度治理单元、细粒度治理单元,粗粒度治理单元用于所有容器集群之间的流量治理,细粒度治理单元用于单个容器集群中的流
量治理。
34.其中,粗粒度治理单元用于所有容器集群之间的流量治理,细粒度治理单元用于单个容器集群中的流量治理。
35.上述粗粒度治理单元和细粒度治理单元对应的治理能力包括但不限于基础的流量治理、安全治理、业务规则类治理。
36.本发明实施例提供的基于云原生的集群通信装置,该装置包括多集群注册中心01、集群元数据管理服务模块02、集群节点路由代理服务模块03、集群流量转发网关模块04、集群流量治理服务模块,多集群注册中心01、集群元数据管理服务模块02、集群节点路由代理服务模块03、集群流量转发网关模块04和集群流量治理服务模块均基于云原生,多集群注册中心01与每一个容器集群相连接,用于共享所有容器集群的信息,集群元数据管理服务模块02位于每一个容器集群上,用于管理容器集群的元数据,集群节点路由代理服务模块03运行在每一个容器集群中的所有容器上,用于将所有容器的流量信息转发到集群流量转发网关模块04进行处理,集群流量转发网关模块04位于每一个容器集群上,用于管理容器集群的流量转发,集群流量治理服务模块05位于每一个容器集群上,用于实现容器集群之间的流量治理配置。通过采用联邦容器集群方案,首先容器集群规模突破单个容器集群的规模,通过多个容器集群来实现大规模,跨地域,跨环境等不同的业务场景,从底层容器基础设施支持跨容器业务交互的需求。其次通过多集群注册中心01,统一管理维护所有容器集群,通过容器内转发网关,实现容器间流量治理可控,避免单个集群流量洪峰压垮其他容器集群,从而提高集群通信效率。
37.本发明还提供一种基于云原生的集群通信方法,应用在上述基于云原生的集群通信装置上,如图3所示,其具体包括如下步骤s10至步骤s40:
38.s10、第一流量转换网关接收来自第一云原生容器集群的通信请求,其中,第一流量转换网关是指第一云原生容器集群与多集群注册中心中任一个云原生容器集群进行通信的软件网关,通信请求包括通信对象的ip地址。
39.s20、根据通信请求中的ip地址,第一流量转换网关查询本地容器集群表,确定与ip地址对应的第二云原生容器集群。
40.s30、第一流量转换网关将通信请求转发给第二流量转换网关,以使第二流量转换网关对通信请求中ip地址进行域名解析处理,确定通信对象所在位置。
41.s40、第二流量转换网关将通信请求发送到通信对象。
42.对于步骤s10来说,上述第一云原生容器集群是指基于云原生的容器集群。应理解,上述第一云原生容器集群可为一个或多个云原生容器集群。
43.上述第一流量转换网关是指是第一云原生容器集群与不同云原生容器集群进行通信的软件网关。
44.上述通信请求是指第一云原生容器集群与与多集群注册中心中任一个云原生容器集群进行通信产生的请求。该通信请求包括但不限于通信对象、ip地址。
45.上述通信对象是指第二云原生容器集群中的计算机。
46.对于步骤s20来说,上述本地容器集群表是指用来存放与本地云原生容器集群进行通信的云原生容器集群的信息。该本地容器集群表的字段包括但不限于云原生容器集群序号、该云原生容器集群对应的流量转化网关地址。
47.对于步骤s30来说,上述域名解析处理是指将通信请求携带的ip地址进行域名解析为该通信对象对应的地址。
48.通过第一云原生容器集群查询本地容器集群表,以及两个流量转换网关之间的集群通信,域名解析,从而确定不同云原生容器集群之间具体通信对象,提高集群通信效率。
49.作为本方案可选的一些实施例,在步骤s10之前,基于云原生的集群通信方法还包括如下步骤s101至步骤s102:
50.s101、对云原生容器集群进行身份信息获取,得到云原生容器集群对应的身份信息。
51.s102、基于多集群注册中心,对云原生容器集群对应的身份信息进行注册,并将云原生容器集群加入到多集群注册中心对应的本地容器集群表中。
52.对于步骤s101来说,获取身份信息的方法可通过自研进行获取身份信息,上述自研是指每个云原生容器集群对应的企业需先去网上上报该企业的作业信息,从而获得自身的dns以及ip地址。其中,dns是指域名系统,用于解决网上机器命名的一种系统。可将域名解析为ip地址。该ip是指该云原生容器集群对外的通信地址。通过dns,可将云原生容器集群中的多台计算机进行命名,赋予对应的子网ip地址。
53.对于步骤s102,上述注册是指将云原生容器集群的信息加入多集群注册中心的本地容器集群表中。通过上述注册,使得新加入的云原生容器集群与多集群注册中心原有的容器集群之前能够进行通信,且具有互相可见性。
54.上述多集群注册中心具有分片规则,每个片段包括一个ip,根据ip可推出对应的云原生容器集群。
55.通过上述步骤,使得新增的云原生容器集群能加入到该基于云原生的集群通信装置中,从而提高集群通信效率。
56.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
57.关于基于云原生的集群通信装置的具体限定可以参见上文中对于基于云原生的集群通信方法的限定,在此不再赘述。上述基于云原生的集群通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
58.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于云原生的集群通信方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于云原生的集群通信方法。
59.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上
并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于云原生的集群通信方法的步骤,例如图3所示的步骤s10至步骤s40及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中基于云原生的集群通信装置的各模块/单元的功能,例如图1所示模块01至模块05的功能。为避免重复,这里不再赘述。
60.所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
61.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
62.所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
63.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于云原生的集群通信方法的步骤,例如图3所示的步骤s10至步骤s40及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中基于云原生的集群通信装置的各模块/单元的功能,例如图1所示模块01至模块05的功能。为避免重复,这里不再赘述。
64.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
65.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
66.以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。