状态检测方法、主节点和集群管理系统与流程

文档序号:18884994发布日期:2019-10-15 20:45阅读:115来源:国知局
状态检测方法、主节点和集群管理系统与流程

本申请涉及集群管理技术领域,具体而言,涉及一种状态检测方法、主节点和集群管理系统。



背景技术:

kubernetes是一种容器编排引擎,用于在集群管理系统中构建容器管理平台。其中,集群管理系统包括主节点(masternode)和从节点(slavenode),且从节点通过定期向主节点发送心跳数据以上报自身状态。

如图1所示,是一种常见的主从节点交互示意图。其中,在预设时间间隔内,若主节点中用于对从节点的生命周期进行管理的生命周期管理组件(node-lifecycle-controller)未接收到从节点的kubelet组件的心跳数据,会判定该从节点存在故障,并驱逐该从节点上的所有pod实例,然后,在其它健康的从节点上对该pod实例进行重启创建。

经发明人研究发现,在现有技术中,在网络不稳定时,主节点也难以有效地接收到从节点发送的心跳数据,从而导致出现从节点存在故障的误判断的问题,进而可能导致如下问题:

1)中断被驱逐的pod实例正在运行的服务,降低服务的稳定性;

2)被驱逐的pod实例在其它健康的从节点上重启创建,会导致该从节点的负载提升,从而导致集群雪崩;

3)在从节点资源的缺乏的情况下,会导致被驱逐的pod实例无法在其它健康的从节点上被重启创建,从而导致服务终止。



技术实现要素:

有鉴于此,本申请的目的在于提供一种状态检测方法、主节点和集群管理系统,以改善现有技术中在对kubelet组件是否处于故障状态进行判断时容易出现误判断的问题。

为实现上述目的,本申请实施例采用如下技术方案:

一种状态检测方法,包括:

在预设时间内未收到kubelet组件发送的心跳数据时,对该kubelet组件进行健康探测,得到该kubelet组件的健康信息;

根据所述健康信息判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述状态检测方法中,还包括:

在根据所述健康信息判定所述kubelet组件处于故障状态时,通过探测节点获取本地探测组件对所述kubelet组件进行健康探测得到的探测结果;

根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述状态检测方法中,还包括:

在根据所述健康信息判定所述kubelet组件处于故障状态时,通过探测节点获取本地探测组件对所述kubelet组件进行健康探测和状态探测得到的探测结果和状态信息;

根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。

本申请实施例还提供另一种状态检测方法,应用于集群管理系统中的主节点,所述集群管理系统还包括与所述主节点通信连接的从节点,所述从节点包括kubelet组件,所述主节点包括生命周期管理组件和健康探测组件,所述状态检测方法包括:

所述生命周期管理组件在预设时间内未收到所述kubelet组件发送的心跳数据时,向所述健康探测组件发送触发指令;

所述健康探测组件在接收到所述触发指令时,对所述kubelet组件进行健康探测,并将得到的该kubelet组件的健康信息发送给所述生命周期管理组件;

所述生命周期管理组件根据所述健康信息判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述状态检测方法中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件,所述状态检测方法还包括:

在根据所述健康信息判定所述kubelet组件处于故障状态时,所述健康探测组件从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,其中,所述探测结果通过所述本地探测组件对所述kubelet组件进行健康探测得到并发送给所述探测节点;

所述生命周期管理组件根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述状态检测方法中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件,所述状态检测方法还包括:

在根据所述健康信息判定所述kubelet组件处于故障状态时,所述健康探测组件从所述探测节点获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件,其中,所述探测结果和状态信息通过所述本地探测组件对所述kubelet组件进行健康探测和状态探测得到并发送给所述探测节点;

所述生命周期管理组件根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述状态检测方法中,还包括:

所述生命周期管理组件在判定所述kubelet组件未处于故障状态时,判定所述主节点和所述从节点之间存在网络异常。

本申请实施例还提供了一种主节点,应用于集群管理系统,该集群管理系统还包括与所述主节点通信连接的从节点,该从节点包括kubelet组件,所述主节点包括生命周期管理组件和健康探测组件,其中:

所述生命周期管理组件用于在预设时间内未收到所述kubelet组件发送的心跳数据时,触发所述健康探测组件对所述kubelet组件进行健康探测,以获取该kubelet组件的健康信息,并根据该健康信息判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述主节点中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件;

所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,其中,所述探测结果通过所述本地探测组件对所述kubelet组件进行健康探测得到并发送给所述探测节点;

所述生命周期管理组件还用于根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述主节点中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件;

所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,从所述探测节点获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件,其中,所述探测结果和状态信息通过所述本地探测组件对所述kubelet组件进行健康探测和状态探测得到并发送给所述探测节点;

所述生命周期管理组件还用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。

本申请实施例还提供了一种集群管理系统,包括主节点和与该主节点通信连接的从节点,所述主节点包括生命周期管理组件和健康探测组件,所述从节点包括kubelet组件,其中:

所述kubelet组件用于每间隔预设时间向所述生命周期管理组件发送心跳数据;

所述生命周期管理组件用于在预设时间内未收到所述kubelet组件发送的心跳数据时,触发所述健康探测组件对所述kubelet组件进行健康探测,以获取该kubelet组件的健康信息,并根据该健康信息判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述集群管理系统中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件;

所述本地探测组件用于对所述kubelet组件进行健康探测,并将得到的探测结果发送给所述探测节点;

所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,从所述探测节点获取所述探测结果,并将该探测结果发送给所述生命周期管理组件;

所述生命周期管理组件还用于根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。

在本申请实施例较佳的选择中,在上述集群管理系统中,所述主节点和所述从节点分别与所述集群管理系统外的探测节点通信连接,所述从节点还包括本地探测组件;

所述本地探测组件用于对所述kubelet组件进行健康探测和状态探测,并将得到的探测结果和状态信息发送给所述探测节点;

所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,从所述探测节点获取所述探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件;

所述生命周期管理组件还用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。

本申请提供的状态检测方法、主节点和集群管理系统,通过在未收到从节点发送的心跳数据时对该从节点进行健康探测,并基于健康探测的结果对从节点是否处于故障状态进行判断,使得判断的依据增加,从而提高了判断的准确性,以改善现有技术中在对从节点是否处于故障状态进行判断时容易出现误判断的问题,进而避免了由于出现误判断而导致服务的稳定性较差和集群雪崩的问题,具有较高的实用价值。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

图1为现有的集群管理系统中主从节点之间的交互示意图。

图2为本申请实施例提供的集群管理系统的主从节点之间的通信连接示意图。

图3为本申请实施例提供的集群管理系统的主从节点之间的交互示意图。

图4为本申请实施例提供的集群管理系统的应用框图。

图5为本申请实施例提供的状态检测方法的流程示意图。

图标:10-集群管理系统;100-主节点;110-生命周期管理组件;130-健康探测组件;200-从节点;210-kubelet组件;230-本地探测组件;300-探测节点。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图2和图3所示,本申请实施例提供了一种集群管理系统10,可以包括主节点100(masternode)和从节点200(slavenode)。其中,所述主节点100和所述从节点200通信连接。

详细地,所述主节点100可以包括生命周期管理组件110和健康探测组件130,所述从节点200可以包括kubelet组件210。所述kubelet组件210用于每间隔预设时间向所述生命周期管理组件110发送心跳数据。所述生命周期管理组件110用于在预设时间内未收到所述kubelet组件210发送的心跳数据时,触发所述健康探测组件130对所述kubelet组件210进行健康探测,以获取该kubelet组件210的健康信息,并根据该健康信息判断所述kubelet组件210是否处于故障状态。

其中,所述从节点200的数量不受限制,可以根据系统需要处理的数据量进行选择,例如,在数据量较大时,可以选择设置较多的从节点200,且各所述从节点200分别与所述主节点100通信连接。

并且,所述kubelet组件210是kubenetes在从节点200上的控制组件,用于管理该从节点200上所有pod实例的生命周期,即周期性(如5min)的向所述主节点100(如生命周期管理组件110)发送心跳数据。pod实例是kubenetes创建或部属的最小或最简单的基本单位。并且,一个pod实例代表集群上正在运行的一个进程,一个pod实例封装一个容器或多个容器。容器,是程序代码和其依赖关系在应用层的一个抽象概念,且多个容器之间各自作为孤立的进程在同一台机器上的用户空间中运行,并共享操作系统内核。

在本实施例中,为了进一步地提高对所述kubelet组件210是否处于故障状态进行判断的准确性,结合图4,所述主节点100和所述从节点200还可以分别与探测节点300通信连接,且所述从节点200还可以包括本地探测组件230。

其中,基于对判断的准确性和简便性的综合需求不同,所述本地探测组件230的具体作用可以不同。

例如,在一种可以替代的示例中,为了在兼顾判断的准确性的同时,还能有效地保障判断的简便和快速性,所述本地探测组件230用于对所述kubelet组件210进行健康探测,并将得到的探测结果发送给所述探测节点300。

也就是说,所述健康探测组件130还可以用于在根据所述健康信息判定所述kubelet组件210处于故障状态时,从所述探测节点300获取所述探测结果,并将该探测结果发送给所述生命周期管理组件110。所述生命周期管理组件110还可以用于根据所述探测结果进一步判断所述kubelet组件210是否处于故障状态。

又例如,在另一种可以替代的示例中,为了在兼顾判断的简便性的同时,还能有效地保障判断的准确性,所述本地探测组件230用于对所述kubelet组件210进行健康探测和状态探测,并将得到的探测结果和状态信息发送给所述探测节点300。

也就是说,所述健康探测组件130还可以用于在根据所述健康信息判定所述kubelet组件210处于故障状态时,从所述探测节点300获取所述探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件110。所述生命周期管理组件110还可以用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件210是否处于故障状态。

需要说明的是,所述kubelet组件210上可以形成至少两个接口,如健康接口(healthy接口)和统计接口(summary接口)。其中,所述kubelet组件210能够实现内部循环自检。

例如,所述kubelet组件210可以对内部逻辑和组件是否异常进行检测,并将得到的信息发送至所述健康接口,使得所述健康探测组件130和所述本地探测组件230对该健康接口进行探测,分别得到所述健康信息和所述探测结果。

又例如,所述kubelet组件210还可以对运行的设备(如cpu,中央处理器)的当前状态和资源使用情况进行检测,并将得到的状态信息发送至所述统计接口,使得所述本地探测组件230对该统计接口进行探测,得到所述状态信息。

并且,所述探测节点300可以是所述集群管理系统10中的一种内部节点,也可以是位于所述集群管理系统10外的一种第三方节点。

在本实施例中,所述探测节点300可以是独立于所述集群管理系统10的一种外部第三方节点,且可以由服务器、运行于该服务器的第三方探测组件和其它组件构成。

如此设置,可以使得探测到的信息可以分别是通过集群内的网络和集群外的网络进行传输,有效地避免了网络异常导致的误判断。

本申请实施例还提供一种主节点100,可应用于上述集群管理系统10。其中,所述主节点100可以与所述集群管理系统10中的从节点200通信连接,且可以包括生命周期管理组件110和健康探测组件130。

详细地,所述生命周期管理组件110可以用于,在预设时间内未收到所述从节点200的kubelet组件210每间隔预设时间发送的心跳数据时,触发所述健康探测组件130对所述kubelet组件210进行健康探测,以获取该kubelet组件210的健康信息,并根据该健康信息判断所述kubelet组件210是否处于故障状态。

需要说明的是,所述主节点100可以是一种服务器。该服务器可以包括处理器和与该处理器直接或间接电性连接的存储器,且该存储器上存储有计算机程序。

所述存储器可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

所述处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、片上系统(systemonchip,soc)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

其中,上述的计算机程序可以包括控制管理组件(controller-manager组件),该控制管理组件可以包括上述的生命周期管理组件110(node-lifefycle组件)和健康探测组件130(node-probe组件)。

并且,上述的计算机程序还可以包括一个或多个软件功能模块。所述处理器执行该软件功能模块对应的程序时,可以实现本申请实施例提供的状态检测方法,以对网络异常或所述从节点200的状态进行检测。

进一步地,在本实施例中,为了提高对所述kubelet组件210是否处于故障状态进行判断的准确性,所述主节点100还可以与上述的探测节点300通信连接。

其中,基于对判断的准确性和简便性的综合需求不同,所述主节点100通过所述探测节点300获取的信息可以不同,设置的判断机制也可以不同。

例如,在一种可以替代的示例中,为了在兼顾判断的准确性的同时,还能有效地保障判断的简便和快速性,所述健康探测组件130还用于在根据所述健康信息判定所述kubelet组件210处于故障状态时,从所述探测节点300获取探测结果,并将该探测结果发送给所述生命周期管理组件110。所述生命周期管理组件110还用于根据所述探测结果进一步判断所述kubelet组件210是否处于故障状态。

又例如,在另一种可以替代的示例中,为了在兼顾判断的简便性的同时,还能有效地保障判断的准确性,所述健康探测组件130还用于在根据所述健康信息判定所述kubelet组件210处于故障状态时,从所述探测节点300获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件110。所述生命周期管理组件110还用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件210是否处于故障状态。

结合图5,本申请实施例还提供一种可应用于上述主节点100的状态检测方法。其中,所述主节点100可以与上述的从节点200通信连接,所述主节点100可以包括生命周期管理组件110和健康探测组件130,所述从节点200可以包括kubelet组件210。下面将对图5所示的具体流程进行详细阐述。

步骤s110,所述生命周期管理组件110在预设时间内未收到所述kubelet组件210发送的心跳数据时,向所述健康探测组件130发送触发指令。

步骤s120,所述健康探测组件130在接收到所述触发指令时,对所述kubelet组件210进行健康探测,并将得到的该kubelet组件210的健康信息发送给所述生命周期管理组件110。

步骤s130,所述生命周期管理组件110根据所述健康信息判断所述kubelet组件210是否处于故障状态。

通过上述方法,在未收到kubelet组件210按照预设时间间隔发送的心跳数据时对该kubelet组件210进行健康探测,并基于健康探测的结果对kubelet组件210是否处于故障状态进行判断,使得判断的依据增加,从而提高了判断的准确性,以改善现有技术中在对kubelet组件210是否处于故障状态进行判断时容易出现误判断的问题,进而避免了由于出现误判断而导致服务的稳定性较差和集群雪崩的问题,具有较高的实用价值。

在上述的步骤s110中,所述心跳数据通过所述kubelet组件210每间隔预设时间向所述主节点100发送。也就是说,会预先对所述kubelet组件210进行配置,使得该kubelet组件210每间隔预设时间向所述生命周期管理组件110发送一次心跳数据。对应地,所述生命周期管理组件110在最近一次接收到心跳数据之后,若经过预设时间还未接收到心跳数据,表明所述kubelet组件210可能处于故障状态,因而,可以向所述健康探测组件130发送触发指令。

其中,上述的预设时间可以根据实际应用需求进行选择。例如,可以综合考虑提供服务的稳定性和数据的处理量等因素,以确定该预设时间的数值,如5min。

在上述步骤s120中,基于步骤s110,所述健康探测组件130在接收到所述生命周期管理组件110发送的触发指令时,为了对所述kubelet组件210是否处于故障状态进行可靠地判断,可以对该kubelet组件210进行健康探测。在进行健康探测得到健康信息之后,可以将该健康信息发送至所述生命周期管理组件110,以使该生命周期管理组件110可以基于该健康信息判断所述kubelet组件210是否处于故障状态。

其中,所述健康探测组件130可以是对所述kubelet组件210的健康接口(healthy接口)进行探测,得到所述健康信息。

在上述的步骤s130中,基于步骤s120,所述生命周期管理组件110在接收到所述健康探测组件130发送的健康信息之后,可以根据该健康信息对所述kubelet组件210是否处于故障状态进行判断。

其中,在所述生命周期管理组件110基于上述的健康信息判定所述kubelet组件210处于故障状态时,根据实际的需求不同,可以选择不同的处理机制。

例如,在一种可以替代的示例中,为了提高故障处理的效率,可以在基于上述的健康信息判定所述kubelet组件210处于故障状态时,可以启动对该kubelet组件210的自愈机制,以保证该kubelet组件210对应的所有pod实例的服务能够快速地被继续执行。

又例如,在另一种可以替代的示例中,为了提高故障处理的准确率,可以在基于上述的健康信息判定所述kubelet组件210处于故障状态时,通过通信连接的探测节点300,再次获取所述kubelet组件210的信息,并基于该信息对该kubelet组件210是否处于故障状态再次进行判断,并在再次判定处于故障状态时,启动对该kubelet组件210的自愈机制,以避免误启动自愈机制而导致该kubelet组件210对应的所有pod实例被驱逐的问题。

其中,基于对判断的准确性和简便性的综合需求不同,所述主节点100通过所述探测节点300获取的信息可以不同,设置的再次判断机制也可以不同。

例如,在一种可以替代的示例中,为了在兼顾判断的准确性的同时,还能有效地保障判断的简便和快速性,所述状态检测方法还可以包括以下步骤:

首先,在根据所述健康信息判定所述kubelet组件210处于故障状态时,所述健康探测组件130从所述探测节点300获取探测结果,并将该探测结果发送给所述生命周期管理组件110。然后,所述生命周期管理组件110根据所述探测结果进一步判断所述kubelet组件210是否处于故障状态,并在判定处于故障状态时,启动对所述kubelet组件210的自愈机制。

其中,所述探测结果通过所述本地探测组件230对所述kubelet组件210进行健康探测得到并发送给所述探测节点300。也就是说,所述从节点200中的本地探测组件230会定期对该从节点200中的kubelet组件210进行健康探测,并将得到的探测结果发送给所述探测节点300,以在所述健康探测组件130需要该探测结果时,可以从该探测节点300获取。

又例如,在另一种可以替代的示例中,为了在兼顾判断的简便性的同时,还能有效地保障判断的准确性,所述状态检测方法还可以包括以下步骤:

首先,在根据所述健康信息判定所述kubelet组件210处于故障状态时,所述健康探测组件130从所述探测节点300获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件110。然后,所述生命周期管理组件110根据所述探测结果和所述状态信息进一步判断所述kubelet组件210是否处于故障状态,并在判定处于故障状态时,启动对所述kubelet组件210的自愈机制。

其中,所述探测结果和所述状态信息通过所述本地探测组件230对所述kubelet组件210进行健康探测和状态探测得到并发送给所述探测节点300。也就是说,所述从节点200中的本地探测组件230会定期对该从节点200中的kubelet组件210进行健康探测(如对所述健康接口进行探测)和状态探测(如对统计接口即summary接口,进行探测),并将得到的探测结果和状态信息发送给所述探测节点300,以在所述健康探测组件130需要该探测结果和状态信息时,可以从该探测节点300获取。

并且,在所述生命周期管理组件110根据所述探测结果和所述状态信息判断所述kubelet组件210是否处于故障状态时,可以是所述生命周期管理组件110根据所述探测结果判定所述kubelet组件210处于故障状态,且根据所述状态信息也判定所述kubelet组件210处于故障状态,才认定所述kubelet组件210处于故障状态。

也就是说,只要所述生命周期管理组件110根据所述探测结果和所述状态信息中的任意一个判定所述kubelet组件210未处于故障状态,就认定所述kubelet组件210未处于故障状态。

在本实施例中,为进一步提高对所述kubelet组件210是否处于故障状态进行判断的准确性,所述本地探测组件230还可以对所述kubelet组件210进行探测,以获取该kubelet组件210中的进程和端口的信息,并将该信息发送至所述探测节点300,使得所述生命周期管理组件110还可以进一步根据该信息对所述kubelet组件210是否处于故障状态进行判断。

其中,对所述kubelet组件210中的进程和端口的信息进行探测的方式不受限制,根据实际应用需求进行配置即可,例如,可以采用现有技术中的一些控制命令,在此不做具体的限定。

需要说明的是,在上述各个步骤中,在所述生命周期管理组件110判定所述kubelet组件210处于故障状态时,都需要启动对该kubelet组件210的自愈机制,在其它健康的从节点200中选择一个作为目标从节点,并将该kubelet组件210对应的所有pod实例驱逐至该目标从节点。

其中,选择目标从节点的方式不受限制,例如,既可以是在其它健康的从节点200中随机选择一个从节点200作为目标从节点,也可以是在其它健康的从节点200中选择一个负载最小的从节点200作为目标从节点。

并且,在上述各个步骤中,在所述生命周期管理组件110判定所述kubelet组件210未处于故障状态时,可以判定所述从节点200和所述主节点100之间存在网络异常(即网络抖动)。此时,由于所述kubelet组件210并未处于故障状态,该kubelet组件210对应的所有pod实例都可以在从节点200上运行。因而,所述kubelet组件210并不需要将该所有的pod实例进行驱逐,并且,可以选择等待该网络异常结束。

其中,在不同的步骤中,在判定所述从节点200和所述主节点100之间存在网络异常时,具体的网络异常类型可以是不同的。

例如,在上述的步骤s130中,在根据所述健康信息判定所述kubelet组件210未处于故障状态时,可以判定在所述从节点200至所述主节点100的方向上存在单向的网络异常。

又例如,在根据所述探测结果判定所述kubelet组件210未处于故障状态时,可以判定在所述从节点200至所述主节点100和所述主节点100至所述从节点200的两个方向上都存在网络异常,即双向的网络异常。

又例如,在根据所述探测结果和所述状态信息判定所述kubelet组件210未处于故障状态时,也可以判定在所述从节点200至所述主节点100和所述主节点100至所述从节点200的两个方向上都存在网络异常,即双向的网络异常。

本申请实施例还提供另一种状态检测方法,用于对集群管理系统10中从节点200上的kubelet组件210的状态进行检测。其中,所述状态检测方法可以包括以下步骤:

首先,在预设时间内未收到kubelet组件210发送的心跳数据时,对该kubelet组件210进行健康探测,得到该kubelet组件210的健康信息。然后,根据所述健康信息判断所述kubelet组件210是否处于故障状态。

进一步地,为了提高对所述kubelet组件210是否处于故障状态进行判断的准确性,在本实施例中,所述状态检测方法还可以包括对所述kubelet组件210是否处于故障状态进行再次判断的步骤。

例如,在一种可以替代的示例中,在根据所述健康信息判定所述kubelet组件210处于故障状态时,可以通过探测节点300获取本地探测组件230对所述kubelet组件210进行健康探测和状态探测得到的探测结果和状态信息。然后,根据所述探测结果和所述状态信息进一步判断所述kubelet组件210是否处于故障状态。

又例如,在另一种可以替代的示例中,在根据所述健康信息判定所述kubelet组件210处于故障状态时,可以通过探测节点300获取本地探测组件230对所述kubelet组件210进行健康探测和状态探测得到的探测结果和状态信息。然后,根据所述探测结果和所述状态信息进一步判断所述kubelet组件210是否处于故障状态。

其中,上述所述状态检测方法包括的各步骤的相关描述可以参照前文的解释说明,在此不再一一赘述。

综上所述,本申请提供的状态检测方法、主节点100和集群管理系统10,通过在未收到从节点200发送的心跳数据时对该从节点200进行健康探测,并基于健康探测的结果对从节点200是否处于故障状态进行判断,使得判断的依据增加,从而提高了判断的准确性,以改善现有技术中在对从节点200是否处于故障状态进行判断时容易出现误判断的问题,进而避免了由于出现误判断而导致服务的稳定性较差和集群雪崩的问题,具有较高的实用价值。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1