CN111897625A - 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备 - Google Patents

一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备 Download PDF

Info

Publication number
CN111897625A
CN111897625A CN202010579584.8A CN202010579584A CN111897625A CN 111897625 A CN111897625 A CN 111897625A CN 202010579584 A CN202010579584 A CN 202010579584A CN 111897625 A CN111897625 A CN 111897625A
Authority
CN
China
Prior art keywords
resource
target
backtracking
resource event
event
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.)
Granted
Application number
CN202010579584.8A
Other languages
English (en)
Other versions
CN111897625B (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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN202010579584.8A priority Critical patent/CN111897625B/zh
Publication of CN111897625A publication Critical patent/CN111897625A/zh
Application granted granted Critical
Publication of CN111897625B publication Critical patent/CN111897625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备,用以解决无法回溯Kubernetes集群中的与Pod相关的历史事件的问题。本申请提供的方案包括:监听Kubernetes集群中的资源事件;根据监听到的资源事件生成包含时间戳的资源事件信息并存储;当接收到资源事件回溯请求时,从存储的资源事件信息中确定与资源事件回溯请求相关联的目标资源事件信息;根据目标资源事件信息回溯Kubernetes集群在目标回溯时段内发起的资源事件。本发明实施例的方案,能实现对历史资源事件的监听,并通过资源事件信息进行存储,当接收到资源事件回溯请求时,能对目标回溯时段内的资源事件实现回溯,便于进行故障分析排查。

Description

一种基于Kubernetes集群的资源事件回溯方法、系统及电子 设备
技术领域
本发明涉及集群信息领域,尤其涉及一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备。
背景技术
在Kubernetes这种集群环境下,所部署的业务往往是以Pod的形式运行在Node节点上。当Node故障、业务Pod故障、业务Pod滚动更新、业务Pod手动删除、Pod中容器重启等事件发生后,业务Pod都会根据配置信息,进行重新创建并启动新Pod,以保证与配置相同。历史业务Pod的相关信息都将被删除,无法查询历史事件信息,不便于进行历史故障排查。
如何回溯Kubernetes集群中的与Pod相关的历史事件,是本申请所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种基于Kubernetes集群的资源事件回溯方法,用以解决无法回溯Kubernetes集群中的与Pod相关的历史事件的问题。
第一方面,提供了一种基于Kubernetes集群的资源事件回溯方法,包括:
监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
第二方面,提供了一种基于Kubernetes集群的资源事件回溯系统,包括:
回溯事件路由模块,通过Kubernetes应用程序接口监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件,根据监听到的所述资源事件生成包含时间戳的资源事件信息并发送至Kafka队列,所述时间戳用于表征发起所述资源事件的时刻;
回溯队列消费者模块,从所述Kafka队列获取所述资源事件信息并存储至MySQL数据库中;
回溯控制管理模块,当接收到资源事件回溯请求时,从所述MySQL数据库存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
第三方面,提供了一种电子设备,包括:
监听模块,监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
生成模块,根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
确定模块,当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
回溯模块,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
第四方面,提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面该的方法的步骤。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面该的方法的步骤。
在本申请提供的方案中,通过监听Kubernetes集群中的资源事件;根据监听到的资源事件生成包含时间戳的资源事件信息并存储;当接收到资源事件回溯请求时,从存储的资源事件信息中确定与资源事件回溯请求相关联的目标资源事件信息;根据目标资源事件信息回溯Kubernetes集群在目标回溯时段内发起的资源事件。本发明实施例的方案,能实现对历史资源事件的监听,并以资源事件信息的形式对资源事件进行存储,当接收到资源事件回溯请求时,能根据存储的资源事件信息对目标回溯时段内的资源事件实现回溯,便于进行故障分析排查。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯方法的流程示意图之一;
图2是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯方法的流程示意图之二;
图3是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯方法的流程示意图之三;
图4是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯方法的流程示意图之四;
图5是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯方法的流程示意图之五;
图6是本发明的一个实施例一种基于Kubernetes集群的资源事件回溯系统的结构示意图;
图7是本发明的一个实施例根据用户发送的回溯请求检索筛选目标资源事件信息的逻辑拓扑关系图;
图8是本发明的一个实施例的用户界面示意图;
图9是本申请的一个电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
为了解决现有技术中存在的问题,本申请实施例提供一种基于Kubernetes集群的资源事件回溯方法,如图1所示,包括以下步骤:
S11:监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
S12:根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
S13:当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
S14:根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
本申请实施例中所述的Kubernetes可以简称为K8s,是一个能用于管理云平台中多个主机上的容器化的应用。Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes中应用部署是通过部署容器方式实现的,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
在Kubernetes这种集群环境下,所部署的业务往往是以Pod的形式运行在节点Node上面的。当Node故障、业务Pod故障、业务Pod滚动更新、业务Pod手动删除、Pod中容器重启等事件发生后,业务Pod都会根据配置信息,进行重新创建并启动新Pod,以保证与配置相同。出现故障的历史业务Pod的相关信息往往会被删除,在删除之后无法查询该Pod的历史状态,不便于分析确定故障原因。
本申请实施例提供的方案,在步骤S11中对Kubernetes资源事件进行收集,在步骤S12中对收集到的Kubernetes资源事件进行分析及存储,在接收到资源事件回溯请求时,在步骤S13中从存储的资源事件信息中查找确定出需要回溯的目标资源事件信息,进而在步骤S14中对目标回溯时段内发起的资源事件进行回溯。通过上述步骤,能在业务Pod由于故障等原因被删除后,对已删除的Pod资源事件进行回溯,查阅历史时段内的Pod资源事件,以便分析确定故障原因。
具体的,在步骤S11中,监听Kubernetes集群中与Pod资源相关联的资源事件。可选的,所述Kubernetes集群中的资源事件按照资源类型包括以下至少一项:部署Deployment资源事件、守护集DaemonSet资源事件、有状态应用部署SatefulSet资源事件、Pod资源事件。
其中,Kubernetes集群中的资源事件可能涉及到一种或多种资源,上述资源事件以资源类型划分,部署Deployment资源事件为针对的资源类型为部署Deployment的资源事件,守护集DaemonSet资源事件为针对的资源类型为守护集DaemonSet的资源事件,有状态应用部署SatefulSet资源事件为针对的资源类型为有状态应用部署SatefulSet的资源事件,Pod资源事件为针对的资源类型为Pod的资源事件。上述几种资源的资源事件往往与Pod资源相关,其中,在添加或删除了部署资源、守护集资源、有状态应用部署资源时,往往会对Pod资源造成影响。比方说,在添加了部署资源后,往往会基于添加的部署资源进一步添加相关联的Pod资源,通过监听部署资源的添加事件,能更完善地记录添加的Pod资源的相关信息。再比方说,对部署资源执行了删除,则与部署资源相关联的一个或多个Pod资源也会相应被删除,通过监听部署资源的删除事件,能更完善地记录Pod资源被删除的原因。以上实例基于部署资源进行说明,应理解的是,守护集资源、有状态应用部署资源与Pod资源之间也存在着与上述实例相似的关联性。通过监听针对上述几种资源的资源事件,能获取到与Pod资源相关联的事件信息。在执行回溯时,能通过监听到的资源事件来反映Pod资源的变化。
进一步的,所述Kubernetes集群中的资源事件按照处理类型包括以下至少一项:资源添加事件、资源删除事件、资源修改事件。
对于不同类型资源的资源事件,监听的资源事件的类型也可以不同。举例而言,当资源事件是针对于Pod资源的资源事件时,监听的资源事件的类型可以包括添加事件、删除事件以及修改事件。当资源事件是针对于部署Deployment资源、守护集DaemonSet资源或者有状态应用部署SatefulSet资源时,监听的资源事件的类型可以包括添加事件以及删除事件。
在实际应用过程中,针对部署Deployment资源、守护集DaemonSet资源或者有状态应用部署SatefulSet资源的资源修改事件往往会触发Pod资源事件,因此,通过监听这三种资源的添加以及删除事件并监听Pod资源的添加、删除以及修改事件,就能全面监听Pod资源的变化,能够为Pod资源事件的回溯提供数据基础。在保证Pod资源回溯完整性的同时,由于不需要监听这三种资源的修改事件,所以能一定程度降低计算量。
在监听资源事件时,具体可以监听资源事件的多种相关信息,具体的,可以监听资源事件的以下至少一种信息:发起资源事件的时刻、资源事件所针对的资源类型、资源事件的事件类型、资源的名称或标识等。
其中,发起资源事件的时刻可以以时间戳timestamp的形式存储。资源事件所针对的资源类型ower_type可以包括部署Deployment资源、守护集DaemonSet资源、有状态应用部署SatefulSet资源或者Pod资源。资源事件的事件类型可以包括资源添加事件ADDED、资源删除事件DELETED、资源修改事件MODIFIED。资源的名称或标识over_name可以用于对同种或不同种类的资源进行标注区分。
以Pod资源事件为例,当监听到针对Pod资源的资源事件时,可以监听该Pod资源事件发起的时刻,生成时间戳。同时监听该Pod事件的相关信息,以生成资源事件信息进行存储。
以部署Deployment资源事件为例,当监听到针对部署Deployment资源的资源事件时,可以监听该部署Deployment资源事件发起的时刻,生成时间戳。同时监听该部署Deployment资源事件的相关信息,例如该部署Deployment资源事件发起前,部署Deployment资源中已经拥有的Pod信息,以生成资源事件信息进行存储。
为了便于存储,监听到的资源事件信息可以以表格的形式进行存储。举例而言,可以将资源事件所针对的资源分为两类,第一类资源包括部署Deployment资源、守护集DaemonSet资源、有状态应用部署SatefulSet资源,第二类资源包括Pod资源。实际应用中,可以以下表1形式进行存储,表1中F01~F07列共存储了7类与资源事件相关的信息,还可以根据需求增加或减少存储的内容:
表1
Figure BDA0002552682980000081
基于上述实施例提供的方案,可选的,如图2所示,上述步骤S12中,根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,包括以下步骤:
S121:根据监听到的发起所述资源事件的时刻生成时间戳;
S122:获取与所述资源事件针对的目标Pod资源相关联的监控信息和所述目标Pod资源相关联的容器日志;
S123:根据所述时间戳、所述监控信息和所述容器日志生成所述资源事件信息并存储。
在步骤S121中,根据资源事件发起的时刻生成时间戳,每个监听到的资源事件都对应于一个时间戳,该时间戳与该资源事件的其他信息对应存储,以便在回溯时确定资源事件是在什么时刻发起的。当存储有多条资源事件信息时,根据每条资源事件信息中的时间戳能体现出这些资源事件发起的先后顺序。
在步骤S122中,分别获取资源事件针对的目标Pod资源相关联的监控信息和目标Pod资源相关联的容器日志。
可选的,如图3所示,上述步骤S122中,获取与所述资源事件针对的目标Pod资源相关联的监控信息和所述目标Pod资源相关联的容器日志,包括:
S1221:通过所述资源事件所在节点获取所述资源事件针对的目标Pod资源的监控信息,所述监控信息用于表征所述目标Pod资源的运行状态。
具体的,可以通过Pod资源所在节点Node上安装的Node exporter程序,该程序可以为Prometheus的客户端,用于收集节点Node上面运行的Pod的监控信息,该监控信息例如可以包括Pod的CPU、内存、网络等信息,采集的信息可以与Pod ID关联存储在Prometheus中,以便通过Pod ID进行监控数据的检索。
基于上述实施例提供的方案,可选的,如图4所示,上述步骤S122中,获取与所述资源事件针对的目标Pod资源相关联的监控信息和所述目标Pod资源相关联的容器日志,包括:
S1222:通过所述目标Pod资源的描述信息获取所述目标Pod资源关联的容器ID;
S1223:根据与所述目标Pod资源关联的容器ID获取与所述目标Pod资源关联的容器日志Container log。
在每次创建Pod后,往往会创建与Pod对应的容器Container,通过Pod的描述信息可以直接查看到对应容器Container ID,此容器Container ID可以用来关联Pod与容器Container,从查找到对应的容器日志Container log。
具体的,可以使用日志收集系统Fluentd进行容器日志收集,并存储到分布式搜索引擎ElasticSearch中,通过Container ID可以进行容器日志的检索。
通过上述步骤S1221~S1223能实现监控信息和容器日志的获取,该监控信息和容器日志能用于在回溯某个时刻的Pod资源事件时,更完整地展现历史时刻的Pod的状态,便于查看分析故障原因。
在监听收集到资源事件信息之后,一旦接受到资源事件回溯请求,则可以从存储的资源事件信息中确定出需要回溯的目标资源事件信息。具体的,可以根据资源事件回溯请求中的目标回溯时段筛选存储的资源事件信息,根据存储的资源事件信息中的时间戳,将目标回溯时段内发起的资源事件的资源事件信息确定为目标资源事件信息。随后,可以根据这些目标资源事件信息回溯目标回溯时段内的资源事件,以便对历史发生的资源事件进行分析,确定Pod故障原因。
基于上述实施例提供的方案,可选的,所述资源事件回溯请求包括以下至少一种目标信息:目标资源事件的资源类型、目标资源事件的处理类型、目标资源事件的资源名称,如图5所示,上述步骤S13中,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,包括以下步骤:
S131:将存储的资源事件信息中所述目标回溯时段内发起的与所述目标信息相匹配的资源事件信息确定为所述目标资源事件信息。
当接收到资源事件回溯请求时,除了根据目标回溯时段筛选资源事件信息以外,还可以根据回溯请求中包含的其他信息对目标回溯时段内发起的资源事件的资源事件信息做进一步筛选。例如,当回溯请求中包括目标资源的类型为“部署Deployment资源”时,从目标回溯时段内发起的资源事件的资源事件信息中进一步筛选出针对于部署Deployment资源的资源事件信息,将目标回溯时段内发起的针对于部署Deployment资源的资源事件的资源事件信息确定为目标资源事件信息。
应理解的是,回溯请求中可以包括一种或多种目标信息,在确定目标资源事件信息的过程中,可以根据回溯请求中包含的一种或多种目标信息进行筛选,以确定需要回溯的资源事件。当目标回溯时段内发起的资源事件数量较多时,通过本申请实施例提供的方案能有针对性地对符合目标信息的资源信息进行回溯,能根据实际需求有针对性地进行回溯。
为了解决现有技术中存在的问题,如图6所示,本申请实施例还提供一种基于Kubernetes集群的资源事件回溯系统,包括:
回溯事件路由模块61,通过Kubernetes应用程序接口监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件,根据监听到的所述资源事件生成包含时间戳的资源事件信息并发送至Kafka队列,所述时间戳用于表征发起所述资源事件的时刻;
回溯队列消费者模块62,从所述Kafka队列获取所述资源事件信息并存储至MySQL数据库中;
回溯控制管理模块63,当接收到资源事件回溯请求时,从所述MySQL数据库存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
其中,资源事件可以通过Kubernetes API接入回溯事件路由模块Traceback-event-router,此模块可以采用Golang语言开发,用于按照预先设置的类型收集不同类别的事件,另外还可以执行格式化数据、分类汇总等处理步骤,随后可以将处理后的信息路由到Kafka不同的Topic上面,进行资源事件信息的发送。
回溯队列消费者模块Traceback-consume可以采用Golang语言开发,收到Kafka传递过来的消息后,分析处理格式化成Mysql数据库需要的数据格式,以按照统一的格式进行资源事件信息的存储。
回溯控制管理模块可以用于根据用户的回溯请求,查询Mysql、ElasticSearch以及Prometheus,并进行数据的整合和关联。以生成一个带时间序列的拓扑关系图展示给用户,以便用户通过时间轴上的各个时刻来查看相应时刻发起的资源事件,具体可以包括该时刻的业务Pod关系图、业务Pod信息、业务Pod中容器的日志信息、业务Pod的监控信息等。
下面举例说明本实施例提供的方案,Traceback-Controller接收到用户发送的回溯请求后,对回溯请求进行分析,确定该回溯请求中携带的要回溯的业务(Deployment、DaemonSet、SatefulSet三种类型的)名称和时间范围。例如:要回溯类型为Deployment的A业务,目标回溯时段为10:00到11:00。
Traceback-Controller根据上述目标时段和业务名称,到Mysql数据库检索相关信息,通过Mysql数据库字段timestamp和数据库字段ower_type找到对应时间段对应业务名称的数据。
基于Mysql数据库中检索到的数据确定pod_event字段含有业务Pod信息,再根据该Pod信息确定其中的Pod ID,并通过Pod ID去Prometheus中检索Pod对应的CPU、内存、网络等监控信息,生成监控数据。
基于Mysql数据库中检索到的数据确定其中pod_event字段含有的业务Pod信息,再根据Pod信息确定其中含有的Container ID,并通过Container ID去ElasticSearch中检索容器日志信息。
最终汇总查找到的上述信息,生成基于时间序列的数据,由前端进行渲染,以向用户展示回溯后的基于发起时间的资源事件,方便用户查看使用。在根据用户发送的回溯请求检索筛选目标资源事件信息时的逻辑拓扑关系图如图7所示。
具体的,展现给用户的界面可以如图8所示,在10:10的时候Deployment A可以看到有三个Node节点(Node 01、Node 02、Node 03)分别对应Pod 01、Pod 02、Pod 03,业务正常运行。
在10:30的时候Deployment A中对应Node 01故障下线,Pod的分布发生了变化。Node 02上面Pod没有发生变化,Node 03上面多了一个Pod 04。
此时用户想要知道10:30分钟之前Pod的信息,就可以直接回溯到10:10时分,查看Pod 01的所有关信息。
在10:50的时候Pod 03发送了三次重启,说明此Pod已经创建过了三个Container,用户可以回溯之前两个Container的所有相关信息,便于用户查找到Pod中Container被重启的原因。
由此可见,通过本申请实施例提供的方案,用户能方便快捷地查看历史时刻发起的资源事件,以便对发起的故障与错误进行分析排查。
为了解决现有技术中存在的问题,如图9所示,本申请实施例还提供一种电子设备90,包括:
监听模块91,监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
生成模块92,根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
确定模块93,当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
回溯模块94,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
在本申请提供的方案中,通过监听Kubernetes集群中的资源事件;根据监听到的资源事件生成包含时间戳的资源事件信息并存储;当接收到资源事件回溯请求时,从存储的资源事件信息中确定与资源事件回溯请求相关联的目标资源事件信息;根据目标资源事件信息回溯Kubernetes集群在目标回溯时段内发起的资源事件。本发明实施例的方案,能实现对历史资源事件的监听,并以资源事件信息的形式对资源事件进行存储,当接收到资源事件回溯请求时,能根据存储的资源事件信息对目标回溯时段内的资源事件实现回溯,便于进行故障分析排查。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种基于Kubernetes集群的资源事件回溯方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种基于Kubernetes集群的资源事件回溯方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (10)

1.一种基于Kubernetes集群的资源事件回溯方法,其特征在于,包括:
监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
2.如权利要求1所述的方法,其特征在于,所述Kubernetes集群中的资源事件按照资源类型包括以下至少一项:
部署Deployment资源事件、守护集DaemonSet资源事件、有状态应用部署SatefulSet资源事件、Pod资源事件;
所述Kubernetes集群中的资源事件按照处理类型包括以下至少一项:资源添加事件、资源删除事件、资源修改事件。
3.如权利要求1所述的方法,其特征在于,根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,包括:
根据监听到的发起所述资源事件的时刻生成时间戳;
获取与所述资源事件针对的目标Pod资源相关联的监控信息和所述目标Pod资源相关联的容器日志;
根据所述时间戳、所述监控信息和所述容器日志生成所述资源事件信息并存储。
4.如权利要求3所述的方法,其特征在于,获取与所述资源事件针对的目标Pod资源相关联的监控信息,包括:
通过所述资源事件所在节点获取所述资源事件针对的目标Pod资源的监控信息,所述监控信息用于表征所述目标Pod资源的运行状态。
5.如权利要求3所述的方法,其特征在于,获取所述目标Pod资源相关联的容器日志,包括:
通过所述目标Pod资源的描述信息获取所述目标Pod资源关联的容器ID;
根据所述目标Pod资源关联的容器ID获取所述目标Pod资源关联的容器日志Containerlog。
6.如权利要求2-5任一项所述的方法,其特征在于,所述资源事件回溯请求还包括以下至少一种目标信息:目标资源事件的资源类型、目标资源事件的处理类型、目标资源事件的资源名称,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,包括:
将存储的资源事件信息中所述目标回溯时段内发起的与所述目标信息相匹配的资源事件信息确定为所述目标资源事件信息。
7.一种基于Kubernetes集群的资源事件回溯系统,其特征在于,包括:
回溯事件路由模块,通过Kubernetes应用程序接口监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件,根据监听到的所述资源事件生成包含时间戳的资源事件信息并发送至Kafka队列,所述时间戳用于表征发起所述资源事件的时刻;
回溯队列消费者模块,从所述Kafka队列获取所述资源事件信息并存储至MySQL数据库中;
回溯控制管理模块,当接收到资源事件回溯请求时,从所述MySQL数据库存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
8.一种电子设备,其特征在于,包括:
监听模块,监听Kubernetes集群中的资源事件,所述资源事件包括与所述Kubernetes集群中的Pod资源相关联的事件;
生成模块,根据监听到的所述资源事件生成包含时间戳的资源事件信息并存储,所述时间戳用于表征发起所述资源事件的时刻;
确定模块,当接收到资源事件回溯请求时,从存储的资源事件信息中确定与所述资源事件回溯请求相关联的目标资源事件信息,所述资源事件回溯请求包括目标回溯时段,所述目标资源事件信息包括所述目标回溯时段内发起的资源事件的资源事件信息;
回溯模块,根据所述目标资源事件信息回溯所述Kubernetes集群在所述目标回溯时段内发起的资源事件。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
CN202010579584.8A 2020-06-23 2020-06-23 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备 Active CN111897625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010579584.8A CN111897625B (zh) 2020-06-23 2020-06-23 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010579584.8A CN111897625B (zh) 2020-06-23 2020-06-23 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备

Publications (2)

Publication Number Publication Date
CN111897625A true CN111897625A (zh) 2020-11-06
CN111897625B CN111897625B (zh) 2023-10-20

Family

ID=73206422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010579584.8A Active CN111897625B (zh) 2020-06-23 2020-06-23 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN111897625B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925695A (zh) * 2021-03-29 2021-06-08 浪潮云信息技术股份公司 一种自动化更新配置fluentd的配置文件的方法
CN113010385A (zh) * 2021-03-18 2021-06-22 山东英信计算机技术有限公司 一种任务状态更新方法、装置、设备及介质
CN113626286A (zh) * 2021-08-04 2021-11-09 北京汇钧科技有限公司 多集群实例处理方法、装置、电子设备及存储介质
CN113626054A (zh) * 2021-08-16 2021-11-09 聚好看科技股份有限公司 一种业务服务更新方法及装置
CN115391058A (zh) * 2022-08-05 2022-11-25 江苏安超云软件有限公司 一种基于sdn的资源事件处理方法、资源创建方法及系统
CN115623008A (zh) * 2022-11-14 2023-01-17 杭州谐云科技有限公司 一种Kubernetes资源的索引构建方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078490A1 (en) * 2009-09-30 2011-03-31 International Business Machines Corporation Svc cluster configuration node failover system and method
CN109828833A (zh) * 2018-11-02 2019-05-31 上海帆一尚行科技有限公司 一种神经网络训练任务的排队系统及其方法
CN109918268A (zh) * 2019-03-05 2019-06-21 北京达佳互联信息技术有限公司 系统兼容方法、装置、设备和计算机可读存储介质
CN110008286A (zh) * 2019-03-26 2019-07-12 华南理工大学 一种注塑成型装备大数据采集和存储系统及方法
US20190377656A1 (en) * 2018-06-11 2019-12-12 TmaxOS Co., Ltd. Integrated Management System for Container-Based Cloud Servers
CN111209118A (zh) * 2020-01-14 2020-05-29 北京三快在线科技有限公司 确定资源余量的方法、装置、存储介质和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078490A1 (en) * 2009-09-30 2011-03-31 International Business Machines Corporation Svc cluster configuration node failover system and method
US20190377656A1 (en) * 2018-06-11 2019-12-12 TmaxOS Co., Ltd. Integrated Management System for Container-Based Cloud Servers
CN109828833A (zh) * 2018-11-02 2019-05-31 上海帆一尚行科技有限公司 一种神经网络训练任务的排队系统及其方法
CN109918268A (zh) * 2019-03-05 2019-06-21 北京达佳互联信息技术有限公司 系统兼容方法、装置、设备和计算机可读存储介质
CN110008286A (zh) * 2019-03-26 2019-07-12 华南理工大学 一种注塑成型装备大数据采集和存储系统及方法
CN111209118A (zh) * 2020-01-14 2020-05-29 北京三快在线科技有限公司 确定资源余量的方法、装置、存储介质和电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵晓琴 等: "基于事件树的地理要素时空回溯", 地理信息世界, no. 06 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010385A (zh) * 2021-03-18 2021-06-22 山东英信计算机技术有限公司 一种任务状态更新方法、装置、设备及介质
CN113010385B (zh) * 2021-03-18 2022-10-28 山东英信计算机技术有限公司 一种任务状态更新方法、装置、设备及介质
US11915035B1 (en) 2021-03-18 2024-02-27 Shandong Yingxin Computer Technologies Co., Ltd. Task state updating method and apparatus, device, and medium
CN112925695A (zh) * 2021-03-29 2021-06-08 浪潮云信息技术股份公司 一种自动化更新配置fluentd的配置文件的方法
CN113626286A (zh) * 2021-08-04 2021-11-09 北京汇钧科技有限公司 多集群实例处理方法、装置、电子设备及存储介质
CN113626054A (zh) * 2021-08-16 2021-11-09 聚好看科技股份有限公司 一种业务服务更新方法及装置
CN115391058A (zh) * 2022-08-05 2022-11-25 江苏安超云软件有限公司 一种基于sdn的资源事件处理方法、资源创建方法及系统
CN115391058B (zh) * 2022-08-05 2023-07-25 安超云软件有限公司 一种基于sdn的资源事件处理方法、资源创建方法及系统
CN115623008A (zh) * 2022-11-14 2023-01-17 杭州谐云科技有限公司 一种Kubernetes资源的索引构建方法及系统
CN115623008B (zh) * 2022-11-14 2023-04-07 杭州谐云科技有限公司 一种Kubernetes资源的索引构建方法及系统

Also Published As

Publication number Publication date
CN111897625B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN111897625B (zh) 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备
US11177999B2 (en) Correlating computing network events
US11093374B2 (en) System and method for continuous testing and delivery of software
US7552447B2 (en) System and method for using root cause analysis to generate a representation of resource dependencies
CN110427299B (zh) 微服务系统应用的日志处理方法、相关设备及系统
US20030140150A1 (en) Self-monitoring service system with reporting of asset changes by time and category
US20120179816A1 (en) Managing captured network traffic data
US20140281760A1 (en) Management server, management system, and management method
CN107483567B (zh) 一种分布式日志搜索的方法及系统
US20100318859A1 (en) Production control for service level agreements
CN110990178A (zh) 关键字采集监控方法、装置、设备及计算机存储介质
WO2015187001A2 (en) System and method for managing resources failure using fast cause and effect analysis in a cloud computing system
US10915510B2 (en) Method and apparatus of collecting and reporting database application incompatibilities
US11240127B1 (en) Indicator tools
US10706108B2 (en) Field name recommendation
CN111628878A (zh) 基于多级网络节点的故障定位方法、装置及系统
CN108337100B (zh) 一种云平台监测的方法和装置
US10613954B1 (en) Testing framework for host computing devices
US10848371B2 (en) User interface for an application performance management system
CN111368039B (zh) 一种数据管理系统
CN114816914A (zh) 基于Kubernetes的数据处理方法、设备及介质
CN111698109A (zh) 监控日志的方法和装置
CN115729727A (zh) 故障修复方法、装置、设备及介质
CN116762057A (zh) 用于管理、部署和编排高度分布式服务应用程序的自动化平台
WO2021099774A1 (en) Server and application monitoring

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230316

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant after: Sina Technology (China) Co.,Ltd.

Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant before: Sina.com Technology (China) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant