首页 / 一种k8s工作负载可用性检测方法及系统

一种k8s工作负载可用性检测方法及系统实质审查 发明

技术领域

[0001] 本发明属于云计算领域,尤其涉及一种k8s工作负载可用性检测方法及系统。

相关背景技术

[0002] 针对边缘计算场景下,k8s集群可能由于不可抗力导致组件异常,基于监控只能发现pod是否重启、deployment或daemonset副本数不足等事件,但无法统计到某个组件的可用性情况,为了打造高可用的边缘平台,k8s工作负载的可用性检测系统非常必要。本发明提供的方案,能够按需要扩展,对deployment、daemonset等常用工作负载的可用性进行检测。

具体实施方式

[0039] 下面结合附图对本发明的技术方案做进一步的详细说明:
[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0042] 本发明一种k8s工作负载可用性检测方法及系统,通过计算各个工作负载的MTBF和MTTR,MTBF(Mean Time Between Failures)为系统运行时长,MTTR(Mean Time to Repaire)为系统异常工作时长。为相应的k8s组件提供可用性的数据,帮助检测和优化k8s集群中各工作负载的可用性,减少甚至消除因服务不可用导致的赔偿,保障服务质量,提升用户满意度和忠诚度。
[0043] 如图1所示,本发明将k8s集群的工作负载可用性检测抽象为5个模块,分别为:时钟自动刷新模块、工作负载监控模块,可用性资源管理模块、可用性计算模块、以及展示视图模块。
[0044] 其中,可用性管理模块:负责管理可用性指标的定义形式,以及可用性指标的生命周期的管理,包含工作负载可用性的定义、创建、删除、更新。
[0045] 工作负载监控模块:负责对工作负载的状态进行监控,根据并将监控结果汇报给计算模块进行计算。
[0046] 时钟自动刷新模块:负责对可用性指标的数值进行周期更新。
[0047] 可用性计算模块:负责接收工作负载监控模块以及时钟自动刷新模块的信号,进行可用性的计算,并将结果推送给可用性管理模块进行更新。
[0048] 展示视图模块:负责接收可用性计算模块的数据同时对工作负载的可用性数据进行实时的展示。
[0049] 具体实现过程如图2,流程如下:
[0050] 首先进行可用性指标的定义,对于某时间段内可用性可以用如下公式来进行计算,当检测到有相应的资源存在时,创建可用性指标,
当该种资源被删除时,删除可用性指标。
[0051] 当工作负载监控模块监控到相应工作负载的状态发生改变时,将信号传递给计算模块进行计算。计算模块首先判断是否正常工作,正常工作记录下当前时间戳t1,同时更新MTTR,异常工作记录下当前时间戳t2,同时更新正常工作时长MTBF,最后采用可用性计算公式进行可用性的计算。
[0052] 计算完成后,将时间戳,MTTR,MTBF,Avalibility的相应资源上报可用性指标管理模块进行更新。可用性管理模块将数据展示接口进行暴露给展示视图模块,提供集群维度和组件维度的工作负载的可用性展示。
[0053] 工作负载监控模块采用的是事件触发,只有工作负载状态发生改变时才去计算更新可用性,这样存在一定的滞后性,时钟自动刷新模块,采用定时器周期性的对工作负载进行检测,并将结果上报给计算模块,如果工作负载正常,计算模块将对MTBF的值并进行累加更新,如果工作负载异常,计算模块则对MTTR的值进行累加更新,最后重新计算可用性,使得可用性计算结果更加准确。
[0054] 实施例一:
[0055] 在k8s系统中,当创建deployment资源时,可用性检测系统的各组件的实施情况如下。
[0056] 可用性管理模块的实施:采用相应的监听手段来监听deployment工作负载的创建,删除,更改动作,当该工作负载进行创建,删除,调用k8s的API接口来进行可用性资源的创建,删除,当可用性计算模块计算数值后进行数值更新。
[0057] 工作负载监控模块的实施:创建deployment时,k8s会根据deployment所指定的副本数进行工作负载的创建,表现形式是创建相应数目的pod进行工作。
[0058] deployment是并行系统,当所有的pod中只要有1个是正常工作的,即认为系统正常。工作负载监控模块会监听所有工作负载pod的状态,当pod有状态变更时,检测pod的状态是否为Running,如果是Running则根据标签选择器来判断该工作负载所对应的可用性资源正常。如果该deployment所控制的所有pod的状态都是非Running,则认为工作负载异常。发信号给可用性计算模块。
[0059] 时钟自动刷新模块的实施:根据定时器所设定的时间,每隔一个小时周期性的刷新定时时钟信号,当时钟信号到来的时候,首先查找所有可用性资源所对应的工作负载工作是否正常,发信号给可用性计算模块。
[0060] 可用性计算模块的实施:首先判断信号来源,如果信号来自于工作负载监控模块,系统正常工作,记录下当前时间戳t1为最新正常工作时间戳,同时计算MTTR,计算方式为MTTR+(t1‑t2),t2为最新异常工作时间戳。
[0061] 如果该deployment所控制的所有pod处于工作异常状态,则异常工作记录下当前时间戳t2为最新异常工作时间戳,同时更新正常工作时长MTBF。计算方式为MTBF+(t2‑t1)。
[0062] 如果信号来自于时钟自动刷新模块,如果是正常的(有一个工作负载pod是Running即可),则更新计算正常工作时长MTBF,计算方式为MTBF+(t‑t1),t为当前时间戳,同时记录更新当前正常工作时间戳为最新正常工作时间戳t1,否则,更新计算异常工作时长MTTR,计算方式为MTTR+(t‑t2),t为当前时间戳,同时记录更新当前时间戳为最新异常工作时间戳t2,最后由计算公式 进行可用性的计算。
[0063] 实施例二:
[0064] 在k8s系统中,当创建daemonset资源时,可用性检测系统的各组件的实施情况如下。
[0065] 可用性管理模块的实施:采用相应的监听手段来监听daemonset资源的创建,删除,更改动作,当该资源进行创建,删除,调用k8s的API接口来进行可用性资源的创建,删除,当可用性计算模块计算数值后进行数值更新。
[0066] 工作负载监控模块的实施:创建daemonset时,k8s会根据daemonset资源模板在每一个节点上面创建一个pod进行工作。
[0067] daemonset是串行系统,所有pod的可用性都会首先记录在哈希表中,哈希表的键是节点名称和工作负载名称,值为可用性计算模块计算的可用性数值,MTTR和MTBF结构体。
[0068] 工作负载监控模块会监听所有工作负载pod的状态,当pod有状态变更时,检测pod的状态是否为Running,如果是Running,则根据标签选择器来判断该工作负载所对应的可用性资源正常。如果该daemonset所控制pod的状态有一个是非Running状态,则认为工作负载异常。发信号给可用性计算模块。
[0069] 时钟自动刷新模块的实施:根据定时器所设定的时间,每隔一个小时周期性的刷新定时时钟信号,当时钟信号到来的时候,查找所有可用性资源所对应的每一个工作负载工作是否正常,发信号给可用性计算模块。
[0070] 可用性计算模块的实施:首先判断信号来源,如果信号来自于工作负载监控模块,单独监听每一个daemonset的pod的变化,创建哈希表对每个pod的MTTR和MTBF以及可用性值进行计算更新。
[0071] 当任意pod的状态出现异常的时候,记录下这个pod的当前时间戳t1为最新正常工作时间戳,同时计算MTTR,存入该pod的哈希表中,计算方式为MTTR+(t1‑t2),t2为该pod最新异常工作时间戳。
[0072] 如果该daemonset所控制的任意pod处于工作异常状态,则异常工作记录下当前时间戳t2为该pod最新异常工作时间戳,同时更新正常工作时长MTBF。存入该pod的哈希表中,计算方式为MTBF+(t2‑t1)。
[0073] 如果信号来自于时钟自动刷新模块,如果pod状态是正常的,则更新计算正常工作时长MTBF,计算方式为MTBF+(t‑t1),t为当前时间戳,同时记录更新当前正常工作时间戳为最新正常工作时间戳t1,否则,更新计算异常工作时长MTTR,计算方式为MTTR+(t‑t2),t为当前时间戳,同时记录更新当前时间戳为最新异常工作时间戳t2,最后由计算公式进行可用性的计算。并将结果存在该pod的可用性哈希表中。
[0074] 最后对于daemonset资源,该资源的可用性最终计算方式为各个节点pod的可用性指标的平均值。
[0075] 通过工作负载状态变化来作为事件触发,计算可用性,能更准确的反应集群工作负载的可用性变化。通过时钟周期性的刷新,能保证工作负载没有状态变化时,依然能够得到最新的可用性结果,使结果更具有科学性。
[0076] 支持各种工作负载的动态扩展,方便具有普适性。
[0077] 本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内本实施例中的所有技术特征均可根据实际需要而进行自由组合。
[0078] 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页 第1页 第2页 第3页
相关技术
工作负载相关技术
方法系统相关技术
刘人彰发明人的其他相关专利技术