CN116582460B - 一种Kubernetes环境下的自动网络巡检系统 - Google Patents

一种Kubernetes环境下的自动网络巡检系统 Download PDF

Info

Publication number
CN116582460B
CN116582460B CN202310614618.6A CN202310614618A CN116582460B CN 116582460 B CN116582460 B CN 116582460B CN 202310614618 A CN202310614618 A CN 202310614618A CN 116582460 B CN116582460 B CN 116582460B
Authority
CN
China
Prior art keywords
inspection
network
patrol
pod
environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310614618.6A
Other languages
English (en)
Other versions
CN116582460A (zh
Inventor
花磊
刘学聪
崔骥
赵安全
王亮
梁兵
张振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Boyun Technology Co ltd
Original Assignee
Jiangsu Boyun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Boyun Technology Co ltd filed Critical Jiangsu Boyun Technology Co ltd
Priority to CN202310614618.6A priority Critical patent/CN116582460B/zh
Publication of CN116582460A publication Critical patent/CN116582460A/zh
Application granted granted Critical
Publication of CN116582460B publication Critical patent/CN116582460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种Kubernetes环境下的自动网络巡检系统,涉及集群网络巡检领域,包括网络巡检测试模块和巡检结果展示模块;所述网络巡检测试模块在网络巡检测试时,采用如下步骤:获取和校验巡检锁、创建巡检测试环境、执行巡检网络测试、将巡检结果写入缓存并推送至Prometheus、清理巡检环境以及释放巡检锁;所述巡检结果展示模块用于实现/metrics接口,从缓存中获取网络巡检测试结果,并在访问/metrics接口时,通过Prometheus调用collect函数将数据返回给客户端。本发明基于Kubernetes环境,实现了自动网络巡检系统,具有自动化巡检、实时结果展示和全面测试用例等优点,提高了网络稳定性和可靠性。

Description

一种Kubernetes环境下的自动网络巡检系统
技术领域
本发明涉及集群网络巡检领域,更具体地说,涉及一种Kubernetes环境下的自动网络巡检系统。
背景技术
Kubernetes是一种用于自动部署、扩展和管理容器化应用程序的开源系统。由于其强大的功能和灵活性,Kubernetes已经成为了容器编排的事实标准。然而,在Kubernetes环境中,网络问题的排查和管理一直是一个挑战。由于集群网络测试项较为繁杂,网络问题不容易暴露,且定位问题的过程相对复杂。此外,网络测试可能会占用大量的集群资源,对业务较大的集群不够友好。
Prometheus是一款由前Google工程师开发的系统监控和告警工具包。许多公司和组织都采用了Prometheus作为监控告警工具。Prometheus的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了证明这一点,Prometheus于2016年5月加入CNCF基金会,成为继Kubernetes之后的第二个CNCF托管项目。
尽管Kubernetes和Prometheus为容器化应用程序和监控提供了强大的支持,但在Kubernetes环境下进行网络巡检仍然面临一些挑战,如:
网络问题排查困难:由于网络测试项繁杂,问题不易暴露,定位问题过程复杂,网络问题的排查变得更加困难。
测试占用集群资源较大:在进行网络测试时,可能会占用大量的集群资源,这对业务较大的集群不够友好,可能影响正常业务的运行。
发明内容
本发明要解决的技术问题是提供一种Kubernetes环境下的自动网络巡检系统,以有效地解决网络问题排查困难、定位问题过程复杂、测试占用集群资源较大等问题。
为了达到上述目的,本发明采取以下技术方案:
一种Kubernetes环境下的自动网络巡检系统,包括网络巡检测试模块和巡检结果展示模块;
所述网络巡检测试模块在网络巡检测试时,采用如下步骤:
获取和校验巡检锁、创建巡检测试环境、执行巡检网络测试、将巡检结果写入缓存并推送至Prometheus、清理巡检环境以及释放巡检锁;
所述巡检结果展示模块用于实现/metrics接口,从缓存中获取网络巡检测试结果,并在访问/metrics接口时,通过Prometheus调用collect函数(prometheus的官方库)将数据返回给客户端。
优选的,创建测试环境的过程包括创建测试所需的namespace,以及在指定节点上创建serverpod和clientpod。
优选的,创建测试环境的过程还包括创建cluster IP service和node portservice,对应的后端pod均为serverpod。
优选的,网络巡检测试程序包括以下测试用例:
客户端pod通过service在集群内部的名字访问service;
客户端pod访问同一节点上的其他服务器pod;
客户端pod访问不同节点上的服务器pod;
客户端pod访问clusterIPservice;
客户端pod访问nodeportservice;
node访问clusterservice;
node访问nodeportservice。
客户端pod通过service在集群内部的名字访问service:这表示客户端的pod通过使用集群内部的服务名称(例如服务A)进行访问,实际上是在访问后端与服务A关联的一个或多个服务器pod。
客户端pod访问同一节点上的其他服务器pod:这指的是客户端的pod在同一节点(也就是同一台服务器)上访问其他pod。比如,客户端pod和服务器pod都在同一台服务器上运行,客户端pod通过服务器pod的IP地址进行访问。
客户端pod访问不同节点上的服务器pod:这指的是客户端的pod从一个节点访问在另一个节点上运行的pod。在这种情况下,客户端和服务器pod分别在不同的服务器上运行。
客户端pod访问clusterIPservice:这表示客户端的pod访问由一个或多个服务器pod支持的集群IP服务。集群IP服务是Kubernetes中的一种服务,它通过一个共享的IP地址为一组在集群内运行的pod提供访问点。
客户端pod访问nodeportservice:这表示客户端的pod访问nodeport服务。NodePort服务是Kubernetes中的一种服务,它通过在每个节点上开放一个端口为运行在集群内的pod提供访问点。
node访问clusterservice:这指的是运行Kubernetes的服务器(节点)访问由一个或多个pod支持的集群服务。例如,服务器可能需要查询集群服务的状态或配置。
node访问nodeportservice:这表示节点访问其上运行的NodePort服务。NodePort服务在节点上公开一个端口,允许外部流量直接到达该端口,然后将流量路由到后端的Pod。
测试内容通过以下方式实现通信:
首先,在程序中发起一个请求,访问http://src/ping/dst。其中,src表示源地址,dst表示目的地址。当源地址(src)的API服务器接收到该请求后,它将发起一个新的请求访问dst/ping。这样,源地址与目的地址之间的通信得以实现。
本发明的有益效果主要体现在以下几个方面:
1、自动化网络巡检:该系统利用自动化的方式进行网络巡检,不需要手动操作,从而节省了人力资源和时间成本。通过网络巡检测试模块,系统能够自动执行一系列巡检步骤,包括创建巡检测试环境、执行网络测试、将结果写入缓存等。这种自动化的巡检过程可以定期执行,确保网络的正常运行和稳定性。
2、实时巡检结果展示:系统中的巡检结果展示模块通过/metrics接口提供实时的网络巡检测试结果。该模块从缓存中获取结果,并通过Prometheus调用collect函数将数据返回给客户端。这使得用户能够及时了解网络的状态和性能指标,以便进行必要的调整和优化。
3、精确的测试环境创建:在创建测试环境时,包括创建所需的namespace、在指定节点上创建serverpod和clientpod。此外,还创建了cluster IP service和node portservice,对应的后端pod均为serverpod。这种精确的环境创建确保了巡检测试的准确性和可靠性。
4、全面的网络巡检测试用例:网络巡检测试程序包括多个测试用例,覆盖了各种网络访问情况。这些测试用例能够全面评估网络的连通性、性能和可用性,发现潜在的问题和瓶颈。
5、确保巡检的独占性和一致性:通过获取和校验巡检锁,系统能够确保在进行网络巡检测试时只有一个实例在执行,避免了多个实例同时进行测试所带来的冲突和干扰。巡检锁的存在确保了巡检过程的独占性,使得测试结果更加准确和可靠。巡检锁还可避免资源竞争和冲突:在Kubernetes环境中,不同的应用或任务可能会共享相同的资源,如节点或网络。使用巡检锁可以防止其他应用或任务在巡检过程中占用或修改被巡检资源,从而保证了巡检的完整性和准确性。巡检锁的引入避免了资源竞争和冲突,保护了巡检过程的可靠性。巡检锁还可确保巡检过程的顺序性:巡检锁的存在确保了巡检过程中各个步骤的执行顺序。在获取巡检锁之前,其他实例无法执行巡检测试步骤,从而保证了每个步骤的按序执行。这种顺序性确保了巡检过程的正确性和可追溯性,使得巡检结果更加可信。
附图说明
图1是本发明总体流程示意图;
图2是本发明创建测试环境的具体步骤示意图;
图3是本发明源地址和目的地址之间的通信示意图。
具体实施方式
以下将结合实施例对本发明的一种在Kubernetes环境下的自动网络巡检系统进行详细说明。需要说明的是,下面描述的实施例仅为说明本发明,并不构成对本发明的任何限制。
如图1和图2所示,在本实施例中,本发明提供了一种Kubernetes环境下的自动网络巡检系统,具体包括:
网络巡检测试模块:负责执行网络巡检测试的各个步骤。
巡检结果展示模块:用于提供实时的网络巡检测试结果。
网络巡检测试模块的具体实施方式:
获取和校验巡检锁:使用分布式锁机制,如基于分布式存储系统的锁或分布式锁服务(例如Etcd、ZooKeeper)。在进行网络巡检测试之前,获取巡检锁并进行校验,确保只有一个实例在执行巡检过程。
创建巡检测试环境:
创建所需的namespace(命名空间),用于隔离巡检测试环境。在指定节点上创建serverpod和client pod,用于模拟网络访问。
执行巡检网络测试:
使用网络测试工具(例如ping、traceroute)对网络进行测试。执行各项测试用例,如pod之间的访问、跨节点访问等。
将巡检结果写入缓存并推送至Prometheus:
将巡检结果存储到缓存中,如Redis、Memcached等,以便后续查询和展示。使用Prometheus进行数据采集和监控,将巡检结果推送给Prometheus。
清理巡检环境和释放巡检锁:
清理巡检测试环境,包括删除创建的namespace和相应的pod、service等资源。释放巡检锁,使其他实例可以获取并执行巡检过程。
巡检结果展示模块实现/metrics接口,通过该接口向客户端提供实时的网络巡检测试结果。从缓存中获取巡检结果数据。使用Prometheus的collect函数调用,将数据返回给客户端。
如图3所示,测试内容通过以下方式实现通信:
首先,在程序中发起一个请求,访问http://src/ping/dst。其中,src表示源地址,dst表示目的地址。当源地址(src)的API服务器接收到该请求后,它将发起一个新的请求访问dst/ping。这样,源地址与目的地址之间的通信得以实现。
在另一个实施例中,假设需要在Kubernetes环境下实施自动网络巡检系统来监控微服务应用的网络连接和性能。则系统具体设置可以为如下:
网络巡检测试模块的实施方式:
获取和校验巡检锁:
使用Etcd作为分布式存储系统,并集成Etcd的分布式锁机制。
在每个巡检任务开始前,通过分布式锁获取巡检锁,确保只有一个实例执行巡检任务。
创建巡检测试环境:
使用Kubernetes API和client-go库创建一个名为"network-testing"的namespace,用于隔离巡检环境。
基于微服务应用的拓扑结构,在指定节点上创建serverpod和client pod,配置容器镜像、资源限制和环境变量。
执行巡检网络测试:
使用网络测试工具,如curl、iperf、ping等,在client pod和serverpod之间执行网络连接和性能测试。
通过Kubernetes API查询和访问Service、Pod、Endpoint、Node等资源,模拟真实的网络访问情况。
解析测试结果,提取关键指标和数据,如延迟、丢包率、吞吐量等。
将巡检结果写入缓存并推送至Prometheus:
使用Redis作为缓存系统,并使用Redis客户端库(如redis-py)将巡检结果以JSON格式存储在Redis中。
将巡检结果数据推送至Prometheus的Pushgateway,以供后续的数据采集和监控。
清理巡检环境和释放巡检锁:
通过Kubernetes API删除"network-testing"命名空间及其下的所有资源(Pod、Service等),确保巡检环境的清理。
释放巡检锁资源,以便其他实例可以获取并执行后续的巡检任务。
巡检结果展示模块的实施方式:使用Flask框架创建一个基于Python的Web服务,用于提供RESTful API接口。
在API服务中,编写一个/metrics的路由,处理GET请求,并通过Redis客户端库从缓存中获取巡检结果数据。
使用Prometheus的Client库(如prometheus_client)构建Metrics对象,将巡检结果数据注入到Metrics对象中。
在/metrics路由中,将Metrics对象以Prometheus格式返回给客户端。
在此实施例中,本发明使用Etcd作为分布式存储系统来实现巡检锁的获取和校验,使用Kubernetes API和client-go库来创建巡检测试环境。通过网络测试工具进行实际的网络连接和性能测试,并将结果以JSON格式存储在Redis缓存中。同时,使用Redis客户端库将巡检结果写入Redis,并通过Prometheus的Pushgateway将结果推送给Prometheus进行数据采集和监控。
在巡检结果展示模块中,本发明使用Flask框架创建一个Web服务,提供RESTfulAPI接口。通过路由配置,实现/metrics接口的GET请求处理。通过Redis客户端库从缓存中获取存储的巡检结果数据。然后,使用Prometheus的Client库构建Metrics对象,将巡检结果数据注入到Metrics对象中。最后,在/metrics路由中将Metrics对象以Prometheus格式返回给客户端。
这个实施例基于具体场景,展示了如何在Kubernetes环境下实施自动网络巡检系统。通过合理配置巡检环境、执行网络测试、存储结果数据以及展示结果接口,系统能够自动化地进行网络巡检,并提供实时的巡检结果展示。这样的实施方式可以帮助监控微服务应用的网络连接和性能,及时发现潜在问题并采取相应措施,以提高系统的稳定性和可靠性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种Kubernetes环境下的自动网络巡检系统,其特征在于,包括网络巡检测试模块和巡检结果展示模块;
所述网络巡检测试模块在网络巡检测试时,采用如下步骤:
获取和校验巡检锁,确保只有一个实例在执行巡检过程、创建巡检测试环境、执行巡检网络测试、将巡检结果写入缓存并推送至Prometheus、清理巡检环境以及释放巡检锁;
所述巡检结果展示模块用于实现/metrics接口,从缓存中获取网络巡检测试结果,并在访问/metrics接口时,通过Prometheus调用collect函数将数据返回给客户端;
创建测试环境的过程包括创建测试所需的namespace,以及在指定节点上创建serverpod和client pod。
2.根据权利要求1所述Kubernetes环境下的自动网络巡检系统,其特征在于,创建测试环境的过程还包括创建cluster IP service和node port service,对应的后端pod均为server pod。
3.根据权利要求1所述Kubernetes环境下的自动网络巡检系统,其特征在于,网络巡检测试程序包括以下测试用例:
客户端pod通过service在集群内部的名字访问service;
客户端pod访问同一节点上的其他服务器pod;
客户端pod访问不同节点上的服务器pod;
客户端pod访问cluster IP service;
客户端pod访问node port service;
node访问cluster service;
node访问node port service。
CN202310614618.6A 2023-05-29 2023-05-29 一种Kubernetes环境下的自动网络巡检系统 Active CN116582460B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310614618.6A CN116582460B (zh) 2023-05-29 2023-05-29 一种Kubernetes环境下的自动网络巡检系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310614618.6A CN116582460B (zh) 2023-05-29 2023-05-29 一种Kubernetes环境下的自动网络巡检系统

Publications (2)

Publication Number Publication Date
CN116582460A CN116582460A (zh) 2023-08-11
CN116582460B true CN116582460B (zh) 2024-01-23

Family

ID=87537590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310614618.6A Active CN116582460B (zh) 2023-05-29 2023-05-29 一种Kubernetes环境下的自动网络巡检系统

Country Status (1)

Country Link
CN (1) CN116582460B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101428A (zh) * 2018-08-21 2018-12-28 宜人恒业科技发展(北京)有限公司 一种ui自动化测试系统
CN114328115A (zh) * 2021-12-30 2022-04-12 天翼物联科技有限公司 一种云端监控和边缘运维的方法及系统
CN114416379A (zh) * 2022-02-10 2022-04-29 广西梯度科技有限公司 一种Kubernetes资源巡检方法、系统及设备
CN115437766A (zh) * 2022-09-02 2022-12-06 中国建设银行股份有限公司 一种任务处理方法和装置
CN115686535A (zh) * 2022-10-21 2023-02-03 城云科技(中国)有限公司 一种Kubernetes集群的巡检方法、装置及应用

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445207B2 (en) * 2017-07-31 2019-10-15 Oracle International Corporation System and method to execute and manage load tests using containers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101428A (zh) * 2018-08-21 2018-12-28 宜人恒业科技发展(北京)有限公司 一种ui自动化测试系统
CN114328115A (zh) * 2021-12-30 2022-04-12 天翼物联科技有限公司 一种云端监控和边缘运维的方法及系统
CN114416379A (zh) * 2022-02-10 2022-04-29 广西梯度科技有限公司 一种Kubernetes资源巡检方法、系统及设备
CN115437766A (zh) * 2022-09-02 2022-12-06 中国建设银行股份有限公司 一种任务处理方法和装置
CN115686535A (zh) * 2022-10-21 2023-02-03 城云科技(中国)有限公司 一种Kubernetes集群的巡检方法、装置及应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于容器云的深度学习平台设计与实现;朱天放;梁明;王家乐;杨志浩;李亚敏;;电子设计工程(第09期);全文 *

Also Published As

Publication number Publication date
CN116582460A (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
CN107872525B (zh) 一种微服务调用系统
US20180278725A1 (en) Converting a single-tenant application for multi-tenant use
US9697104B2 (en) End-to end tracing and logging
CN109302522A (zh) 测试方法、装置以及计算机系统和介质
US8874776B2 (en) Virtual ad hoc network testbeds for network-aware applications
CN103188112B (zh) 网络流量检测方法及装置
CN111597099B (zh) 一种监测部署于云平台的应用运行质量的无侵入仿真方法
CN107404417A (zh) 一种监控数据的处理方法、处理装置及处理系统
CN106209515A (zh) 接入网设备自动化测试系统
CN109582517A (zh) 系统应用自动化测试方法、装置、系统及工具存储端
US20140337471A1 (en) Migration assist system and migration assist method
Cha et al. Service mesh based distributed tracing system
CN113127526A (zh) 一种基于Kubernetes的分布式数据存储和检索系统
Shen et al. Network-centric distributed tracing with DeepFlow: Troubleshooting your microservices in zero code
CN116582460B (zh) 一种Kubernetes环境下的自动网络巡检系统
Seifermann Application performance monitoring in microservice-based systems
CN109324892B (zh) 分布式管理方法、分布式管理系统及装置
CN116708266A (zh) 一种云服务拓扑图实时更新方法、装置、设备及介质
EP3010194B1 (en) Method of tracing a transaction in a network
CN114816914A (zh) 基于Kubernetes的数据处理方法、设备及介质
CN113031969B (zh) 设备部署巡检方法、装置、计算机设备及存储介质
WO2023049520A1 (en) Advanced agent instrumentation for opentelemetry implementations
Borges et al. Mastering interactions with internet of things platforms through the IoTVar middleware
CN113986714A (zh) 一种基于容器化的自动化持续测试方法及装置
CN112306848B (zh) 微服务系统的架构视图生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant