基于eBPF的云服务拓扑自发现方法及系统、电子设备、存储介质与流程

文档序号:24402568发布日期:2021-03-26 15:28阅读:180来源:国知局
基于eBPF的云服务拓扑自发现方法及系统、电子设备、存储介质与流程
基于ebpf的云服务拓扑自发现方法及系统、电子设备、存储介质
技术领域
1.本发明属于云计算技术领域,特别涉及一种基于ebpf的云服务拓扑自发现方法及系统、电子设备、存储介质。


背景技术:

2.随着云计算技术的高速发展,新兴的虚拟化技术docker容器凭借自身松耦合、分布式等优点,迅速被各大企业接受,越来越多的公司开始部署容器云并将之应用于实际生产中。新兴虚拟化技术的出现给传统虚拟化技术带来了挑战,也为构建高效的云平台提供了新的思路。
3.在容器云环境中,存在着大规模的容器,不易管理,因此需要一个高效便捷的容器编排系统。在众多的容器云平台方案中,kubernetes凭借其资源调度、服务发现、扩容缩容、负载均衡、灰度升级、容灾恢复等完善的功能脱颖而出。其可实现大规模、分布式、高可用的docker集群,kubernetes面向paas,它直接为解决业务的分布式架构、服务化设计,完整定义了构建业务系统的标准化架构层,即cluster、node、pod、label等一系列的抽象都是定义好的,为服务编排提供了一个简单、轻量级的方式。然而新技术的出现给传统的应用拓扑自动发现方案带来了挑战,其无法很好地兼容,并且现有的一些容器云监控方案存在占用过多资源导致系统性能降低的问题。
4.在传统vmware虚拟机和物理机时代,由于所有的网络数据都需要经过交换机,所以可以从交换机进行分光将所有的网络流量导流到分析中心,通过对网络流量进行分析,从而得到应用之间调用关系,以及应用调用的延时,错误率等。而在容器云环境中使用此类传统应用拓扑自发现方案,会无法获取到同一工作节点中的pod调用,导致无法得到完整的云服务拓扑图以及可靠的应用调用延时、错误率等监控指标。另外,现有的一些每个容器中都设置监控探针的方案,虽然可以解决传统应用拓扑自动发现功能失效的问题,但是此方案占用了过多的资源,会降低系统的性能,影响到业务的运行。


技术实现要素:

5.针对传统应用拓扑自发现方法无法使用容器云环境以及各个容器内设有监控探针的方案存在占用过多资源的问题,本发明提供一种基于ebpf的云服务拓扑自发现方法及系统、电子设备、存储介质。
6.一种基于ebpf的云服务拓扑自发现方法包括:
7.通过部署在容器云平台节点上的ebpf模块收集所述容器云平台内的调用信息,并将所述调用信息传输至数据收集模块;
8.通过所述数据收集模块对所述调用信息进行整理过滤处理,筛选得到所述容器云平台上云服务之间通信连接的网络数据包,并将所述网络数据包传输至数据分析模块;
9.所述数据分析模块对所述网络数据包进行解析处理,生成云服务拓扑图,并将所
述云服务拓扑图持久化到所述容器云平台的存储集群中。
10.优选的是,所述通过部署在容器云平台节点上的ebpf模块收集所述容器云平台内的调用信息,并将所述调用信息传输至数据收集模块的步骤包括:
11.所述容器云平台节点上均设有ebpf模块,且所述ebpf模块内设有自定义的ebpf程序,且将所述ebpf程序分别添加至所述节点内核的system call entry path和system call exit path的两个静态跟踪点上,用于获取所述节点内核运行时的调用信息,将所有所述节点的调用信息传输至所述数据收集模块。
12.优选的是,所述网络数据包包括同节点中各容器之间的数据包和不同节点之间的数据包。
13.优选的是,所述通过所述数据收集模块对所述调用信息进行整理过滤处理,筛选得到所述容器云平台上云服务之间通信连接的网络数据包,并将所述网络数据包传输至数据分析模块的步骤包括:
14.分析所述网络数据包,获取源ip地址、源端口、目的ip地址和目的端口,并将具有相同的所述源地址和所述目的地址的网络数据包归并成一条调用关联关系;
15.收集所述容器云平台上的云服务信息,并将所述云服务信息存储到所述容器云平台的存储集群中;
16.将所述云服务信息与每条所述调用关联关系进行匹配,获取所述调用关联关系中源ip地址对应源端口的云服务和目的ip地址对应目的端口的云服务,确认所述云服务之间的实际调用关系;
17.根据所述云服务之间的实际调用关系生成所述云服务拓扑图,并将所述云服务拓扑图持久化到所述容器云平台的存储集群中。
18.优选的是,所述云服务信息包括pod信息和service信息。
19.优选的是,所述方法还包括:
20.server模块与所述存储集群的接口交互,用户通过所述server模块获取所述云服务拓扑图。
21.本发明实施例提供的一种基于ebpf的云服务拓扑自发现系统,包括:
22.ebpf模块,用于获取容器云平台的调用信息,并将所述调用信息传输至数据收集模块;
23.数据收集模块,用于对所述调用信息进行整理过滤处理,筛选得到所述容器云平台上云服务之间通信连接的网络数据包,并将所述网络数据包传输至数据分析模块;
24.数据分析模块,用于对所述网络数据包进行解析处理,生成云服务拓扑图,并将所述云服务拓扑图持久化到所述容器云平台的存储集群中。
25.优选的是,所述数据分析模块包括:
26.分析装置,用于分析所述网络数据包,获取源ip地址、源端口、目的ip地址和目的端口,并将具有相同的所述源地址和所述目的地址的网络数据包归并成一条调用关联关系;
27.收集装置,用于收集所述容器云平台上的云服务信息,并将所述云服务信息存储到所述容器云平台的存储集群中;
28.处理装置,用于将所述云服务信息与每条所述调用关联关系进行匹配,获取所述
exit path的两个静态跟踪点上,用于获取节点内核运行时的调用信息,并将将所有节点的调用信息传输至数据收集模块2。
42.数据收集模块2,用于对调用信息进行整理过滤处理,筛选得到容器云平台上云服务之间通信连接的网络数据包,并将网络数据包传输至数据分析模块3;
43.数据分析模块3,用于对网络数据包进行解析处理,生成云服务拓扑图,并将云服务拓扑图持久化到容器云平台的存储集群33中。
44.参照图2,数据分析模块3包括:
45.分析装置31,用于分析网络数据包,获取源ip地址、源端口、目的ip地址和目的端口,并将具有相同的源地址和目的地址的网络数据包归并成一条调用关联关系,同时丢弃无法合并的调用关联关系;
46.收集装置32,用于收集容器云平台上的云服务信息,并将云服务信息存储到容器云平台的存储集群33中;
47.具体地,云服务信息包括pod信息和service信息,pod信息包括其name、ip、port、label等,service信息包括其name、ip、port、label等,并将该云服务信息更新到存储集群33中。
48.处理装置34,用于将云服务信息与每条调用关联关系进行匹配,获取调用关联关系中源ip地址对应源端口的云服务和目的ip地址对应目的端口的云服务,确认云服务之间的实际调用关系;
49.具体地,从存储集群中获取调用关系的目的ip地址对应目的端口所对应的云服务信息(pod或service)及相关联的名称,确认云服务之间的实际调用关系。若存储集群33中已存在相同调用关系,则将生成的实际调用关系丢弃;若调用关系中的源ip地址、源端口和目的ip地址、目的端口所对应的云服务不存在或者不对应,则通知收集装置32,将云服务信息更新至存储集群33;更新完成后,再次执行云服务之间实际调用关系的确认操作,保证其为最新的调用关系。
50.生成装置35,用于根据云服务之间的实际调用关系生成云服务拓扑图,并将云服务拓扑图持久化到容器云平台的存储集群33中。
51.具体地,根据实际调用关系与云服务的对应关系生成云服务拓扑图,并将其持久化到存储集群33;另外,还可根据网络数据包信息生成云服务调用的延时、错误率等监控指标。
52.通过上述结构,ebpf模块1仅需在容器云平台的每个节点部署一个,这样就可以解决传统应用拓扑自发现功能的失效问题,又能大大减少系统资源占用的运行开销。
53.本实施例还提供一种基于ebpf的云服务拓扑自发现方法,包括:
54.通过部署在容器云平台节点上的ebpf模块1收集容器云平台内的调用信息,并将调用信息传输至数据收集模块2;
55.容器云平台节点上均设有ebpf模块1,且ebpf模块1内设有自定义的ebpf程序,且将ebpf程序分别添加至节点内核的system call entry path和system call exit path的两个静态跟踪点上,用于获取节点内核运行时的调用信息,将所有节点的调用信息传输至数据收集模块2。
56.通过数据收集模块2对调用信息进行整理过滤处理,筛选得到容器云平台上云服
务之间通信连接的网络数据包,并将网络数据包传输至数据分析模块3,该网络数据包包括同节点中各容器之间的数据包和不同节点之间的数据包;
57.数据分析模块3对网络数据包进行解析处理,生成云服务拓扑图,并将云服务拓扑图持久化到容器云平台的存储集群33中。
58.分析网络数据包,获取源ip地址、源端口、目的ip地址和目的端口,并将具有相同的源地址和目的地址的网络数据包归并成一条调用关联关系;
59.收集容器云平台上的云服务信息,并将云服务信息存储到容器云平台的存储集群33中;
60.将云服务信息与每条调用关联关系进行匹配,获取调用关联关系中源ip地址对应源端口的云服务和目的ip地址对应目的端口的云服务,确认云服务之间的实际调用关系;
61.根据云服务之间的实际调用关系生成云服务拓扑图,并将云服务拓扑图持久化到容器云平台的存储集群33中。
62.其中,云服务信息包括pod信息和service信息。
63.该方法还包括:
64.server模块36与存储集群33的接口交互,用户通过server模块36获取云服务拓扑图。
65.进一步地,上述节点包括物理机或虚拟机。
66.本实施例还提供一种电子设备,包括至少一个处理单元以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述方法。
67.本实施例还提供一种存储介质,其存储有可由电子设备执行的计算机程序,当程序在电子设备上运行时,使得电子设备执行上述方法。
68.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1