一种K8S中使用的基于eBPF架构的负载均衡方法及装置制造方法及图纸

技术编号:30553260 阅读:21 留言:0更新日期:2021-10-30 13:34
本发明专利技术涉及一种K8S中使用的基于eBPF架构的负载均衡方法及装置,所述方法包括以下步骤:部署eBPF架构;在监听到K8S中启动新服务时,判断该新服务是否开启eBPF转发,若是,则基于该新服务的配置信息产生对应的负载均衡规则策略,存储于所述eBPF架构中;在监听到对K8S中服务的外部访问请求时,所述eBPF架构基于所述负载均衡规则策略实现负载均衡。与现有技术相比,本发明专利技术具有灵活性更强,性能更好等优点。性能更好等优点。性能更好等优点。

【技术实现步骤摘要】
一种K8S中使用的基于eBPF架构的负载均衡方法及装置


[0001]本专利技术涉及一种负载均衡装置,尤其是涉及一种K8S中使用的基于eBPF架构的负载均衡方法及装置。

技术介绍

[0002]随着微服务和容器的普及,Kubernetes(下称K8S)这个容器调度管理平台被越来越多的公司所青睐,在kubernetes中,为了保证容器化的应用的高可用性和服务的连续性,应用程序被抽象化成了一个一个的service,每当有服务请求service时,K8S的负载均衡组件(kube

proxy)根据service的配置把请求分发到指定的容器,以此实现外部请求的负载均衡。
[0003]目前K8S中使用的负载均衡模式有以下几种:
[0004]1、userspace模式
[0005]所有访问service的请求经内核iptables处理后回到用户态程序kube

proxy,由kube

proxy实现负载均衡。
[0006]而用户态程序进行负载均衡带来的问题就是转发性能差、时延高、丢包率高。该模式现在基本已被kubernetes弃用,只用在部分内核较老而又想作为kubernetes集群中node的节点使用。
[0007]2、iptables模式
[0008]kube

proxy在目标节点上配置好service的所需要的iptables规则,当有访问service的请求时,按提前配置好的iptables规则实现负载均衡。iptables是内核中用来实现防火墙的模块,而kube

proxy利用了iptables的DNAT也达到了负载均衡的效果。
[0009]与userspace模式相比,该模式降低了时延和丢包率,但因为iptables基于链表进行路由查找和NAT转换来实现负载均衡,随着iptables规则的增加,查找链表和更新链表的开销越来越大,在大规模部署场景中出现了性能瓶颈。
[0010]3、IPVS模式
[0011]kube

proxy的IPVS模式中,不再依赖于iptables规则来实现负载均衡,不会存在iptables规则带来的性能瓶颈。同时,由于IPVS本身就是linux内核实现的四层负载均衡,有丰富的负载均衡策略。
[0012]虽然有过多次改进,但kube

proxy使用的负载均衡方式仍存在以下不足:
[0013]1)灵活性差
[0014]只能针对4层进行负载均衡,基于路由、NAT进行数据转发,还是根据IP和端口来实现的负载均衡,无法实现微服务级别的负载均衡。
[0015]2)与iptables耦合度较高,难以解耦
[0016]IPVS模式下的kube

proxy无法独立实现负载均衡的全部功能,在某些场景(如SNAT和包过滤)仍需依赖于iptables来实现。

技术实现思路

[0017]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种灵活性好的K8S中使用的基于eBPF架构的负载均衡方法及装置。
[0018]本专利技术的目的可以通过以下技术方案来实现:
[0019]一种K8S中使用的基于eBPF架构的负载均衡方法,包括以下步骤:
[0020]部署eBPF架构;
[0021]在监听到K8S中启动新服务时,判断该新服务是否开启eBPF转发,若是,则基于该新服务的配置信息产生对应的负载均衡规则策略,存储于所述eBPF架构中;
[0022]在监听到对K8S中服务的外部访问请求时,所述eBPF架构基于所述负载均衡规则策略实现负载均衡。
[0023]进一步地,所述eBPF架构包括位于负载节点的eBPF代理和位于控制节点的eBPF控制器,所述eBPF代理中设置有一流量控制器。
[0024]进一步地,所述负载均衡规则策略由eBPF控制器通过gRPC传递给eBPF代理,并由eBPF代理下发至对应的流量控制器。
[0025]进一步地,所述eBPF代理实时监测微服务下pod的存活状态,判断pod状态是否存在异常,若是,则终止对该pod的请求转发。
[0026]本专利技术还提供一种K8S中使用的基于eBPF架构的负载均衡装置,包括控制节点和负载节点,所述负载节点包括eBPF代理,所述控制节点包括eBPF控制器,所述eBPF代理中设置有一流量控制器,所述eBPF代理和eBPF控制器形成eBPF架构,该eBPF架构存储有与K8S中服务对应的负载均衡规则策略,在监听到对K8S中服务的外部访问请求时,所述eBPF架构基于所述负载均衡规则策略实现负载均衡。
[0027]进一步地,所述负载均衡规则策略通过以下方式产生:
[0028]在监听到K8S中启动新服务时,判断该新服务是否开启eBPF转发,若是,则基于该新服务的配置信息产生对应的负载均衡规则策略,存储于所述eBPF架构中。
[0029]进一步地,所述负载均衡规则策略由eBPF控制器通过gRPC传递给eBPF代理,并由eBPF代理下发至对应的流量控制器。
[0030]进一步地,所述eBPF代理还包括:
[0031]pod状态监测单元,实时监测微服务下pod的存活状态,判断pod状态是否存在异常,若是,则终止对该pod的请求转发。
[0032]本专利技术还提供一种电子设备,包括:
[0033]一个或多个处理器;
[0034]存储器;和
[0035]被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述K8S中使用的基于eBPF架构的负载均衡方法的指令。
[0036]本专利技术还提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述K8S中使用的基于eBPF架构的负载均衡方法的指令。
[0037]与现有技术相比,本专利技术具有以下有益效果:
[0038]1、本专利技术通过部署的eBPF架构及对应的负载均衡规则策略实现负载均衡,不再依
赖iptables,不存在iptables规则带来的性能瓶颈,可靠性高;
[0039]2、本方法具有灵活性更强,性能更好的优点。
附图说明
[0040]图1为本专利技术的框架原理示意图。
具体实施方式
[0041]下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。
[0042]实施例1
[0043]参考图1所示,本实施例提供一种K8S中使用的基于eBPF架构的负载均衡方法,包括以下步骤:
[0044]部署eBPF架构,该eBPF架构包括位于负载节点(worker node)的eBPF代理(eBPF agent)和位于控制节点(co本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种K8S中使用的基于eBPF架构的负载均衡方法,其特征在于,包括以下步骤:部署eBPF架构;在监听到K8S中启动新服务时,判断该新服务是否开启eBPF转发,若是,则基于该新服务的配置信息产生对应的负载均衡规则策略,存储于所述eBPF架构中;在监听到对K8S中服务的外部访问请求时,所述eBPF架构基于所述负载均衡规则策略实现负载均衡。2.根据权利要求1所述的K8S中使用的基于eBPF架构的负载均衡方法,其特征在于,所述eBPF架构包括位于负载节点的eBPF代理和位于控制节点的eBPF控制器,所述eBPF代理中设置有一流量控制器。3.根据权利要求2所述的K8S中使用的基于eBPF架构的负载均衡方法,其特征在于,所述负载均衡规则策略由eBPF控制器通过gRPC传递给eBPF代理,并由eBPF代理下发至对应的流量控制器。4.根据权利要求2所述的K8S中使用的基于eBPF架构的负载均衡方法,其特征在于,所述eBPF代理实时监测微服务下pod的存活状态,判断pod状态是否存在异常,若是,则终止对该pod的请求转发。5.一种K8S中使用的基于eBPF架构的负载均衡装置,其特征在于,包括控制节点和负载节点,所述负载节点包括eBPF代理,所述控制节点包括eBPF控制器,所述eBPF代理中设置有一流量控制器,所述eBPF代理和eBPF控制器形成eBPF架构,该eBPF架构存储有与K8S中服务对应的负载均衡规则策略,在监听到对K8...

【专利技术属性】
技术研发人员:王洋
申请(专利权)人:上海仪电集团有限公司中央研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1