System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机应用,特别是涉及一种故障恢复方法、装置、设备及可读存储介质。
技术介绍
1、在k8s(kubernetes,一种开源的容器编排系统)集群中,k8s控制节点管理着多个工作节点组成集群,控制节点通过k8s控制网络和工作节点连通,对工作节点上的pod(k8s管理的最小单位级,一个或多个容器的组合)进行管理,在工作节点上能够创建和删除pod,控制应用的启动和删除。应用pod运行在工作节点上,通过存储网络连接到存储,使用存储上的卷作为持久卷。
2、当工作节点变得不可访问时,控制节点会将故障节点上的pod进行驱逐,并设置该pod为终止(terminating)状态。由于该pod不是因为任务执行完毕而删除,因而,控制节点观察到pod异常,会在不同的节点上创建新的pod实例,重新挂载持久卷。但是,在实际实施时,往往存在无法成功创建该pod。
3、综上所述,如何有效地解决故障后对pod的重建恢复等问题,是目前本领域技术人员急需解决的技术问题。
技术实现思路
1、本申请的目的是提供一种故障恢复方法、装置、设备及可读存储介质,能够成功重建pod,解决故障恢复问题。
2、为解决上述技术问题,本申请提供如下技术方案:
3、一种故障恢复方法,包括:
4、对工作节点进行状态监测;
5、在监测到故障节点的情况下,获取所述故障节点的卷挂载信息;
6、调用容器存储接口,基于所述卷挂载信息,卸载存储上所述故障节点使用卷的
7、删除与所述卷挂载信息对应持久卷的卷挂载资源和所述故障节点的pod资源;
8、在正常运行的工作节点上重建所述故障节点中的pod。
9、优选地,还包括:
10、对所述工作节点中的pod进行监控,确定出待卸载的目标pod;
11、获取所述目标pod对应的目标卷挂载信息;
12、调用所述容器存储接口,并基于所述目标卷挂载信息,对所述目标pod进行卸载。
13、优选地,所述调用所述容器存储接口,并基于所述目标卷挂载信息,对所述目标pod进行卸载,包括:
14、利用所述目标卷挂载信息,确定所述目标pod在存储上使用卷的目标挂载点;
15、利用所述目标卷挂载信息,确定所述目标pod对应持久卷的卷挂载资源和目标pod资源;
16、调用所述容器存储接口,卸载存储上所述目标挂载点;
17、删除所述目标卷挂载资源和所述目标pod资源;
18、在完成所述目标pod卸载后,还包括:
19、若因所述目标pod中存在处于关机状态的容器,所述目标pod存在存储io错误或所述目标pod为待迁移pod而卸载所述目标pod,则从所述目标pod原所所在工作节点之外的其他工作节点中选出重建节点;
20、利用所述目标卷挂载信息,在所述重建节点上重建所述目标pod;
21、完成所述目标pod重建后,利用重建后的目标pod继续处理任务。
22、优选地,对所述工作节点中的pod进行监控,确定出待卸载的目标pod,包括:
23、若检测到pod中存在处于关机状态的容器,则将该pod确定为所述目标pod;
24、若检测到存储io错误,则将对应的pod确定为所述目标pod;
25、若所述工作节点的io延迟等级处于预设pod迁移等级,则从所述工作节点中选出待迁移pod,并将所述待迁移pod确定为所述目标pod。
26、优选地,从所述工作节点中选出待迁移pod,包括:
27、按照所述工作节点的io延迟等级与运行pod数量的映射关系,确定所述工作节点中保留pod数;
28、获取所述工作节点的pod总数;
29、计算所述pod总数与所述保留pod数的差值;
30、从所述工作节点中选出与数量为所述差值的待迁移pod。
31、优选地,确定所述工作节点的io延迟等级,包括:
32、定期调用所述容器存储接口获取指定时长对应的存储io延时;
33、利用所述存储io延时计算平均io延时;
34、在预设统计时长范围内,基于所述平均io延时计算每分钟的增长量和最大值;
35、利用所述增长量和所述最大值与存储io延迟阈值进行比对;
36、利用比对结果,确定所述io延迟等级。
37、优选地,还包括:
38、获取所述工作节点与存储网络的连接状态;
39、将所述连接状态为断开的工作节点确定为离线节点;
40、在所述离线节点与所述存储网络断开连接的情况下,调用所述容器存储接口,卸载所述离线节点中pod使用的持久卷挂载点;
41、卸载并删除卷的目标路径;
42、调用所述容器存储节点,卸载所述离线节点上持久卷挂载点。
43、一种故障恢复装置,包括:
44、状态检测单元,用于对工作节点进行状态监测;
45、挂载信息获取单元,用于在监测到故障节点的情况下,获取所述故障节点的卷挂载信息;
46、卸载单元,用于调用容器存储接口,基于所述卷挂载信息,卸载存储上所述故障节点使用卷的挂载点,并断开存储上的存储卷与所述故障节点的连接;删除与所述卷挂载信息对应持久卷的卷挂载资源和所述故障节点的pod资源;
47、重建单元,用于在正常运行的工作节点上重建所述故障节点中的pod。
48、一种电子设备,包括:
49、存储器,用于存储计算机程序;
50、处理器,用于执行所述计算机程序时实现上述故障恢复方法的步骤。
51、一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述故障恢复方法的步骤。
52、应用本申请实施例所提供的方法,对工作节点进行状态监测;在监测到故障节点的情况下,获取故障节点的卷挂载信息;调用容器存储接口,基于卷挂载信息,卸载存储上故障节点使用卷的挂载点,并断开存储上的存储卷与故障节点的连接;删除与卷挂载信息对应持久卷的卷挂载资源和故障节点的pod资源;在正常运行的工作节点上重建故障节点中的pod。
53、在重建故障节点的pod之前,首先获取该故障节点的卷挂载信息,然后,基于该卷挂载信息将卸载存储上故障节点使用卷的挂载点,并断开存储上的存储卷与故障节点的连接,删除与卷挂载信息对应持久卷的卷挂载资源和故障节点的pod资源。也就是说,在对pod进行重建之前,先把控制节点和存储上关于pod的挂载和资源分配进行清理,从而避免在重建故障节点中的pod时,原pod的挂载与资源占用,导致重建pod无法实现挂载和资源分配。如此,便可有效提高pod的重建恢复成功率。
54、相应地,本申请实施例还提供本文档来自技高网...
【技术保护点】
1.一种故障恢复方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,所述调用所述容器存储接口,并基于所述目标卷挂载信息,对所述目标pod进行卸载,包括:
4.根据权利要求2所述的方法,其特征在于,对所述工作节点中的pod进行监控,确定出待卸载的目标pod,包括:
5.根据权利要求4所述的方法,其特征在于,从所述工作节点中选出待迁移pod,包括:
6.根据权利要求4所述的方法,其特征在于,确定所述工作节点的IO延迟等级,包括:
7.根据权利要求1至6任一项所述的方法,其特征在于,还包括:
8.一种故障恢复装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述故障恢复方法的步骤。
【技术特征摘要】
1.一种故障恢复方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,所述调用所述容器存储接口,并基于所述目标卷挂载信息,对所述目标pod进行卸载,包括:
4.根据权利要求2所述的方法,其特征在于,对所述工作节点中的pod进行监控,确定出待卸载的目标pod,包括:
5.根据权利要求4所述的方法,其特征在于,从所述工作节点中选出待迁移p...
【专利技术属性】
技术研发人员:王一杰,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。