CN110336715B - 状态检测方法、主节点和集群管理*** - Google Patents
状态检测方法、主节点和集群管理*** Download PDFInfo
- Publication number
- CN110336715B CN110336715B CN201910628817.6A CN201910628817A CN110336715B CN 110336715 B CN110336715 B CN 110336715B CN 201910628817 A CN201910628817 A CN 201910628817A CN 110336715 B CN110336715 B CN 110336715B
- Authority
- CN
- China
- Prior art keywords
- component
- detection
- kubel
- node
- health
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 294
- 230000036541 health Effects 0.000 claims abstract description 162
- 238000000034 method Methods 0.000 claims abstract description 13
- 239000000523 sample Substances 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
Abstract
本申请提供的状态检测方法、主节点和集群管理***,涉及集群管理技术领域。其中,状态检测方法包括:在预设时间内未收到kubelet组件发送的心跳数据时,对该kubelet组件进行健康探测,得到该kubelet组件的健康信息;根据所述健康信息判断所述kubelet组件是否处于故障状态。通过上述方法,可以改善现有技术中在对kubelet组件是否处于故障状态进行判断时容易出现误判断的问题。
Description
技术领域
本申请涉及集群管理技术领域,具体而言,涉及一种状态检测方法、主节点和集群管理***。
背景技术
kubernetes是一种容器编排引擎,用于在集群管理***中构建容器管理平台。其中,集群管理***包括主节点(master node)和从节点(slave node),且从节点通过定期向主节点发送心跳数据以上报自身状态。
如图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(master node)和从节点200(slave node)。其中,所述主节点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可以是一种服务器。该服务器可以包括处理器和与该处理器直接或间接电性连接的存储器,且该存储器上存储有计算机程序。
所述存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
所述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、片上***(System on Chip,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是否处于故障状态进行判断时容易出现误判断的问题,进而避免了由于出现误判断而导致服务的稳定性较差和集群雪崩的问题,具有较高的实用价值。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种状态检测方法,其特征在于,包括:
在预设时间内未收到kubelet组件发送的心跳数据时,对该kubelet组件从集群内的网络进行健康探测,得到该kubelet组件的健康信息;
根据所述健康信息判断所述kubelet组件是否处于故障状态;
在根据所述健康信息判定所述kubelet组件处于故障状态时,通过探测节点从所述集群外的网络获取本地探测组件对所述kubelet组件进行健康探测得到的探测结果;
根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。
2.根据权利要求1所述的状态检测方法,其特征在于,所述通过探测节点从所述集群外的网络获取本地探测组件对所述kubelet组件进行健康探测得到的探测结果,包括:
通过探测节点获取本地探测组件对所述kubelet组件进行健康探测和状态探测得到的探测结果和状态信息;
所述根据所述探测结果进一步判断所述kubelet组件是否处于故障状态,包括:
根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。
3.一种状态检测方法,其特征在于,应用于集群管理***中的主节点,所述集群管理***还包括与所述主节点通信连接的从节点,所述从节点包括kubelet组件,所述主节点包括生命周期管理组件和健康探测组件,所述状态检测方法包括:
所述生命周期管理组件在预设时间内未收到所述kubelet组件发送的心跳数据时,向所述健康探测组件发送触发指令;
所述健康探测组件在接收到所述触发指令时,从集群内的网络对所述kubelet组件进行健康探测,并将得到的该kubelet组件的健康信息发送给所述生命周期管理组件;
所述生命周期管理组件根据所述健康信息判断所述kubelet组件是否处于故障状态;
在根据所述健康信息判定所述kubelet组件处于故障状态时,所述健康探测组件通过所述集群外的网络从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,其中,所述探测结果通过所述本地探测组件对所述kubelet组件进行健康探测得到并发送给所述探测节点;
所述生命周期管理组件根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。
4.根据权利要求3所述的状态检测方法,其特征在于,所述主节点和所述从节点分别与所述集群管理***外的探测节点通信连接,所述从节点还包括本地探测组件,所述健康探测组件通过所述集群外的网络从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,包括:
所述健康探测组件从所述探测节点获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件,其中,所述探测结果和状态信息通过所述本地探测组件对所述kubelet组件进行健康探测和状态探测得到并发送给所述探测节点;
所述生命周期管理组件根据所述探测结果进一步判断所述kubelet组件是否处于故障状态,包括:
所述生命周期管理组件根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。
5.根据权利要求3-4任意一项所述的状态检测方法,其特征在于,还包括:
所述生命周期管理组件在判定所述kubelet组件未处于故障状态时,判定所述主节点和所述从节点之间存在网络异常。
6.一种主节点,其特征在于,应用于集群管理***,该集群管理***还包括与所述主节点通信连接的从节点,该从节点包括kubelet组件,所述主节点包括生命周期管理组件和健康探测组件,其中:
所述生命周期管理组件用于在预设时间内未收到所述kubelet组件发送的心跳数据时,触发所述健康探测组件从集群内部的网络对所述kubelet组件进行健康探测,以获取该kubelet组件的健康信息,并根据该健康信息判断所述kubelet组件是否处于故障状态;
所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,通过所述集群外部的网络从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,其中,所述探测结果通过所述本地探测组件对所述kubelet组件进行健康探测得到并发送给所述探测节点;
所述生命周期管理组件还用于根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。
7.根据权利要求6所述的主节点,其特征在于,所述主节点和所述从节点分别与所述集群管理***外的探测节点通信连接,所述从节点还包括本地探测组件;
所述通过所述集群外部的网络从所述探测节点获取探测结果,并将该探测结果发送给所述生命周期管理组件,包括:
从所述探测节点获取探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件,其中,所述探测结果和状态信息通过所述本地探测组件对所述kubelet组件进行健康探测和状态探测得到并发送给所述探测节点;
所述生命周期管理组件还用于根据所述探测结果进一步判断所述kubelet组件是否处于故障状态,包括:
所述生命周期管理组件还用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。
8.一种集群管理***,其特征在于,包括主节点和与该主节点通信连接的从节点,所述主节点包括生命周期管理组件和健康探测组件,所述从节点包括kubelet组件,其中:
所述kubelet组件用于每间隔预设时间向所述生命周期管理组件发送心跳数据;
所述生命周期管理组件用于在预设时间内未收到所述kubelet组件发送的心跳数据时,触发所述健康探测组件通过集群内部的网络对所述kubelet组件进行健康探测,以获取该kubelet组件的健康信息,并根据该健康信息判断所述kubelet组件是否处于故障状态;所述主节点和所述从节点分别与所述集群管理***外的探测节点通信连接;
所述从节点还包括本地探测组件;
所述本地探测组件用于对所述kubelet组件进行健康探测,并将得到的探测结果发送给所述探测节点;
所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,通过所述集群外部的网络从所述探测节点获取所述探测结果,并将该探测结果发送给所述生命周期管理组件;
所述生命周期管理组件还用于根据所述探测结果进一步判断所述kubelet组件是否处于故障状态。
9.根据权利要求8所述的集群管理***,其特征在于,所述主节点和所述从节点分别与所述集群管理***外的探测节点通信连接;
所述本地探测组件还用于通过集群内部的网络对所述kubelet组件进行健康探测和状态探测,并将得到的探测结果和状态信息发送给所述探测节点;
所述健康探测组件还用于在根据所述健康信息判定所述kubelet组件处于故障状态时,通过所述集群外部的网络从所述探测节点获取所述探测结果和状态信息,并将该探测结果和状态信息发送给所述生命周期管理组件;
所述生命周期管理组件还用于根据所述探测结果和所述状态信息进一步判断所述kubelet组件是否处于故障状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910628817.6A CN110336715B (zh) | 2019-07-12 | 2019-07-12 | 状态检测方法、主节点和集群管理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910628817.6A CN110336715B (zh) | 2019-07-12 | 2019-07-12 | 状态检测方法、主节点和集群管理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110336715A CN110336715A (zh) | 2019-10-15 |
CN110336715B true CN110336715B (zh) | 2021-09-21 |
Family
ID=68146704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910628817.6A Active CN110336715B (zh) | 2019-07-12 | 2019-07-12 | 状态检测方法、主节点和集群管理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336715B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176783A (zh) * | 2019-11-20 | 2020-05-19 | 航天信息股份有限公司 | 容器治理平台的高可用方法、装置及电子设备 |
CN111813625B (zh) * | 2020-06-30 | 2024-03-08 | 中国工商银行股份有限公司 | 分布式服务器集群的健康检查方法及装置 |
CN111818188B (zh) * | 2020-09-09 | 2021-02-02 | 杭州朗澈科技有限公司 | 一种Kubernetes集群的负载均衡可用性提升方法和装置 |
CN114217950B (zh) * | 2021-11-08 | 2022-10-21 | 杭州博盾习言科技有限公司 | 节点调度状态控制方法和*** |
CN114666252A (zh) * | 2022-05-25 | 2022-06-24 | 苏州英特模汽车科技有限公司 | 台架测试***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506392A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种宕机检测方法及设备 |
CN104506358A (zh) * | 2014-12-19 | 2015-04-08 | 上海斐讯数据通信技术有限公司 | 基于snmp的网络管理***及网络管理方法 |
CN104506357A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种高可用集群节点管理方法 |
CN109656742A (zh) * | 2018-12-28 | 2019-04-19 | 咪咕文化科技有限公司 | 一种节点异常处理方法、装置及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237392B (zh) * | 2007-01-29 | 2011-03-16 | 中兴通讯股份有限公司 | 一种异步传输模式网络故障测试方法 |
US9720810B2 (en) * | 2014-12-09 | 2017-08-01 | Google Inc. | Device cloud monitoring and stability |
CN105656697A (zh) * | 2016-03-22 | 2016-06-08 | 深圳市共进电子股份有限公司 | 一种提高网络可靠性的方法和装置 |
CN107404522B (zh) * | 2017-07-20 | 2020-03-10 | 苏州浪潮智能科技有限公司 | 一种跨节点的虚拟机集群高可用实现方法和装置 |
CN109218137B (zh) * | 2018-10-18 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种分布式***中的节点的状态检测方法和装置 |
-
2019
- 2019-07-12 CN CN201910628817.6A patent/CN110336715B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506358A (zh) * | 2014-12-19 | 2015-04-08 | 上海斐讯数据通信技术有限公司 | 基于snmp的网络管理***及网络管理方法 |
CN104506357A (zh) * | 2014-12-22 | 2015-04-08 | 国云科技股份有限公司 | 一种高可用集群节点管理方法 |
CN104506392A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种宕机检测方法及设备 |
CN109656742A (zh) * | 2018-12-28 | 2019-04-19 | 咪咕文化科技有限公司 | 一种节点异常处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110336715A (zh) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110336715B (zh) | 状态检测方法、主节点和集群管理*** | |
US11010273B2 (en) | Software condition evaluation apparatus and methods | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和*** | |
WO2015169199A1 (zh) | 分布式环境下虚拟机异常恢复方法 | |
CN104506392B (zh) | 一种宕机检测方法及设备 | |
CN110740072B (zh) | 一种故障检测方法、装置和相关设备 | |
EP3591485B1 (en) | Method and device for monitoring for equipment failure | |
CN106919462B (zh) | 一种生成处理器故障记录的方法及装置 | |
CN111737085A (zh) | 服务器的监控方法、装置和***及电子设备 | |
CN110704166A (zh) | 服务运行方法、装置和服务器 | |
CN112306567A (zh) | 集群管理***和容器管控方法 | |
CN114884840B (zh) | 应用健康状态检查方法及电子设备 | |
CN109586989B (zh) | 一种状态检查方法、装置及集群*** | |
CN113076210B (zh) | 服务器故障诊断结果通知方法、***、终端及存储介质 | |
CN113535448B (zh) | 一种多重看门狗控制方法及其控制*** | |
CN110618853A (zh) | 一种僵尸容器的检测方法、装置及设备 | |
CN111880992B (zh) | 一种存储设备中控制器状态的监测及维护方法 | |
CN103731315A (zh) | 一种服务器故障检测方法 | |
CN105224426A (zh) | 物理主机故障检测方法、装置及虚机管理方法、*** | |
CN107179911B (zh) | 一种重启管理引擎的方法和设备 | |
CN110650059B (zh) | 故障群集检测方法、装置、计算机设备和存储介质 | |
CN111880945A (zh) | 共享设备信息处理方法、***、装置、计算机和存储介质 | |
CN114003416A (zh) | 内存错误动态处理方法、***、终端及存储介质 | |
CN111857689A (zh) | 一种框架、框架的功能配置方法、终端及存储介质 | |
CN111338914A (zh) | 故障通知方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |