引用
付楠 , 程光 , 滕跃 ,等. 基于非侵入式数据采集的微服务依赖关系发现方法[J]. 网络空间安全科学学报, 2023, 1(2): 112-121
FU N , CHENG G , TENG Y ,et al. Micro-Service Dependency Discovery Method Based on Non-Intrusive Data Capture[J]. Journal of Cybersecurity, 2023, 1(2): 112-121
背 景
随着云计算和云原生技术的发展,大规模应用在云上的部署、扩展和管理变得更加灵活,国内企业应用迁移上云成为趋势。然而,面向大规模且复杂的应用,服务依赖关系发现作为故障检测和定位的基础变得十分困难。现有数据采集技术需要修改原有应用代码并很难覆盖全部容器网络,没有将流量数据与拓扑结构相关联,使得生成的服务依赖关系视野局限且效果不佳。
工作概括
文章提出了基于非侵入式数据采集的微服务依赖关系发现方法。该方法主要包含基于eBPF技术的数据采集方法Barnacle和基于流量和拓扑数据关联的服务依赖关系发现。文章描述了Barnacle的实现方案,设计了容器网络的跨层拓扑发现框架,对比分析了Barnacle的性能,并展示了使用Barnacle挖掘服务依赖关系的案例。
详细工作
本文的主要工作分为以下四个部分:
(1)描述了Barnacle具备的非侵入、用户透明、跨层关联、高性能和高覆盖范围的五种设计目标,并针对五种目标详细介绍了基于eBPF技术的数据采集架构和实现方法,使用三种类型采集器分别获取容器网络的流量数据、拓扑结构和网络接口信息,实现面向微服务架构的非侵入数据采集,为进一步的服务依赖发现提供数据支撑。
(2)面向使用Kubernetes技术的容器网络,文章提出了跨层拓扑发现框架。该框架利用Barnacle得到的拓扑结构和网络接口信息来还原网络底层结构,以对用户透明的方式实现网络结构的发现。此外,该框架聚焦于容器网络中的流量交互路径,将Kubernetes集群管理的容器网络结构由底层到顶层划分为七层,并对七层中的网络组件进行关联,实现跨层拓扑图的构建。
图1 Kubernetes集群的跨层拓扑
(3)从资源消耗、eBPF程序时间开销和端到端性能来评估Barnacle的数据采集、拓扑发现和关联的性能,证明了Barnacle以能忽略的性能开销实现容器网络全视角下的流量和拓扑数据采集。
(4)基于Barnacle采集的流量和拓扑数据,文章描述了服务依赖关系发现的研究案例。与现有数据采集技术进行对比,证明了使用Barnacle挖掘服务依赖关系可以获得更完备的微服务种类,发现更完整的依赖关系,提供更广泛的监测视角。
图(a) Jaeger服务依赖关系 图(b) Barnacle服务依赖关系
图2 服务依赖发现结果
结 果
本文使用eBPF技术实现了以非侵入的方式对部署在Kubernetes集群中的微服务拓扑、网络接口和HTTP流量进行采集的方法Barnacle。基于Barnacle提出了通过在系统内核中采集请求和响应报文来实现服务依赖关系发现的方法。与现有的侵入式追踪工具Jaeger进行对比,证明了本文提出的方法能捕获更多的微服务类型,并发现更完整的服务依赖关系。针对微服务拓扑和流量交互能提供更加广泛的监测视角。
论文全文下载方式
1 识别下方二维码;2 点击文末“阅读原文”。
来源:《网络空间安全科学学报》第二期
电话:010-89061756/ 89061778