一种负载均衡方法、系统、设备以及存储介质与流程

文档序号:35485692发布日期:2023-09-16 22:52阅读:19来源:国知局
本发明涉及集群领域,具体涉及一种负载均衡方法、系统、设备以及存储介质。
背景技术
::1、当前容器云平台大部分基于kubernetes(k8s)框架,面向用户提供以应用管理为核心的功能体系。通过k8s为某一具体业务创建一组pod(kubernetes调度的最小管理单元,由1个或多个容器组成),并通过service(服务)提供对外服务。service负载均衡主要是通过节点上的kube-proxy进程来实现。以ipvs(ip虚拟服务器)模式的kube-proxy为例,在实现service负载均衡时,会在宿主机创建ipvs0网卡,该网卡配置了所有service的ip。流量先后经过内核处理函数、iptables(ip信息包过滤)模块,最终到达ipvs模块,具体的负载均衡操作操作在ipvs模块内完成,默认负载均衡策略为轮询。但是iptables或ipvs规则要经过冗长的linux操作系统内核网络协议栈,其效率相对较低,会造成一定的网络延迟,无法全部满足高带宽、低延迟的应用访问需求。技术实现思路1、有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种负载均衡方法,包括以下步骤:2、监听集群中服务的状态;3、响应于监听到集群中新的服务被创建,获取所述新的服务对应的后端pod组、负载均衡策略以及服务ip;4、以所述服务ip为key值,所述后端pod组、所述负载均衡策略以及被访问次数为value值创建键值对并记录到map中;5、响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中。6、在一些实施例中,还包括:7、响应于监听到集群中服务被更新,获取被更新的信息并利用所述被更新的信息对所述map中相应的value值进行更新。8、在一些实施例中,响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中,进一步包括:9、创建ebpf程序并挂载到集群的预设位置;10、利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod;11、更新所述map中所述待访问服务对应的所述被访问次数。12、在一些实施例中,利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod,进一步包括:13、对所述被访问次数与所述后端pod组中pod的数量进行取余操作;14、将所述数据包转发至进行取余操作后得到的值对应的pod中。15、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:16、将所述ebpf程序挂载到所述集群内核的socket层;17、利用socket层的所述ebpf程序接收东西向访问对应的数据包。18、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:19、将所述ebpf程序挂载到所述集群内核的xdp位置;20、利用xdp位置的所述ebpf程序接收南北向访问对应的数据包。21、在一些实施例中,还包括:22、响应于检测到所述服务被删除,将所述map中的相应的键值对删除。23、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种负载均衡系统,包括:24、监听模块,配置为监听集群中服务的状态;25、获取模块,配置为响应于监听到集群中新的服务被创建,获取所述新的服务对应的后端pod组、负载均衡策略以及服务ip;26、记录模块,配置为以所述服务ip为key值,所述后端pod组、所述负载均衡策略以及被访问次数为value值创建键值对并记录到map中;27、接收模块,配置为响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中。28、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:29、至少一个处理器;以及30、存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行以下步骤:31、监听集群中服务的状态;32、响应于监听到集群中新的服务被创建,获取所述新的服务对应的后端pod组、负载均衡策略以及服务ip;33、以所述服务ip为key值,所述后端pod组、所述负载均衡策略以及被访问次数为value值创建键值对并记录到map中;34、响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中。35、在一些实施例中,还包括:36、响应于监听到集群中服务被更新,获取被更新的信息并利用所述被更新的信息对所述map中相应的value值进行更新。37、在一些实施例中,响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中,进一步包括:38、创建ebpf程序并挂载到集群的预设位置;39、利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod;40、更新所述map中所述待访问服务对应的所述被访问次数。41、在一些实施例中,利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod,进一步包括:42、对所述被访问次数与所述后端pod组中pod的数量进行取余操作;43、将所述数据包转发至进行取余操作后得到的值对应的pod中。44、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:45、将所述ebpf程序挂载到所述集群内核的socket层;46、利用socket层的所述ebpf程序接收东西向访问对应的数据包。47、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:48、将所述ebpf程序挂载到所述集群内核的xdp位置;49、利用xdp位置的所述ebpf程序接收南北向访问对应的数据包。50、在一些实施例中,还包括:51、响应于检测到所述服务被删除,将所述map中的相应的键值对删除。52、基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行以下步骤:53、监听集群中服务的状态;54、响应于监听到集群中新的服务被创建,获取所述新的服务对应的后端pod组、负载均衡策略以及服务ip;55、以所述服务ip为key值,所述后端pod组、所述负载均衡策略以及被访问次数为value值创建键值对并记录到map中;56、响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中。57、在一些实施例中,还包括:58、响应于监听到集群中服务被更新,获取被更新的信息并利用所述被更新的信息对所述map中相应的value值进行更新。59、在一些实施例中,响应于接收到数据包,根据所述数据包中携带的服务ip在所述map中查询待访问服务对应的所述被访问次数、所述负载均衡策略和所述后端pod组,并基于所述对应的被访问次数和所述负载均衡策略将数据包转发至所述后端pod组中的其中一个pod中,进一步包括:60、创建ebpf程序并挂载到集群的预设位置;61、利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod;62、更新所述map中所述待访问服务对应的所述被访问次数。63、在一些实施例中,利用所述ebpf程序接收所述数据包并基于所述数据包中携带的服务ip在查询所述map以将所述数据包转发至所述后端pod组中的其中一个pod,进一步包括:64、对所述被访问次数与所述后端pod组中pod的数量进行取余操作;65、将所述数据包转发至进行取余操作后得到的值对应的pod中。66、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:67、将所述ebpf程序挂载到所述集群内核的socket层;68、利用socket层的所述ebpf程序接收东西向访问对应的数据包。69、在一些实施例中,创建ebpf程序并挂载到集群的预设位置,进一步包括:70、将所述ebpf程序挂载到所述集群内核的xdp位置;71、利用xdp位置的所述ebpf程序接收南北向访问对应的数据包。72、在一些实施例中,还包括:73、响应于检测到所述服务被删除,将所述map中的相应的键值对删除。74、本发明具有以下有益技术效果之一:本方案提出的方案在接收到数据流量,直接查询负载均衡策略,从而在数据包进入内核协议栈之前完成待访问服务的负载均衡策略,极大提高网络转发效率。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1