System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于eBPF的Kubernetes集群自适应流量调度装置制造方法及图纸_技高网

一种基于eBPF的Kubernetes集群自适应流量调度装置制造方法及图纸

技术编号:42338362 阅读:9 留言:0更新日期:2024-08-14 16:14
本发明专利技术公开了一种基于eBPF的Kubernetes集群自适应流量调度装置,包括:内核、流量监测agent、流量调控server和负载均衡器,所述内核内部包含有BPF程序,所述内核将拉取数据包信息传输到流量监测agent。本发明专利技术与传统的kube‑proxy或负载均衡器分配流量的方式相比,通过监控实时流量处理情况动态调整流量权重,从而能适应网络抖动、节点负载变化等动态因素造成的系统不稳定,实现计算资源的充分利用;使用eBPF监控及分析流量,性能好,开销小,且在流量流入网卡时就能正确感知和处理流量,更快对系统流量进行调整;使用agent、server架构,将采集、计算分离,保证流量计算模块的高可用,同时agent通过map与内核通信,保证数据高速传输。

【技术实现步骤摘要】

本专利技术涉及自适应流量调度,尤其涉及一种基于ebpf的kubernetes集群自适应流量调度装置。


技术介绍

1、随着容器技术的发展和微服务架构的日渐盛行,企业服务上云已成为不可抵挡的趋势,kubernetes作为行业内成熟主流的容器编排调度平台,往往是应用上云的最佳选择。在kubernetes中,集群又多个主机节点组成,每个节点上运行着若干pod,pod是kubernetes的最小调度管理单元。通常地,每个应用服务都会以多副本的方式运行在集群中,即有多个应用pod同时提供服务,并通过service暴露统一出口以实现高可用及负载均衡。

2、但在生产环境中,由于每个pod所在节点的硬件环境、机器性能、机器负载、网络抖动的不同,每个pod处理请求的性能也会有差别,轮询分配会导致实际服务的不均衡,性能好的pod和性能较差的pod处理的请求数相同,从而导致计算资源和流量的错配。


技术实现思路

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、鉴于上述现有一种基于ebpf的kubernetes集群自适应流量调度装置存在的问题,提出了本专利技术。

3、因此,本专利技术目的是提供一种基于ebpf的kubernetes集群自适应流量调度装置,其适用于解决在生产环境中,由于每个pod所在节点的硬件环境、机器性能、机器负载、网络抖动的不同,每个pod处理请求的性能也会有差别,轮询分配会导致实际服务的不均衡,性能好的pod和性能较差的pod处理的请求数相同,从而导致计算资源和流量的错配的问题。

4、为解决上述技术问题,本专利技术提供如下技术方案:一种基于ebpf的kubernetes集群自适应流量调度装置,包括:内核、流量监测agent、流量调控server和负载均衡器,

5、所述内核内部包含有bpf程序,所述内核将拉取数据包信息传输到流量监测agent,所述流量监测agent将收集节点流量信息向流量调控server内进行传输,并对负载均衡器进行更新权重,所述流量调控server向流量监测agent同步监听列表,同时流量监测agent向内核进行同步监听列表。

6、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述流量监测agent以daemonset部署到集群上,daemonset相当于k8s中的守护进程类型,他会保证每个节点上都运行一个pod副本。

7、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述流量调控server以deployment部署到节点上,为了服务的高可用可设置多个副本,server通过集群api server及agent上报的数据获取集群的service信息。

8、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述service绑定的后端pod数据进行监听,server接收agent上报的数据后,会综合各个应用pod的节点负载、数据包处理时延,计算出对应的权重,并更新负载均衡器的权重设置。

9、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述service创建或更新时,流量调控server会通过集群事件得知,然后通过api server获取service对应的pod信息,并将pod加到监听列表,pod监听列表更新后,server会把最新的监听列表同步给agent,agent也会通过内核map将监听列表传到内核中。

10、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述service批准client通过请求应用服务时,数据包会在操作系统内核中流经网卡,当在网卡中触发数据包相关的ebpf程序所注册的钩子,ebpf通过map中记录的监听列表筛选是否有符合条件的数据包,在通过内核map把数据包的信息传到节点部署的流量监测agent处理;除此之外,ebpf程序也会把内核磁盘io延迟、系统平均负载等感知数据传输给agent,并周期性上报采集的数据到server。

11、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:所述流量调控server通过agent上报的数据,综合各个pod当前的性能表现,计算出新的权重,生成负载均衡器的配置并更新到负载均衡器。

12、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:负载均衡器根据更新的配置将客户端请求按权重转发给工作节点,agent+server继续监测流量处理情况,并进一步调整,同时为了避免瞬时流量对系统的影响,流量调整策略设置等待期,server对等待期内pod的流量削峰削谷后再进行权重的调控,同时agent也会暴露metrics接口,把通过ebpf程序从内核态获取的指标暴露出来,让用户可以直观地看到系统流量切换的过程。

13、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:监听集群中的pod工作流程:

14、s1.用户创建lb类型的service;

15、s2.server监听集群事件获取到service信息及绑定pod信息;

16、s3.server将pod加入监听列表并同步到agent;

17、s4.agent收到同步信息后将新增的监听pod放到内核map中;

18、s5.内核中bpf程序通过内核map的pod列表过滤数据包。

19、作为本专利技术所述一种基于ebpf的kubernetes集群自适应流量调度装置的一种优选方案,其中:动态流量调控工作流程:

20、s1.请求服务的流量通过节点网卡流入pod,触发ebpf hook;

21、s2.bpf程序通过过滤列表筛选数据包,通过map将数据包信息传输到用户态;

22、s3.agent将采集到的流量信息及节点信息上报到server;

23、s4.server根据各节点上报数据计算权重,并更新负载均衡器的配置;

24、s5.负载均衡器使用新权重分配流量。

25、本专利技术的有益效果:

26、与传统的kube-proxy或负载均衡器分配流量的方式相比,通过监控实时流量处理情况动态调整流量权重,从而能适应网络抖动、节点负载变化等动态因素造成的系统不稳定,实现计算资源的充分利用;

27、使用ebpf监控及分析流量,性能好,开销小,且在流量流入网卡时就能正确感知和处理本文档来自技高网...

【技术保护点】

1.一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于,包括:内核、流量监测agent、流量调控server和负载均衡器,

2.根据权利要求1所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,所述自适应流量调度装置使用了一种自适应流量调度方法,其特征在于,所述自适应流量调度方法包括:所述流量监测agent以Daemonset部署到集群上,Daemonset相当于k8s中的守护进程类型,他会保证每个节点上都运行一个Pod副本。

3.根据权利要求2所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述流量调控server以deployment部署到节点上,为了服务的高可用可设置多个副本,server通过集群APIServer及agent上报的数据获取集群的Service信息。

4.根据权利要求3所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述Service绑定的后端Pod数据进行监听,server接收agent上报的数据后,会综合各个应用Pod的节点负载、数据包处理时延,计算出对应的权重,并更新负载均衡器的权重设置。

5.根据权利要求4所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述Service创建或更新时,流量调控server会通过集群事件得知,然后通过APIServer获取Service对应的Pod信息,并将Pod加到监听列表,Pod监听列表更新后,server会把最新的监听列表同步给agent,agent也会通过内核map将监听列表传到内核中。

6.根据权利要求5所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述Service批准client通过请求应用服务时,数据包会在操作系统内核中流经网卡,当在网卡中触发数据包相关的eBPF程序所注册的钩子,eBPF通过map中记录的监听列表筛选是否有符合条件的数据包,在通过内核map把数据包的信息传到节点部署的流量监测agent处理;除此之外,eBPF程序也会把内核磁盘io延迟、系统平均负载等感知数据传输给agent,并周期性上报采集的数据到server。

7.根据权利要求2所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述流量调控server通过agent上报的数据,综合各个Pod当前的性能表现,计算出新的权重,生成负载均衡器的配置并更新到负载均衡器。

8.根据权利要求7所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于:所述负载均衡器根据更新的配置将客户端请求按权重转发给工作节点,agent+server继续监测流量处理情况,并进一步调整,同时为了避免瞬时流量对系统的影响,流量调整策略设置等待期,server对等待期内Pod的流量削峰削谷后再进行权重的调控,同时agent也会暴露metrics接口,把通过eBPF程序从内核态获取的指标暴露出来,让用户可以直观地看到系统流量切换的过程。

9.根据权利要求2所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于,监听集群中的Pod工作流程:

10.根据权利要求2所述的一种基于eBPF的Kubernetes集群自适应流量调度装置,其特征在于,动态流量调控工作流程:

...

【技术特征摘要】

1.一种基于ebpf的kubernetes集群自适应流量调度装置,其特征在于,包括:内核、流量监测agent、流量调控server和负载均衡器,

2.根据权利要求1所述的一种基于ebpf的kubernetes集群自适应流量调度装置,所述自适应流量调度装置使用了一种自适应流量调度方法,其特征在于,所述自适应流量调度方法包括:所述流量监测agent以daemonset部署到集群上,daemonset相当于k8s中的守护进程类型,他会保证每个节点上都运行一个pod副本。

3.根据权利要求2所述的一种基于ebpf的kubernetes集群自适应流量调度装置,其特征在于:所述流量调控server以deployment部署到节点上,为了服务的高可用可设置多个副本,server通过集群apiserver及agent上报的数据获取集群的service信息。

4.根据权利要求3所述的一种基于ebpf的kubernetes集群自适应流量调度装置,其特征在于:所述service绑定的后端pod数据进行监听,server接收agent上报的数据后,会综合各个应用pod的节点负载、数据包处理时延,计算出对应的权重,并更新负载均衡器的权重设置。

5.根据权利要求4所述的一种基于ebpf的kubernetes集群自适应流量调度装置,其特征在于:所述service创建或更新时,流量调控server会通过集群事件得知,然后通过apiserver获取service对应的pod信息,并将pod加到监听列表,pod监听列表更新后,server会把最新的监听列表同步给agent,agent也会通过内核map将监听列表传到内核中。

6.根据权利要...

【专利技术属性】
技术研发人员:覃伟枫蔡岳阳林位宁
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1