CN115134358A - 跨集群流量转发方法、装置、计算机设备和存储介质 - Google Patents
跨集群流量转发方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115134358A CN115134358A CN202110297775.XA CN202110297775A CN115134358A CN 115134358 A CN115134358 A CN 115134358A CN 202110297775 A CN202110297775 A CN 202110297775A CN 115134358 A CN115134358 A CN 115134358A
- Authority
- CN
- China
- Prior art keywords
- cluster
- monitored
- aggregation
- event
- traffic forwarding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 230000002776 aggregation Effects 0.000 claims abstract description 110
- 238000004220 aggregation Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 63
- 230000007246 mechanism Effects 0.000 claims abstract description 31
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种跨集群流量转发方法、装置、计算机设备和存储介质。所述方法过获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器;通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;根据事件处理结果获取endpoint地址聚合;通过endpoint地址聚合进行待监听集群的跨集群流量转发。本申请基于kubernetes开源的informer机制,进行相应的endpoint事件监听与响应控制,从而进行更加有效的跨集群流量转发。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种跨集群流量转发方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术与虚拟化技术的快速发展,云技术也随着产生与发展。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术可以通过互联网提供动态的、可扩展的和时常虚拟化的资源来服务用户。而kubernetes,简称k8s。是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效,kubernetes提供了云平台内应用部署,规划,更新,维护的一种机制。
在目前云平台内的数据流量处理中,生产实例一般建在私有云环境,而高峰实例则在公有云环境。在高峰场景下,需要应用运维根据业务流量提前预估资源量,再向系统组提工单。接着,还要经历流程审批、主机初始化、应用部署等一系列复杂流程。高峰过后,资源即便处于空闲状态也无法及时回收,造成资源浪费。而Kubernetes原生的Service流量负载均衡方案只适用于单一集群,无法实现跨集群的流量转发。
发明内容
基于此,有必要针对上述技术问题,提供一种能够可以基于kubernetes实现跨集群流量转发的跨集群流量转发方法、装置、计算机设备和存储介质。
一种跨集群流量转发方法,所述方法包括:
获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
根据所述事件处理结果获取endpoint地址聚合;
通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
在其中一个实施例中,所述根据所述事件处理结果获取endpoint地址聚合包括:
将所述事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;
通过预设聚合器模块提取所述预设聚合信息缓存通道中的聚合信息,并对所述聚合信息进行聚合,获取endpoint地址聚合。
在其中一个实施例中,所述通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发包括:
监听所述待监听集群的事件变化,识别所述待监听集群中的第一端与第二端;
将所述第二端的endpoint地址对应替换为所述endpoint地址聚合中的endpoint地址;
通过替换后的endpoint地址进行所述待监听集群对应的跨集群流量转发。
在其中一个实施例中,所述监听所述待监听集群的事件变化,识别所述待监听集群中的第一端与第二端包括:
监听所述待监听集群的事件变化;
识别所述事件变化触发的service对应的事件类型;
根据所述事件类型识别所述待监听集群中的第一端与第二端。
在其中一个实施例中,所述获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器包括:
根据所述待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建所述待监听集群对应的集群控制器。
在其中一个实施例中,所述待监听集群的集群信息包括所述待监听集群对应的资源对象;
所述通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步之前,还包括:
初始化所述资源对象对应的资源控制器。
一种跨集群流量转发装置,所述装置包括:
请求获取模块,用于获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
信息同步模块,用于通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
事件处理模块,用于当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
地址聚合模块,用于根据所述事件处理结果获取endpoint地址聚合;
流量转发模块,用于通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
在其中一个实施例中,所述地址聚合模块具体用于
将所述事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;通过预设聚合器模块提取所述预设聚合信息缓存通道中的聚合信息,并对所述聚合信息进行聚合,获取endpoint地址聚合。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
根据所述事件处理结果获取endpoint地址聚合;
通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
根据所述事件处理结果获取endpoint地址聚合;
通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
上述跨集群流量转发方法、装置、计算机设备和存储介质,通过获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器;通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;根据事件处理结果获取endpoint地址聚合;通过endpoint地址聚合进行待监听集群的跨集群流量转发。本申请在接受流量转发请求后,通过确定待监听的集群,并构建集群控制器,以通过kubernetes的informer机制来实现对待监听集群的endpoint事件的监听与处理,而后进行并发处理后的地址聚合以及流量转发,本方案基于kubernetes开源的informer机制,进行相应的endpoint事件监听与响应控制,从而进行更加有效的跨集群流量转发。
附图说明
图1为一个实施例中跨集群流量转发方法的应用环境图;
图2为一个实施例中跨集群流量转发方法的流程示意图;
图3为一个实施例中图2中步骤207的子流程示意图;
图4为一个实施例中图2中步骤209的子流程示意图;
图5为一个实施例中跨集群流量转发装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的跨集群流量转发方法,可以应用于如图1所示的应用环境中。其中,流量转发服务器102通过网络与公有云服务器104、私有云服务器106以及终端108进行通信,其中公有云服务器104用于构建公有云环境,承载高峰实例,而私有云服务器106用于构建私有云环境,承载生产实例。流量转发服务器102则通过搭载于流量转发服务器的应用kubernetes来实现对公有云服务器104以及私有云服务器106流量负载的转发操作。具体地,流量转发控制人员可以向服务器102输入流量转发请求,该请求可以从服务器102对应的输入终端输入。流量转发服务器102获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器,待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;根据事件处理结果获取endpoint地址聚合;通过endpoint地址聚合进行待监听集群的跨集群流量转发。流量转发服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种跨集群流量转发方法,以该方法应用于图1中的流量转发服务器102为例进行说明,包括以下步骤:
步骤201,获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器,待监听集群包括部署于公有云的第一端以及部署于私有云的第二端。
其中,流量转发请求是指针对目标集群内的数据,通过流量转发实现集群中的流量调度、负载均衡以及服务治理等工作。在本方案中,集群(cluster)具体是指kubernetes集群,是计算、存储和网络资源的集合,kubernetes利用这些资源运行各种基于容器的应用。而待监听集群是指本申请的跨集群流量转发方法的流量资源转发的目标集群,本申请具体通过监听待监听集群中endpoint的事件变化来实现跨集群的流量转发。pod是kubernetes调度的最小实例,由一个或多个容器构成,容器之间共享存储,网络和命名空间。而集群控制器(controller)主要用于控制pod,集中控制器中定义了pod的部署特性,比如有几个剧本,在什么样的节点(node)上运行等。公有云通常指第三方提供商用户能够使使用的云,公有云一般可通过Internet使用,可能是免费或成本低廉的。这种云有许多实例,可在当今整个开放的公有网络中提供服务。公有云的最大意义是能够以低廉的价格,提供有吸引力的服务给最终用户,创造新的业务价值,公有云作为一个支撑平台,还能够整合上游的服务(如增值业务,广告)提供者和下游最终用户,打造新的价值链和生态系统。它使客户能够访问和共享基本的计算机基础设施,其中包括硬件、存储和带宽等资源。私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所。私有云极大的保障了安全问题,目前有些企业已经开始构建自己的私有云。本方案中,流量转发对应的第一端,即高峰端被部署于公有云,从而降低服务器端的计算资源。而流量转发对应的第二端,即生产端则被部署于私有云。从而有效保证生产端的数据安全。
首先,在进行流量转发时,可以通过流量转发请求指定流量转发过程对应的待监听集群,待监听集群中包含有高峰端对应的集群以及生产端对应的集群,从而实现不同集群间的流量转发。流量转发服务器102在获取流量转发请求后,可以查找流量转发请求对应的待监听集群,之后构建待监听集群对应的集群控制器。每一个待监听集群对应一个集群控制器。在一个具体地实施例中,可以基于流量转发请求,在Run方法中先调用集群发现接口拉取需要监听的集群,并在拉取后创建相应的集群控制器。该拉取操作可以在方法运行后持续进行,例如可以以30秒为周期进行拉取。而构建待监听集群对应的集群控制器,即对待监听集群对应的集群控制器进行初始化的过程,包括设置集群的基本属性以及指定集群关注的资源对象等。
步骤203,通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步。
其中,kubernetes中的Service主要负责服务发现与负载均衡,通过LabelSelector字段关联对应的Deployment(kubernetes定义的无状态的部署实体,由一个或多个Pod构成,负责pod的声明和生命周期控制),而每一个Service都有与之对应的同名的endpoint,endpoint记录着当前Deployment关联的pod的地址信息。这样,无论pod怎样变化,只需访问Service IP就能正确负载到对应的pod实例。按照单一流量入口的设计原则,只需要保证生产的Service能负载至生产和高峰部署单元即可。因此,本申请方案的核心在于维护一个预期的生产endpoint,其地址(IP:Port)一定是生产地址和高峰地址的并集。client-go是一个调用kubernetes集群资源对象API的客户端,即可以通过client-go实现对kubernetes集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。而informer是cclient-go中的一个核心工具包。在本申请中,主要通过informer机制,来进行集群监听,从而订阅所有待监听集群的endpoint事件信息。而在监听开始前,为了在控制器启动时可以并发处理事件队列内的全量事件,需要基于以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步。
步骤205,当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应。
步骤207,根据事件处理结果获取endpoint地址聚合。
步骤209,通过endpoint地址聚合进行待监听集群的跨集群流量转发。
当同步完成后,可以通过启动集群控制器中的预设协程池WorkerPool并发处理资源控制器事件队列的各类事件,而后基于事件的处理结果;来进行endpoint地址的聚合。由于,生产与高峰的Service和Deployment等事件的变化都会触发其endpoint变化,从而导致kubernetes的组件kube-proxy自动刷新ipvs(IP Virtual Server,IP虚拟服务器)。所以,必须时刻监听生产端和高峰端的endpoint的事件变化,并将两端的地址聚合后替换生产端的endpoint地址,从而生产端与高峰端的地址都被聚合至生产端,即可以实现不同集群间的流量转发,其中,endpoint地址的替换过程会触发新的更新事件,这个事件应当被忽略,否则将一直死循环。
具体地,在以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步后,需要先并发处理掉资源控制器队列内的事件,具体包括Service和Deployment等事件。当事件处理完成后,即可基于事件处理过程得到的事件处理结果中的聚合信息来进行地址聚合,其中聚合信息包括有事件触发源(生产或者高峰endpoint)、对端集群信息等。流量转发服务器102基于这些聚合信息完成endpoint地址的聚合,而后通过聚合后的地址替换生产端的endpoint地址,来实现跨集群的流量转发与负载均匀。
上述跨集群流量转发方法,通过获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器;通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;根据事件处理结果获取endpoint地址聚合;通过endpoint地址聚合进行待监听集群的跨集群流量转发。本申请在接受流量转发请求后,通过确定待监听的集群,并构建集群控制器,以通过kubernetes的informer机制来实现对待监听集群的endpoint事件的监听与处理,而后进行并发处理后的地址聚合以及流量转发,本方案基于kubernetes开源的informer机制,进行相应的endpoint事件监听与响应控制,从而进行更加有效的跨集群流量转发。
在一个实施例中,如图3所示,步骤207包括:
步骤302,将事件处理结果对应的聚合信息封装至预设聚合信息缓存通道。
步骤304,通过预设聚合器模块提取预设聚合信息缓存通道中的聚合信息,并对聚合信息进行聚合,获取endpoint地址聚合。
其中聚合信息包括有事件触发源(生产或者高峰endpoint)以及对端集群信息等信息,而预设聚合信息缓存通道则是预先构建的缓存区域,预设聚合器模块(Aggregator)则用于根据聚合信息完成endpoint地址的聚合。
具体地,流量转发服务器102可以在方法实施前构建预设聚合信息缓存通道以及预设聚合器模块。而后在地址信息的聚合过程中,通过预设聚合器模块从预设聚合缓冲通道提取相应的聚合信息,从而完成最终的endpoint地址聚合。通过预先构建预设聚合器模块以及预设聚合信息缓存通道,可以有效保证endpoint地址聚合成功率以及效率。
如图4所示,在一个实施例中,步骤209包括:
步骤401,监听待监听集群的事件变化,识别待监听集群中的第一端与第二端。
步骤403,将第二端的endpoint地址对应替换为endpoint地址聚合中的endpoint地址。
步骤405,通过替换后的endpoint地址进行待监听集群对应的跨集群流量转发。
具体地,本申请的方案具体通过维护一个预期的endpoint地址来进行跨集群的流量转发,该预期的endpoint地址为生产地址和高峰地址的并集。由于,生产与高峰的service和deployment的等事件的变化会触发集群的endpoint地址变化,从而导致kubernetes组件kube-proxy自动刷新IPVS。所以,流量转发服务器102需要时刻监听生产和高峰端的endpoint的事件变化,识别出待监听集群中的第一端与第二端,同时将第二端,也就是生产端的endpoint地址替换为两端聚合后的地址,而后基于替换后的endpoint地址即可完成跨集群的流量转发。本实施例中,通过endpoint地址的替换,来保证kubernetes中生产端的service能负载至生产和高峰部署单元即可,从而可以有效实现跨集群的流量转发操作。
在其中一个实施例中,步骤401包括:监听待监听集群的事件变化;识别所述事件变化触发的service对应的事件类型;根据事件类型识别待监听集群中的第一端与第二端。
其中,具体可以基于元数据标签来对事件变化触发的service对应的事件类型类型进行识别,元数据标签具体为预先设计的ex-remote标签。用于标注集群是属于生产端还是高峰端,此外还可以进行集群名称的标注。在其中一个实施例中,集群cluster A的高峰事件的service被添加的元数据元数据标签具体可以为Label{“ex-remote”:true,“peer-cluster”:cluster A}。而集群cluster B的生产事件的service被添加的元数据标签具体可以为Label{“ex-remote”:false,“peer-cluster”:cluster B}。而在方案开始实施前,则需要对待监听集群中的生产端和高峰端的service添加相应的元数据标签,从而可以在后续事件变化时过滤高峰类型的endpoint事件。
具体地,本申请的方案在实施时,可以以预先添加标签的方式来识别事件触发者的所属类型,在方案开始实施前,为集群的service打上对应的高峰或者生产类型的时间标签。当跨集群流量转发方法在运行时,可以通过监听待监听集群的事件变化;而后识别事件变化触发的service对应的元数据标签。基于元数据标签过滤高峰类型的endpoint事件。识别出待监听集群中的第二端,以进行有效的地址替换工作。本实施例中,通过预设标签可以进行更加有效的事件类型识别,提高地址替换过程的处理效率。
在其中一个实施例中,步骤201包括:根据待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建待监听集群对应的集群控制器。
其中集群信息是指用于描述集群具体内容的信息,在其中一个实施例中,集群信息具体包括了Kubernetes Client实例,集群名,集群云供应商信息。而kubernetes的informer机制的全量同步的时间间隔则用于后续的endpoint事件信息进行同步。在一个具体的实施例中全量同步的时间间隔ReSyncPeriod可以设置为600s。具体地,构建集群控制器以及对集群控制器进行初始化的过程中,需要在集群控制器添加对应的集群基本属性,同时还需要添加Informer全量同步的时间间隔。通过而后即可基于kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步,并对其中的事件变化进行监听。本实施例中,通过添加集群信息以及同步时间间隔,构建集群控制器,并保证后续过程的事件同步有效性。
在其中一个实施例中,集群信息包括待监听集群对应的资源对象,步骤203之前,还包括:初始化资源对象对应的资源控制器。
在kubernetes中,一个控制器相当于一个状态机,用来控制调度实例pod的具体状态和行为。在本实施例中,资源控制器具体是指ResourceController,用于控制待监听集群关注的资源对象。具体地,资源控制器具体用于实现了ResouceEventHandler的OnAdd,OnUpdate以及OnDelete方法。通过初始化资源控制器,可以有效实现待监听集群关注的资源对象的资源添加、更新以及删除等。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种跨集群流量转发装置,包括:
请求获取模块502,用于获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器,待监听集群包括部署于公有云的第一端以及部署于私有云的第二端。
信息同步模块504,用于通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步。
事件处理模块506,用于当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应。
地址聚合模块508,用于根据事件处理结果获取endpoint地址聚合。
流量转发模块510,用于通过endpoint地址聚合进行待监听集群的跨集群流量转发。
在其中一个实施例中,地址聚合模块508具体用于:将事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;通过预设聚合器模块提取预设聚合信息缓存通道中的聚合信息,并对聚合信息进行聚合,获取endpoint地址聚合。
在其中一个实施例中,流量转发模块510具体用于:监听待监听集群的事件变化,识别待监听集群中的第一端与第二端;将第二端的endpoint地址对应替换为endpoint地址聚合中的endpoint地址;通过替换后的endpoint地址进行待监听集群对应的跨集群流量转发。
在其中一个实施例中,流量转发模块510还用于:监听待监听集群的事件变化;识别事件变化触发的service对应的元数据标签;基于元数据标签识别事件变化的事件类型;根据事件类型识别待监听集群中的第一端与第二端。
在其中一个实施例中,请求获取模块502具体用于:根据待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建待监听集群对应的集群控制器。
在其中一个实施例中,集群信息包括待监听集群对应的资源对象,跨集群流量转发装置还包括资源控制器初始化模块,用于:初始化资源对象对应的资源控制器。
关于跨集群流量转发装置的具体实施例可以参见上文中跨集群流量转发方法的实施例,在此不再赘述。上述跨集群流量转发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储流量转发数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种跨集群流量转发方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器,待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;
根据事件处理结果获取endpoint地址聚合;
通过endpoint地址聚合进行待监听集群的跨集群流量转发。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;通过预设聚合器模块提取预设聚合信息缓存通道中的聚合信息,并对聚合信息进行聚合,获取endpoint地址聚合。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:监听待监听集群的事件变化,识别待监听集群中的第一端与第二端;将第二端的endpoint地址对应替换为endpoint地址聚合中的endpoint地址;通过替换后的endpoint地址进行待监听集群对应的跨集群流量转发。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:监听待监听集群的事件变化;识别事件变化触发的service对应的事件类型;根据事件类型识别待监听集群中的第一端与第二端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建待监听集群对应的集群控制器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:初始化资源对象对应的资源控制器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取流量转发请求,查找流量转发请求对应的待监听集群,构建待监听集群对应的集群控制器,待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过集群控制器,以kubernetes的informer机制,对待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,资源控制器队与待监听集群关注的资源对象对应;
根据事件处理结果获取endpoint地址聚合;
通过endpoint地址聚合进行待监听集群的跨集群流量转发。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;通过预设聚合器模块提取预设聚合信息缓存通道中的聚合信息,并对聚合信息进行聚合,获取endpoint地址聚合。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:监听待监听集群的事件变化,识别待监听集群中的第一端与第二端;将第二端的endpoint地址对应替换为endpoint地址聚合中的endpoint地址;通过替换后的endpoint地址进行待监听集群对应的跨集群流量转发。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:监听待监听集群的事件变化;识别事件变化触发的service对应的事件类型;根据事件类型识别待监听集群中的第一端与第二端。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建待监听集群对应的集群控制器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:初始化资源对象对应的资源控制器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(RandomAccessMemory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandomAccessMemory,SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种流量转发方法,所述方法包括:
获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
根据所述事件处理结果获取endpoint地址聚合;
通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
2.根据权利要求1所述的方法,其特征在于,所述根据所述事件处理结果获取endpoint地址聚合包括:
将所述事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;
通过预设聚合器模块提取所述预设聚合信息缓存通道中的聚合信息,并对所述聚合信息进行聚合,获取endpoint地址聚合。
3.根据权利要求1所述的方法,其特征在于,所述通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发包括:
监听所述待监听集群的事件变化,识别所述待监听集群中的第一端与第二端;
将所述第二端的endpoint地址对应替换为所述endpoint地址聚合中的endpoint地址;
通过替换后的endpoint地址进行所述待监听集群对应的跨集群流量转发。
4.根据权利要求3所述的方法,其特征在于,所述监听所述待监听集群的事件变化,识别所述待监听集群中的第一端与第二端包括:
监听所述待监听集群的事件变化;
识别所述事件变化触发的service对应的事件类型;
根据所述事件类型识别所述待监听集群中的第一端与第二端。
5.根据权利要求1所述的方法,其特征在于,所述获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器包括:
根据所述待监听集群对应的集群信息以及kubernetes的informer机制的全量同步的时间间隔,构建所述待监听集群对应的集群控制器。
6.根据权利要求1所述的方法,其特征在于,所述待监听集群的集群信息包括所述待监听集群对应的资源对象;
所述通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步之前,还包括:
初始化所述资源对象对应的资源控制器。
7.一种跨集群流量转发装置,其特征在于,所述装置包括:
请求获取模块,用于获取流量转发请求,查找所述流量转发请求对应的待监听集群,构建所述待监听集群对应的集群控制器,所述待监听集群包括部署于公有云的第一端以及部署于私有云的第二端;
信息同步模块,用于通过所述集群控制器,以kubernetes的informer机制,对所述待监听集群中的endpoint事件信息进行同步;
事件处理模块,用于当同步完成时,通过预设协程池并发处理资源控制器队列内事件,获取事件处理结果,所述资源控制器队与所述待监听集群关注的资源对象对应;
地址聚合模块,用于根据所述事件处理结果获取endpoint地址聚合;
流量转发模块,用于通过所述endpoint地址聚合进行所述待监听集群的跨集群流量转发。
8.根据权利要求7所述的装置,其特征在于,所述地址聚合模块具体用于将所述事件处理结果对应的聚合信息封装至预设聚合信息缓存通道;通过预设聚合器模块提取所述预设聚合信息缓存通道中的聚合信息,并对所述聚合信息进行聚合,获取endpoint地址聚合。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297775.XA CN115134358B (zh) | 2021-03-19 | 2021-03-19 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297775.XA CN115134358B (zh) | 2021-03-19 | 2021-03-19 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115134358A true CN115134358A (zh) | 2022-09-30 |
CN115134358B CN115134358B (zh) | 2024-04-12 |
Family
ID=83375104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110297775.XA Active CN115134358B (zh) | 2021-03-19 | 2021-03-19 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134358B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770066A (zh) * | 2017-10-20 | 2018-03-06 | 成都精灵云科技有限公司 | 一种跨主机、跨VLAN、跨集群的Docker容器导流方法 |
CN109347814A (zh) * | 2018-10-05 | 2019-02-15 | 李斌 | 一种基于Kubernetes构建的容器云安全防护方法与系统 |
CN110716787A (zh) * | 2018-07-13 | 2020-01-21 | 中兴通讯股份有限公司 | 容器地址设置方法、设备和计算机可读存储介质 |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
US10788954B1 (en) * | 2019-04-11 | 2020-09-29 | Elasticsearch B.V. | Systems and methods for integration of application performance monitoring with logs and infrastructure using a common schema |
CN111901294A (zh) * | 2020-06-09 | 2020-11-06 | 北京迈格威科技有限公司 | 一种构建在线机器学习项目的方法及机器学习系统 |
CN112104553A (zh) * | 2020-08-27 | 2020-12-18 | 新华三技术有限公司 | 一种选择路径的方法、装置、路由设备和存储介质 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112153143A (zh) * | 2020-09-24 | 2020-12-29 | 新浪网技术(中国)有限公司 | Kubernetes集群的流量调度方法、装置及电子设备 |
CA3145192A1 (en) * | 2019-06-27 | 2020-12-30 | Citrix Systems, Inc. | Securing communications between services in a cluster using load balancing systems and methods |
CN112286705A (zh) * | 2020-11-24 | 2021-01-29 | 四川长虹电器股份有限公司 | 一种基于Kubernetes的容器web服务接口聚合系统 |
-
2021
- 2021-03-19 CN CN202110297775.XA patent/CN115134358B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770066A (zh) * | 2017-10-20 | 2018-03-06 | 成都精灵云科技有限公司 | 一种跨主机、跨VLAN、跨集群的Docker容器导流方法 |
CN110716787A (zh) * | 2018-07-13 | 2020-01-21 | 中兴通讯股份有限公司 | 容器地址设置方法、设备和计算机可读存储介质 |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
CN109347814A (zh) * | 2018-10-05 | 2019-02-15 | 李斌 | 一种基于Kubernetes构建的容器云安全防护方法与系统 |
US10788954B1 (en) * | 2019-04-11 | 2020-09-29 | Elasticsearch B.V. | Systems and methods for integration of application performance monitoring with logs and infrastructure using a common schema |
CA3145192A1 (en) * | 2019-06-27 | 2020-12-30 | Citrix Systems, Inc. | Securing communications between services in a cluster using load balancing systems and methods |
CN111901294A (zh) * | 2020-06-09 | 2020-11-06 | 北京迈格威科技有限公司 | 一种构建在线机器学习项目的方法及机器学习系统 |
CN112104553A (zh) * | 2020-08-27 | 2020-12-18 | 新华三技术有限公司 | 一种选择路径的方法、装置、路由设备和存储介质 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112153143A (zh) * | 2020-09-24 | 2020-12-29 | 新浪网技术(中国)有限公司 | Kubernetes集群的流量调度方法、装置及电子设备 |
CN112286705A (zh) * | 2020-11-24 | 2021-01-29 | 四川长虹电器股份有限公司 | 一种基于Kubernetes的容器web服务接口聚合系统 |
Non-Patent Citations (1)
Title |
---|
李翔;: "在私有Kubernetes集群中实现服务的负载均衡", 《电子技术与软件工程》, no. 14, 15 July 2020 (2020-07-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN115134358B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979433B2 (en) | Highly scalable four-dimensional web-rendering geospatial data system for simulated worlds | |
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
CN108418862B (zh) | 基于人工智能服务云平台的微服务管理方法和系统 | |
CN110310034B (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
US7490265B2 (en) | Recovery segment identification in a computing infrastructure | |
US10560544B2 (en) | Data caching in a collaborative file sharing system | |
US20180217871A1 (en) | Discovering and publishing api information | |
US20140129698A1 (en) | Method and system for event notification | |
US11314554B2 (en) | System and method for grouping nodes by analyzing and associating nodes of a computer system by shared characteristics | |
CN109885624A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US10498817B1 (en) | Performance tuning in distributed computing systems | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
US11195216B2 (en) | Federated marketplace portal | |
US20170060922A1 (en) | Method and device for data search | |
CN115185679A (zh) | 人工智能算法的任务处理方法、装置、服务器及存储介质 | |
US8224933B2 (en) | Method and apparatus for case-based service composition | |
WO2020147601A1 (zh) | 用于对图进行学习的系统 | |
CN112199200A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN115134358B (zh) | 跨集群流量转发方法、装置、计算机设备和存储介质 | |
CN110297706A (zh) | 一种基于Eureka-Server项目的下线方法 | |
CN107547607B (zh) | 一种集群迁移方法及装置 | |
US11388210B1 (en) | Streaming analytics using a serverless compute system | |
CN112799797B (zh) | 一种任务管理的方法和装置 | |
CN114866416A (zh) | 一种多集群统一管理系统及部署方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |