System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向容器网络的拓扑发现和微服务依赖关联方法技术_技高网
当前位置: 首页 > 专利查询>东南大学专利>正文

一种面向容器网络的拓扑发现和微服务依赖关联方法技术

技术编号:40419014 阅读:4 留言:0更新日期:2024-02-20 22:37
本发明专利技术提出了一种面向容器网络的拓扑发现和微服务依赖关联方法,具体步骤分为集群和微服务环境部署、容器网络拓扑发现、容器网络流量采集和微服务依赖关联四个部分。环境部署时,在独立云服务器中部署Kubernetes集群统一管理容器网络,网络拓扑发现时,从容器间数据交互角度出发,对网络组件进行分层,并构建跨层组件的关联特征。网络流量采集时,基于eBPF技术被动地对容器网络中的应用层数据进行全面地、非侵入地采集。微服务依赖关联时,深入提取微服务之间的依赖关联关系,确定微服务部署位置、数据交互IP等详细特征。本发明专利技术可用于企业、云服务提供商在内部云环境中对关键业务、应用和服务的复杂程度进行评估,为提高应用服务质量提供依据。

【技术实现步骤摘要】

本专利技术涉及容器网络测量领域,具体涉及一种面向容器网络的拓扑发现和微服务依赖关联的方法。


技术介绍

1、随着云原生技术的高速发展,容器化、微服务、容器编排工具等技术的不断创新使得大规模公共应用在云上的部署、扩展和管理变得更加灵活,国内外企业应用逐渐迁移上云成为趋势。然而,大规模应用的服务体系结构更加复杂,服务组件数量更加庞大,跨云服务层的服务组件发生故障会严重影响应用服务质量。针对容器网络的故障检测、定位和预测研究的基础是容器网络拓扑发现和服务依赖关联。

2、然而,面向复杂的微服务架构,实现准确的拓扑发现和完整的服务依赖关联面临挑战。针对部署容器编排工具等云原生环境,现有拓扑发现方法因为容器网络和内核使用的虚拟化技术,难以对详细的容器网络接口信息、跨层网络组件特征和网络组件关联特征进行准确获取。传统的监控工具难以在云原生场景下实现细粒度的数据采集和统计分析。其次,现有许多分布式追踪工具需要侵入到系统或应用中,并修改原有应用代码,这违背了企业应用代码的高安全性需求。此外,主动测量或分布式追踪方法对容器网络监测存在盲点,两种方法支持的网络监测视角存在局限。最后,现有服务依赖分析方法主要局限于容器网络中包含的性能数据和拓扑结构,忽略了流量数据的关键作用。因此,需要提出一种从容器流量交互角度出发,以非侵入的数据采集实现准确的跨层网络拓扑发现和完整的服务依赖关系关联的方法。

3、总体而言,针对云上应用的数据采集、拓扑发现和微服务依赖关联相关研究,目前的方法主要存在以下三个问题:(1)数据采集方式:通过侵入原有应用、修改原有应用代码的方式来实现较长跨度的数据收集,缺乏对应用或代码高安全需求的考量;(2)数据类型和拓扑结构:现有研究往往利用系统性能数据和扁平的拓扑结构,缺乏对容器网络中不同类型网络组件的细化分类,忽略不同组件的跨层调用关系。这导致使用两种数据表达的故障类型受限,缺乏对容器网络中交互流量数据的充分利用。(3)关联方法:现有研究将性能数据、拓扑结构等不同类型数据作为独立的分析对象,忽略了流量数据特征在服务依赖关系发现上的关键作用,对不同类型数据间的关联能力低。


技术实现思路

1、为解决上述问题,本专利技术提出了一种面向容器网络的拓扑发现和微服务依赖关联方法,该方法基于被动的数据测量技术,在结构复杂的容器网络中准确发现网络组件,还原跨层网络拓扑和关联微服务依赖关系。方法的具体步骤分为集群和微服务环境部署、容器网络拓扑发现、容器网络流量采集和微服务依赖关联四个部分。环境部署时,在独立云服务器中部署kubernetes集群统一管理容器网络,并部署开源火车票购买服务。网络拓扑发现时,从容器间数据交互角度出发,对网络组件进行分层,并构建跨层组件的关联特征,实现容器网络中数据交互拓扑的发现。网络流量采集时,基于ebpf技术被动地对容器网络中的应用层数据进行全面地、非侵入地采集。微服务依赖关联时,深入提取大量微服务之间的依赖关联关系,确定微服务部署位置、数据交互ip等详细特征,提供更加准确的依赖关联和更加广泛的容器网络监测视角。本专利技术可用于企业、云服务提供商在内部云环境中对关键业务、应用和服务的复杂程度进行评估,为提高应用服务质量提供依据。

2、为实现本专利技术的目的,本方案具体技术步骤如下:

3、步骤(1)在可控的多台云服务器中部署kubernetes集群,选择一台云服务器作为集群的主节点,剩余的云服务器作为集群的工作节点。在已经成功通信的集群中部署微服务应用,不同的微服务经过主节点自动分配到工作节点上进行部署;

4、步骤(2)利用集群的api信息自动化动态获取集群中容器网络组件信息、网络接口信息、容器接口信息及所有微服务、pod、命名空间与容器特征,实现跨层拓扑的发现和关联;

5、步骤(3)安装llvm和clang编译框架,并部署bcc开发环境。编写用来采集应用层报文的ebpf程序,将ebpf程序部署到四台云服务器上并进行时间同步。监听全部容器接口实现从系统内核中采集应用层数据。编写流量预处理程序,从应用层数据中进一步提取报文摘要特征进行存储;

6、步骤(4)根据应用层摘要特征构建数据交互表,根据ip地址将微服务、微服务所处节点、微服务所属pod、微服务所属容器、微服务所属命名空间和交互数据报文进行关联,构建细粒度、多维度特征的服务依赖关系图。

7、进一步的,所述步骤(1)具体包含如下子步骤:

8、(1.1)在位于同一地域的四台云服务器上部署具有标准配置的kubernetesv1.22.4集群,并使用flannel网络插件保证容器间的通信。所有服务器均具有4核cpu、16gib内存和200gb的磁盘存储,操作系统为centos7.6,内核版本为5.4.251;

9、(1.2)在集群主要控制节点master上部署火车票购买服务。该服务包含了41个独立微服务,所有微服务被自动化分配到集群中所有节点上。

10、进一步的,所述步骤(2)具体包含如下子步骤:

11、(2.1)使用python脚本自动化捕获云服务器节点网络接口信息;

12、(2.2)通过corev1api和batchv1api对象自动化捕获集群中全部容器接口信息;

13、(2.3)自动化捕获微服务所属命名空间、pod和容器特征,主要包含命名空间名称、微服务名称、微服务ip、微服务端口、微服务标签等特征。提取微服务和pod、微服务和容器、pod和容器之间的关联特征;

14、(2.4)根据微服务和pod、pod和容器之间的关联关系,构建跨命名空间、微服务、节点、容器网络接口cni层、pod层、虚拟以太网接口veth和容器的拓扑图;

15、进一步的,(2.1)至(2.3)中各层网络组件特征的详细信息,如表3所示:

16、表3拓扑特征

17、 特征名称 特征含义 pod_name pod名称 spacename 命名空间名称 node 云主机ip ip pod的ip pod_status pod运行状态 container_name 容器名称 本文档来自技高网...

【技术保护点】

1.一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(1)具体包含如下子步骤:

3.根据权利要求2所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(2)具体包含如下子步骤:

4.根据权利要求3所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(2.1)至(2.3)中各层网络组件特征的详细信息,如表1所示:

5.根据权利要求2所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(3)具体包含如下子步骤:

6.根据权利要求5所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(3.5)中应用层数据摘要特征的详细信息,如表2所示:

7.根据权利要求3和要求5所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(4)具体包含如下子步骤:

【技术特征摘要】

1.一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(1)具体包含如下子步骤:

3.根据权利要求2所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(2)具体包含如下子步骤:

4.根据权利要求3所述的一种面向容器网络的拓扑发现和微服务依赖关联方法,其特征在于,所述步骤(2.1)至(2.3)中...

【专利技术属性】
技术研发人员:程光付楠滕跃戴广晔陈子涵
申请(专利权)人:东南大学
类型:发明
国别省市:

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

1