用于检测k8s节点故障的方法和系统技术方案

技术编号:37500305 阅读:20 留言:0更新日期:2023-05-07 09:36
本发明专利技术提供了一种用于检测k8s节点故障的方法和系统,包括:步骤S0:部署Driver组件、Exporter组件、Detectors组件;Driver组件为整体驱动层,根据配置调用Detectors组件,将检测结果通过配置的Exporter组件上报;Exporter组件为故障上报层,负责故障的对外暴露;Detectors组件为故障检测层,负责故障的检测;在k8s集群中部署Detectors组件;一旦监控器检测到故障,Driver组件通过配置的上报机制,调用Exporter组件将故障上报给管理上层。本发明专利技术可以解决node故障对管理上层不可见问题,继而可以配合一些补救系统做相应的处理。可以配合一些补救系统做相应的处理。可以配合一些补救系统做相应的处理。

【技术实现步骤摘要】
用于检测k8s节点故障的方法和系统


[0001]本专利技术涉及故障检测
,具体地,涉及用于检测k8s节点故障的方法和系统。

技术介绍

[0002]k8s集群是运行在一组集群上的,有大量的node问题可能会影响运行在其上的业务,如硬件故障、内核故障、基础服务故障等,然而目前这些问题对集群的管理上层是不可见的,此时k8s调度器可以继续将pod调度到有问题的node上,对更多业务造成影响。

技术实现思路

[0003]针对现有技术中的缺陷,本专利技术的目的是提供一种用于检测k8s节点故障方法和系统。
[0004]根据本专利技术提供的一种用于检测k8s节点故障的方法,包括:
[0005]步骤S0:部署Driver组件、Exporter组件、Detectors组件;Driver组件为整体驱动层,根据配置调用Detectors组件,将检测结果通过配置的Exporter组件上报;Exporter组件为故障上报层,负责故障的对外暴露;Detectors组件为故障检测层,负责故障的检测;
[0006]步骤S1:在k8s集群中部署Detectors组件;
[0007]步骤S2:一旦Detectors组件检测到故障,Driver组件通过配置的上报机制,调用Exporter组件将故障上报给管理上层。
[0008]优选地,Exporter组件包括:向kube

apiserver上报Event和NodeConditions的KubeExporter组件、向Prometheus提供了数据接口的PrometheusExporter组件、支持用户自定义向特定服务端上报故障的CustomExporter组件;
[0009]Detectors组件包括:系统日志监控组件SystemLogMonitor、服务健康状态监控组件HealthChecker、用户自定义的监控组件CustomPluginMonitor。
[0010]优选地,故障上报直接使用k8s原生接口上报给apiserver;通过监控系统日志实时发现故障,或者设置自定义检测时间间隔缩短发现故障时间,自定义检测时间间隔小于3分钟;允许用户通过任何编程语言实现自己的检测程序或脚本,只需按照插件定义的规范,用执行返回的状态码表示是否有故障,用标准输出内容表示故障详细信息,作为自定义插件。
[0011]优选地,所述步骤S1包括:
[0012]步骤S1.1:Driver组件启动后,根据配置为每一个系统日志文件启动一个监控协程,在监控协程中为日志文件创建一个文件监控器,然后开始监听日志文件的变化;同时为每个用户自定义检测配置启动一个协程,在协程中按照配置的频率调用监控命令;最后启动Exporter组件,然后开始监听一个故障消息队列;其中,通过命令行参数配置系统日志文件监控、用户自定义检测组件;
[0013]所述步骤S2包括:
[0014]步骤S2.1:一旦文件发生变化,将日志文件追加的内容作为一个消息发送到一个追加内容管道中,使得消费者能够获得本次日志文件追加的内容;其中,所述消费者是指监听追加内容管道中消息的日志文件的监控协程;
[0015]步骤S2.2:将追加内容放入到一个环形缓冲区ringbuffer中,和之前追加的日志结合,追加后用环形缓冲区中的完整内容和配置的规则逐一进行正则匹配计算;
[0016]步骤S2.3:一旦有配置的规则与缓冲区中的内容相匹配,则判断故障类型,然后创建对应的event或者NodeCondition,并发送到上报故障消息队列中;其中,定期调用用户自定义的检测组件的配置,调用时按配置的规则逐一检测,一旦调用返回状态值不为0,那么认为出现了对应的故障,生成一个故障消息,并将故障消息发送到故障消息队列中;
[0017]步骤S2.4:Driver组件从上报故障消息队列收到故障消息,然后调用Exporter组件将故障向外发送。
[0018]根据本专利技术提供的一种用于检测k8s节点故障的系统,包括:
[0019]模块M0:部署Driver组件、Exporter组件、Detectors组件;Driver组件为整体驱动层,根据配置调用Detectors组件,将检测结果通过配置的Exporter组件上报;Exporter组件为故障上报层,负责故障的对外暴露;Detectors组件为故障检测层,负责故障的检测;
[0020]模块M1:在k8s集群中部署Detectors组件;
[0021]模块M2:一旦Detectors组件检测到故障,Driver组件通过配置的上报机制,调用Exporter组件将故障上报给管理上层。
[0022]优选地,Exporter组件包括:向kube

apiserver上报Event和NodeConditions的KubeExporter组件、向Prometheus提供了数据接口的PrometheusExporter组件、支持用户自定义向特定服务端上报故障的CustomExporter组件;
[0023]Detectors组件包括:系统日志监控组件SystemLogMonitor、服务健康状态监控组件HealthChecker、用户自定义的监控组件CustomPluginMonitor。
[0024]优选地,故障上报直接使用k8s原生接口上报给apiserver;通过监控系统日志实时发现故障,或者设置自定义检测时间间隔缩短发现故障时间,自定义检测时间间隔小于3分钟;允许用户通过任何编程语言实现自己的检测程序或脚本,只需按照插件定义的规范,用执行返回的状态码表示是否有故障,用标准输出内容表示故障详细信息,作为自定义插件。
[0025]优选地,所述模块M1包括:
[0026]模块M1.1:Driver组件启动后,根据配置为每一个系统日志文件启动一个监控协程,在监控协程中为日志文件创建一个文件监控器,然后开始监听日志文件的变化;同时为每个用户自定义检测配置启动一个协程,在协程中按照配置的频率调用监控命令;最后启动Exporter组件,然后开始监听一个故障消息队列;其中,通过命令行参数配置系统日志文件监控、用户自定义检测组件;
[0027]所述模块M2包括:
[0028]模块M2.1:一旦文件发生变化,将日志文件追加的内容作为一个消息发送到一个追加内容管道中,使得消费者能够获得本次日志文件追加的内容;其中,所述消费者是指监听追加内容管道中消息的日志文件的监控协程;
[0029]模块M2.2:将追加内容放入到一个环形缓冲区ringbuffer中,和之前追加的日志
结合,追加后用环形缓冲区中的完整内容和配置的规则逐一进行正则匹配计算;
[0030]模块M2.3:一旦有配置的规则与缓冲区中的内容相匹配,则判断故障类型,然后创建对应的event或者NodeCondition,并发送到上报故障消息队列中;其中,定期调用用户自定义的检测组件的配置,调用时按配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于检测k8s节点故障的方法,其特征在于,包括:步骤S0:部署Driver组件、Exporter组件、Detectors组件;Driver组件为整体驱动层,根据配置调用Detectors组件,将检测结果通过配置的Exporter组件上报;Exporter组件为故障上报层,负责故障的对外暴露;Detectors组件为故障检测层,负责故障的检测;步骤S1:在k8s集群中部署Detectors组件;步骤S2:一旦Detectors组件检测到故障,Driver组件通过配置的上报机制,调用Exporter组件将故障上报给管理上层。2.根据权利要求1所述的用于检测k8s节点故障的方法,其特征在于,Exporter组件包括:向kube

apiserver上报Event和NodeConditions的KubeExporter组件、向Prometheus提供了数据接口的PrometheusExporter组件、支持用户自定义向特定服务端上报故障的CustomExporter组件;Detectors组件包括:系统日志监控组件SystemLogMonitor、服务健康状态监控组件HealthChecker、用户自定义的监控组件CustomPluginMonitor。3.根据权利要求2所述的用于检测k8s节点故障的方法,其特征在于,故障上报直接使用k8s原生接口上报给apiserver;通过监控系统日志实时发现故障,或者设置自定义检测时间间隔缩短发现故障时间,自定义检测时间间隔小于3分钟;允许用户通过任何编程语言实现自己的检测程序或脚本,只需按照插件定义的规范,用执行返回的状态码表示是否有故障,用标准输出内容表示故障详细信息,作为自定义插件。4.根据权利要求3所述的用于检测k8s节点故障的方法,其特征在于,所述步骤S1包括:步骤S1.1:Driver组件启动后,根据配置为每一个系统日志文件启动一个监控协程,在监控协程中为日志文件创建一个文件监控器,然后开始监听日志文件的变化;同时为每个用户自定义检测配置启动一个协程,在协程中按照配置的频率调用监控命令;最后启动Exporter组件,然后开始监听一个故障消息队列;其中,通过命令行参数配置系统日志文件监控、用户自定义检测组件;所述步骤S2包括:步骤S2.1:一旦文件发生变化,将日志文件追加的内容作为一个消息发送到一个追加内容管道中,使得消费者能够获得本次日志文件追加的内容;其中,所述消费者是指监听追加内容管道中消息的日志文件的监控协程;步骤S2.2:将追加内容放入到一个环形缓冲区ringbuffer中,和之前追加的日志结合,追加后用环形缓冲区中的完整内容和配置的规则逐一进行正则匹配计算;步骤S2.3:一旦有配置的规则与缓冲区中的内容相匹配,则判断故障类型,然后创建对应的event或者NodeCondition,并发送到上报故障消息队列中;其中,定期调用用户自定义的检测组件的配置,调用时按配置的规则逐一检测,一旦调用返回状态值不为0,那么认为出现了对应的故障,生成一个故障消息,并将故障消息发送到故障消息队列中;步骤S2.4:Driver组件从上报故障消息队列收到故障消息,然后调用Exporter组件将故障向外发送。5.一种用于检测k8s节点故障的系统,其特征在于,包括:模块M0:部署Driver组件、Exporter组件、Detectors组件;Driver组件为整体驱动层,...

【专利技术属性】
技术研发人员:郭进詹赵林王畅王浩文张绍兴聂子璇王汝珅王鑫孙佳明刘清
申请(专利权)人:兴业数字金融服务上海股份有限公司
类型:发明
国别省市:

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

1