System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及容器编排管理领域,尤其涉及一种节点故障处理方法和装置。
技术介绍
1、kubernetes(简称k8s)是一个开源的容器编排和管理平台,从架构中分为master节点和node节点,若干个节点组成一个集群。目前k8s对节点的检测,主要通过kubelet定期向api server上报节点运行状态(即心跳信号),以此来判断节点的活跃状态,若节点超过一段时间没有上报心跳信号,则将该节点标记为故障节点(或称为污点)。
2、但现有这种方式远远不能评估节点的健康情况。比如,节点ntp(network timeprotocol,网络时间协议)服务未启动、cpu、内存、磁盘损坏、内核死锁等。k8s服务组件并不会感知此类问题,导致pod仍然调度至故障节点的情况发生。
3、另外,k8s是一个功能强大但又非常复杂的容器平台,所以往往需要通过运维手段(在节点执行故障检查和恢复的脚本)以规避和恢复一些节点故障(比如清除deathcontainer)。但这种方式需要在每一节点执行脚本,不仅缺少规范性而且效率低不利于管理。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种节点故障处理方法和装置,至少能够解决现有技术中k8s对节点的检查远远不能评估节点的健康状况,且无法对节点的一些常见故障进行自愈,从而加大了运维故障检测的工作量,影响了集群的稳定性和可靠性的现象。
2、为实现上述目的,根据本专利技术实施例的一个方面,提供了一种节点故障处理方法,包括:
4、从节点检查组件中获取与每个检查项对应的配置信息,从配置信息中获取故障检测脚本路径,调用与故障检测脚本路径对应的故障检测脚本,以对所述每个节点的运行信息进行故障检测,得到检测结果;
5、在检测结果为不通过的情况下,从配置信息中获取故障自愈脚本路径,调用与故障自愈脚本路径对应的故障自愈脚本,以对所述每个节点执行故障自愈操作。
6、可选地,在检测结果为不通过的情况下,所述方法还包括:
7、确定所述每个节点出现故障,并根据检测结果为不通过的检查项确定故障类型;
8、响应于存在与所述每个节点和所有检查项对应的节点检查记录,若节点检查记录中存在与所述故障类型对应的故障记录,则将故障记录中的出现次数加1;或
9、若节点检查记录不存在与所述故障类型对应的故障记录,则确定所述每个节点为第一次出现与所述故障类型对应的故障,创建故障记录,并记录所述故障类型的第一次出现时间和当前出现次数;
10、响应于不存在与所述每个节点和所有检查项对应的节点检查记录,基于所述每个节点和所有检查项生成创建节点检查记录请求,通过节点检查组件将创建节点检查记录请求发送给通用服务接口,以接收通用服务接口返回的节点检查记录,在节点检查记录下创建故障记录,并记录所述故障类型的第一次出现时间和当前出现次数。
11、可选地,所述接收通用服务接口返回的节点检查记录,包括:
12、通用服务接口使用预设工具,根据所述每个节点和所有检查项,注册节点检查记录,以返回注册的节点检查记录。
13、可选地,在所述对所述每个节点执行故障自愈操作之后,所述方法还包括:
14、响应于配置信息中是否给节点打标污点的设置为开、且节点检查记录中的出现次数超过预设次数阈值,对所述每个节点打标污点。
15、可选地,配置信息还包括脚本调用时间;
16、所述调用与故障检测脚本路径对应的故障检测脚本,包括:按照脚本调用时间,定期调用与故障检测脚本路径对应的故障检测脚本;
17、在对所述每个节点执行故障自愈操作之后,所述方法还包括:
18、响应于自愈操作完成,在达到脚本调用时间时,重新调用故障检测脚本,以触发对所述每个节点的操作信息的再次故障检测操作;
19、响应于检测结果为通过,将节点检查记录中的当前检查项是否为通过的值更改为是,并将恢复时间设置为再次故障检测时间。
20、可选地,所述从配置信息中获取故障自愈脚本路径,包括:
21、响应于配置信息中启动自动修复设置为开,从配置信息中获取故障自愈脚本路径;
22、响应于配置信息中启动自动修复设置为关、或不存在故障自愈脚本路径、或不存在与故障自愈脚本路径对应的故障自愈脚本,在通知操作员设置为开的情况下,通过预先为操作员配置的通知方式,将故障通知传输给操作员。
23、可选地,在所述通过守护进程集方式,为每个节点部署节点检查组件之前,所述方法还包括:
24、接收为每个检查项配置的预设格式的配置信息,将配置信息转换为节点检查组件可识别的配置信息;以及
25、通过共享存储方式,将所有检查项的故障检测脚本的路径、故障自愈脚本的路径,挂载到节点检查组件的检查项的配置信息中。
26、为实现上述目的,根据本专利技术实施例的另一方面,提供了一种节点故障处理装置,包括:
27、初始化模块,用于通过守护进程集方式,为每个节点部署节点检查组件,以通过节点检查组件触发对每个节点的初始化操作,在初始化过程中获取每个节点下的所有检查项并启动;
28、检测模块,用于从节点检查组件中获取与每个检查项对应的配置信息,从配置信息中获取故障检测脚本路径,调用与故障检测脚本路径对应的故障检测脚本,以对所述每个节点的运行信息进行故障检测,得到检测结果;
29、自愈模块,用于在检测结果为不通过的情况下,从配置信息中获取故障自愈脚本路径,调用与故障自愈脚本路径对应的故障自愈脚本,以对所述每个节点执行故障自愈操作。
30、可选地,在检测结果为不通过的情况下,所述装置还包括节点检查记录模块,用于:
31、确定所述每个节点出现故障,并根据检测结果为不通过的检查项确定故障类型;
32、响应于存在与所述每个节点和所有检查项对应的节点检查记录,若节点检查记录中存在与所述故障类型对应的故障记录,则将故障记录中的出现次数加1;或
33、若节点检查记录不存在与所述故障类型对应的故障记录,则确定所述每个节点为第一次出现与所述故障类型对应的故障,创建故障记录,并记录所述故障类型的第一次出现时间和当前出现次数;
34、响应于不存在与所述每个节点和所有检查项对应的节点检查记录,基于所述每个节点和所有检查项生成创建节点检查记录请求,通过节点检查组件将创建节点检查记录请求发送给通用服务接口,以接收通用服务接口返回的节点检查记录,在节点检查记录下创建故障记录,并记录所述故障类型的第一次出现时间和当前出现次数。
35、可选地,所述节点检查记录模块,用于:
36、通用服务接口使用预设工具,根据所述每个节点和所有检查项,注册节点检查记录,本文档来自技高网...
【技术保护点】
1.一种节点故障处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在检测结果为不通过的情况下,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述接收通用服务接口返回的节点检查记录,包括:
4.根据权利要求2或3所述的方法,其特征在于,在所述对所述每个节点执行故障自愈操作之后,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,配置信息还包括脚本调用时间;
6.根据权利要求1所述的方法,其特征在于,所述从配置信息中获取故障自愈脚本路径,包括:
7.根据权利要求1所述的方法,其特征在于,在所述通过守护进程集方式,为每个节点部署节点检查组件之前,所述方法还包括:
8.一种节点故障处理装置,其特征在于,包括:
9.根据权利要求8所述的装置,其特征在于,在检测结果为不通过的情况下,所述装置还包括节点检查记录模块,用于:
10.根据权利要求9所述的装置,其特征在于,所述自愈模块,还用于:
11.根据权利要求9所述的装置,其特征在于
12.一种电子设备,其特征在于,包括:
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种节点故障处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在检测结果为不通过的情况下,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述接收通用服务接口返回的节点检查记录,包括:
4.根据权利要求2或3所述的方法,其特征在于,在所述对所述每个节点执行故障自愈操作之后,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,配置信息还包括脚本调用时间;
6.根据权利要求1所述的方法,其特征在于,所述从配置信息中获取故障自愈脚本路径,包括:
7.根据权利要求1所述的方法,其特征在于,在所述通过守护进程集方式,为每个节点部署节点检查组件之前,所述方法还包...
【专利技术属性】
技术研发人员:谢耀烟,赖鑫,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。