一种节点异常处理方法、装置及存储介质与流程

文档序号:17475134发布日期:2019-04-20 06:04阅读:503来源:国知局
一种节点异常处理方法、装置及存储介质与流程

本发明涉及信息技术领域,尤其涉及一种节点异常处理方法、装置及存储介质。



背景技术:

容器编排引擎是一个用于自动部署的开源平台,提供了应用程序容器集群的扩展和操作,实现了以容器为中心的基础设置,提供了一个可跨越公共云或私有云的便携式平台,比如kubernetes,简称k8s,是通过代理单元kubelet来管理集群中各个节点node,如果某台node上的kubelet因某种情况导致服务异常,并且短时间内无法恢复,此时k8s会认为部署在这个node上的应用程序运行载体pod异常。

目前针对节点异常的处理方案尚不成熟,这就导致容器编排引擎上运行的应用无法正常运行且影响性能。



技术实现要素:

有鉴于此,本发明实施例期望提供一种节点异常处理方法、装置及存储介质,能够识别故障节点上的异常应用程序运行载体并进行有效处理。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供一种节点异常处理方法,所述方法包括:

当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;

基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;

对所述异常应用程序运行载体进行处理。

本发明实施例还提供一种节点异常处理装置,所述装置包括:

查询模块,用于当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;

确定模块,用于基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;

处理模块,用于对所述异常应用程序运行载体进行处理。

本发明实施例还提供一种存储介质,其上存储有可执行程序,所述可执行程序被处理器执行时实现前述任意一种节点异常处理方法。

本发明实施例还提供一种节点异常处理装置,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行前述任意一种节点异常处理方法。

本发明实施例所提供的节点异常处理方法、装置及存储介质,当确定管理第一节点的第一代理单元故障时,通过第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间,来确定第一节点上的异常应用程序运行载体,并对异常应用程序运行载体进行处理,其中,异常应用程序运行载体表示在第一代理单元故障后有过更新。如此,能够短时间内识别出故障节点上的异常应用程序运行载体,并对其进行实时地有效处理,从而保障容器编排引擎上运行的应用正常运行,且提高了主机的使用效率,避免了代理单元故障期间由于对应用程序运行载体的更新,而导致外部请求访问时应用版本不一致的问题。

附图说明

图1为本发明实施例提供的节点异常处理方法的流程示意图;

图2为本发明实施例提供的节点异常处理方法的具体实现流程示意图;

图3为本发明实施例提供的节点异常处理装置的组成结构示意图;

图4为本发明实施例提供的节点异常处理装置的另一组成结构示意图;

图5为本发明实施例提供的节点异常处理装置的硬件结构示意图;

图6为本发明实施例提供的节点异常处理装置的另一硬件结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例是本发明一部分实施例,而不是全部的实施例。根据本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)容器编排引擎kubernetes,简称k8s,最开始由google设计开发最后贡献给cloudnativecomputingfoundation的开源容器集群管理项目。它的设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群。

2)节点node,node作为集群中的工作节点,运行真正的应用程序,由master管理,负责监控并汇报容器的状态,并根据master的要求管理容器的生命周期。node运行在linux操作系统,可以是物理机或者是虚拟机。

3)应用程序运行载体pod,是kubernetes最基本的操作单元,包含一个或多个紧密相关的容器,一个pod中的多个容器应用通常是紧密耦合的,pod在node上被创建、启动或者销毁,pod本身不支持高可用高并发,故障时无法自行拉起。

4)代理单元kubelet,是master在node上的代理,管理所在node上所有container和pod,负责本node上的pod的创建、修改、监控、删除等全生命周期管理。

5)更新单元deployment,是一种更新副本replicaset和pod的机制,deployment主要职责是为了保证pod的数量和健康,可以对模板template进行实时滚动更新。

6)微服务框架springcloud,是基于springboot的一整套实现微服务的框架。提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。

7)服务发现和注册组件eureka,是微服务框架springcloud中服务发现和注册组件,即基于springcloud开发的微服务应用,相互之间访问和新增应用暴露服务都是通过eureka实现。

下面对本发明实施例节点异常处理的实现过程进行详细说明。

图1为本发明实施例提供的一种节点异常处理方法;如图1所示,本发明实施例中的节点异常处理方法的实现流程,可以包括以下步骤:

步骤101:当确定管理第一节点的第一代理单元故障时,查询第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间。

在一些实施例中,判断第一节点上的第一代理单元是否发生故障,即确定管理第一节点的第一代理单元故障,可以包括:建立与容器编排引擎地址接口的连接,并对地址接口进行监测;基于监测结果,判断管理第一节点的第一代理单元是否发生故障。

举例来说,可以与k8sevent建立连接,并监测/api/v1/namespaces/{namespace}/events接口,当k8s出现任意事件,经由events接口根据事件类型,可以判断管理第一节点node的第一代理单元kubelet是否发生故障。当确定管理第一节点的第一代理单元故障时,可以查询etcd记录的第一节点上的所有应用程序运行载体pod,逐个查询pod所属deployment的运行时间,以及第一代理单元kubelet的故障时间。

步骤102:基于故障时间和运行时间,确定第一节点上的异常应用程序运行载体,其中,异常应用程序运行载体表示在第一代理单元故障后有过更新。

在一些实施例中,基于故障时间和运行时间,确定第一节点上的异常应用程序运行载体,可以包括:当故障时间大于运行时间时,确定运行时间对应的应用程序运行载体为第一节点上的异常应用程序运行载体。

此外,当故障时间小于运行时间时,确定运行时间对应的应用程序运行载体为第一节点上的正常应用程序运行载体,其中,正常应用程序运行载体表示在第一代理单元故障后未有更新。

举例来说,通过逐个查询的pod所属deployment的运行时间,以及第一代理单元kubelet的故障时间,可以对第一节点node上的各应用程序运行载体pod是否为异常应用程序运行载体进行判断,具体地,如果kubelet的故障时间大于某个pod所属deployment的运行时间,则可以确定该运行时间对应的pod为第一节点node上的异常应用程序运行载体,说明该pod在kubelet故障后有过更新,即第一节点node上部署的pod是旧版;可以理解地,如果kubelet的故障时间小于某个pod所属deployment的运行时间,则可以确定该运行时间对应的pod为第一节点node上的正常应用程序运行载体,说明该pod在kubelet故障后未有更新,即第一节点node上部署的pod没有升过级,deployment所辖的pod可以正常运行。

步骤103:对异常应用程序运行载体进行处理。

在一些实施例中,对异常应用程序运行载体进行处理,可以包括:发送针对异常应用程序运行载体的销毁请求,以使异常应用程序运行载体停止运行;修改异常应用程序运行载体的状态为失效状态。

在一些实施例中,还可以对正常应用程序运行载体进行处理,具体地,可以修改正常应用程序运行载体的状态为正常状态,以使正常应用程序运行载体保持运行。

举例来说,当确定了异常应用程序运行载体后,可以向服务发现和注册组件eureka或者其他使用的服务发现组件发送针对异常应用程序运行载体pod的销毁请求,并向docker发送请求销毁异常应用程序运行载体pod的dockercontainer,以使所有异常应用程序运行载体pod停止运行,再修改etcd中所有异常应用程序运行载体pod的状态为失效状态。当确定了正常应用程序运行载体后,可以修改etcd中所有正常应用程序运行载体pod的状态为正常状态,以使正常应用程序运行载体保持运行,防止k8s在其他主机增加pod。

本发明实施例所提供的节点异常处理方法,当确定管理第一节点的第一代理单元故障时,通过第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间的比较,即通过时间对比能够识别出故障节点上的异常应用程序运行载体或正常应用程序运行载体,并实时对异常应用程序运行载体进行销毁,且保障正常应用程序运行载体继续运行,从而提高了主机的使用效率,避免了代理单元故障期间由于对应用程序运行载体的更新,而导致外部请求访问时应用版本不一致的问题。

下面对本发明实施例节点异常处理的具体实现过程做进一步地详细说明。

图2给出了本发明实施例节点异常处理方法的实现流程示意图;如图2所示,所述方法包括以下步骤:

步骤201:建立与容器编排引擎地址接口的连接,并对地址接口进行监测;基于监测结果,判断管理第一节点的第一代理单元是否发生故障。

举例来说,可以与k8sevent建立连接,并监测/api/v1/namespaces/{namespace}/events接口,当k8s出现任意事件,经由events接口根据事件类型,可以判断管理第一节点node的第一代理单元kubelet是否发生故障。

当确定管理第一节点的第一代理单元故障时,可以执行步骤202和步骤203,其中步骤202和步骤203可以不分先后顺序。

步骤202:当确定管理第一节点的第一代理单元故障时,控制第一节点进入保护模式,其中,保护模式用于阻止容器编排引擎在第二节点上创建应用程序运行载体。

在一些实施例中,当确定管理第一节点的第一代理单元故障时,可以控制第一节点进入保护模式,通过控制第一节点进入保护模式,保障了主机资源的利用率。

其中,控制第一节点进入保护模式可以包括:向容器编排引擎发送心跳信号;修改第一节点的状态为正常状态;为第一节点设置污点标记。

举例来说,k8s目前针对代理单元kubelet故障的处理,是把所属的节点node上所有应用程序运行载体pod标记为unknown,并在其他节点重新创建相同数量的pod,当kubelet恢复正常后再把异常节点node上的pod全部销毁,但是,如果集群本身资源负载已经很高,此时损失一台主机对性能上会有很大影响。本发明实施例中,可以控制异常的第一节点进入保护模式,该保护模式可以用于阻止k8s在其他节点上创建新的应用程序运行载体pod,在保护模式中,可以模拟第一代理单元kubelet向k8s发送心跳信号,并修改该kubelet对应的第一节点node的状态为正常状态,以此来阻止deployment认为pod已经失联而在其他node上增加pod,并给该第一节点node设置污点标记防止再有pod被调度过来,这里,污点taints是node的一个属性,设置了污点标记后,因为有了污点taints,所以k8s不会将pod调度到这个node上,比如设置污点:

kubectltaintnode[node]key=value[effect]

其中[effect]可取值:[noschedule|prefernoschedule|noexecute]

noschedule:一定不能被调度。

prefernoschedule:尽量不要调度。

noexecute:不仅不会调度,还会驱逐node上已有的pod。

示例:kubectltaintnode10.3.1.16test=16:noschedule

步骤203:当确定管理第一节点的第一代理单元故障时,查询第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间。

举例来说,当确定管理第一节点的第一代理单元故障时,可以查询etcd记录的第一节点上的所有应用程序运行载体pod,逐个查询pod所属deployment的运行时间,以及第一代理单元kubelet的故障时间。

步骤204:对第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间分别进行比较。

具体地,当故障时间大于运行时间时,执行步骤205,当故障时间小于运行时间时,执行步骤206。

步骤205:当故障时间大于运行时间时,确定运行时间对应的应用程序运行载体为第一节点上的异常应用程序运行载体,其中,异常应用程序运行载体表示在第一代理单元故障后有过更新。

举例来说,通过逐个查询的pod所属deployment的运行时间,以及第一代理单元kubelet的故障时间,可以对第一节点node上的各应用程序运行载体pod是否为异常应用程序运行载体进行判断,具体地,如果kubelet的故障时间大于某个pod所属deployment的运行时间,则可以确定该运行时间对应的pod为第一节点node上的异常应用程序运行载体,说明该pod在kubelet故障后有过更新,即第一节点node上部署的pod是旧版。

具体地,在确定异常应用程序运行载体后,执行步骤207。

步骤206:当故障时间小于运行时间时,确定运行时间对应的应用程序运行载体为第一节点上的正常应用程序运行载体,其中,正常应用程序运行载体表示在第一代理单元故障后未有更新。

举例来说,通过逐个查询的pod所属deployment的运行时间,以及第一代理单元kubelet的故障时间,可以对第一节点node上的各应用程序运行载体pod是否为正常应用程序运行载体进行判断,具体地,如果kubelet的故障时间小于某个pod所属deployment的运行时间,则可以确定该运行时间对应的pod为第一节点node上的正常应用程序运行载体,说明该pod在kubelet故障后未有更新,即第一节点node上部署的pod没有升过级,deployment所辖的pod可以正常运行。

具体地,在确定正常应用程序运行载体后,执行步骤208。

步骤207:对异常应用程序运行载体进行处理。

在一些实施例中,对异常应用程序运行载体进行处理,可以包括:发送针对异常应用程序运行载体的销毁请求,以使异常应用程序运行载体停止运行;修改异常应用程序运行载体的状态为失效状态。

举例来说,当确定了异常应用程序运行载体后,可以向服务发现和注册组件eureka或者其他使用的服务发现组件发送针对异常应用程序运行载体pod的销毁请求,并向docker发送请求销毁异常应用程序运行载体pod的dockercontainer,以使所有异常应用程序运行载体pod停止运行,再修改etcd中所有异常应用程序运行载体pod的状态为失效状态。

步骤208:对正常应用程序运行载体进行处理。

举例来说,当确定了正常应用程序运行载体后,可以修改etcd中所有正常应用程序运行载体pod的状态为正常状态,以使正常应用程序运行载体保持运行,防止k8s在其他主机增加pod。

步骤209:当确定管理第一节点的第一代理单元恢复正常时,控制第一节点退出保护模式。

在一些实施例中,控制第一节点退出保护模式,可以包括:停止向容器编排引擎发送心跳信号;取消第一节点上设置的污点标记;恢复容器编排引擎对第一节点的检测和维护。

举例来说,如果接收到k8sevent接口发送的通知管理第一节点node的第一代理单元kubelet状态恢复成active,即第一代理单元kubelet恢复正常,则可以控制第一节点退出保护模式,具体地,可以停止向k8s发送心跳信号,取消第一节点node上设置的污点标记,并交由k8s检测和维护第一节点node的所有资源状态,比如取消污点:

设置污点为:

kubectltaintnode10.3.1.16test=16:noschedule

kubectltaintnode10.3.1.16test=16:noexecute

去除指定key及其effect:

kubectltaintnodesnode_namekey:[effect]-#(这里的key不用指定value)

去除指定key所有的effect:

kubectltaintnodesnode_namekey-

示例:kubectltaintnode10.3.1.16test:noschedule-

kubectltaintnode10.3.1.16test:noexecute-

kubectltaintnode10.3.1.16test-

本发明实施例所提供的节点异常处理方法,当确定管理第一节点的第一代理单元故障时,控制第一节点进入保护模式,从而阻止了容器编排引擎在第二节点上创建应用程序运行载体,保障了主机资源的利用率。

此外,当确定管理第一节点的第一代理单元故障时,通过第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间的比较,即通过时间对比能够识别出故障节点上的异常应用程序运行载体或正常应用程序运行载体,并实时对异常应用程序运行载体进行销毁,且保障正常应用程序运行载体继续运行,从而提高了主机的使用效率,避免了代理单元故障期间由于对应用程序运行载体的更新,而导致外部请求访问时应用版本不一致的问题。

为实现上述方法,本发明实施例提供了一种节点异常处理装置,如图3所示,该装置包括查询模块301、确定模块302和处理模块303;其中,

查询模块301,用于当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间。

查询模块301,具体用于建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

确定模块302,用于基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新。

确定模块302,具体用于当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体。

确定模块302,还具体用于当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

处理模块303,用于对所述异常应用程序运行载体进行处理。

处理模块303,具体用于发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

处理模块303,还具体用于修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

为实现上述方法,本发明实施例还提供了一种节点异常处理装置,如图4所示,该装置包括查询模块401、控制模块402、确定模块403和处理模块404;其中,

查询模块401,用于当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间。

查询模块401,具体用于建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

控制模块402:用于当确定管理所述第一节点的所述第一代理单元故障时,控制所述第一节点进入保护模式,其中,所述保护模式用于阻止容器编排引擎在第二节点上创建所述应用程序运行载体。

控制模块402:具体用于向所述容器编排引擎发送心跳信号;修改所述第一节点的状态为正常状态;为所述第一节点设置污点标记。

控制模块402:还用于当确定管理所述第一节点的所述第一代理单元恢复正常时,控制所述第一节点退出所述保护模式。

控制模块402:还具体用于停止向所述容器编排引擎发送心跳信号;取消所述第一节点上设置的污点标记;恢复所述容器编排引擎对所述第一节点的检测和维护。

确定模块403,用于基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新。

确定模块403,具体用于当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体。

确定模块403,还具体用于当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

处理模块404,用于对所述异常应用程序运行载体进行处理。

处理模块404,具体用于发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

处理模块404,还具体用于修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

在实际应用中,所述查询模块301、确定模块302和处理模块303均可由位于终端或服务器上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

需要说明的是:上述实施例提供的节点异常处理装置在进行节点异常处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的节点异常处理装置与节点异常处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

为实现上述方法,本发明实施例还提供了另一种节点异常处理装置,该装置包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时,执行以下操作:当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;对所述异常应用程序运行载体进行处理。

所述处理器还用于运行所述可执行程序时,执行以下操作:当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体;当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

所述处理器还用于运行所述可执行程序时,执行以下操作:发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

所述处理器还用于运行所述可执行程序时,执行以下操作:修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

所述处理器还用于运行所述可执行程序时,执行以下操作:建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

下面以节点异常处理装置实施为用于节点异常处理的终端或服务器为例,对该节点异常处理装置的硬件结构做进一步说明。

图5给出了本发明实施例的节点异常处理装置的硬件结构示意图,图5所示的节点异常处理装置500包括:至少一个处理器501、存储器502、用户接口503和至少一个网络接口504。所述节点异常处理装置500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。

其中,用户接口503可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。

本发明实施例中的存储器502用于存储各种类型的数据以支持节点异常处理装置500的操作。这些数据的示例包括:用于在节点异常处理装置500上操作的任何计算机程序,如可执行程序5021,实现本发明实施例方法的程序可以包含在可执行程序5021(查询模块301、确定模块302和处理模块303)中。

上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器501可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,本发明实施例还提供了一种存储介质,其上存储有可执行程序,所述可执行程序被节点异常处理装置500的处理器501运行时,执行以下操作:当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;对所述异常应用程序运行载体进行处理。

所述可执行程序被节点异常处理装置500的处理器501运行时,还执行以下操作:当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体;当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

所述可执行程序被节点异常处理装置500的处理器501运行时,还执行以下操作:发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

所述可执行程序被节点异常处理装置500的处理器501运行时,还执行以下操作:修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

所述可执行程序被节点异常处理装置500的处理器501运行时,还执行以下操作:建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

本发明实施例所提供的节点异常处理方法、装置及存储介质,当确定管理第一节点的第一代理单元故障时,通过第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间的比较,即通过时间对比能够识别出故障节点上的异常应用程序运行载体或正常应用程序运行载体,并实时对异常应用程序运行载体进行销毁,且保障正常应用程序运行载体继续运行,从而提高了主机的使用效率,避免了代理单元故障期间由于对应用程序运行载体的更新,而导致外部请求访问时应用版本不一致的问题。

在实际应用中,所述查询模块401、控制模块402、确定模块403和处理模块404均可由位于终端或服务器上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

需要说明的是:上述实施例提供的节点异常处理装置在进行节点异常处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的节点异常处理装置与节点异常处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

为实现上述方法,本发明实施例还提供了另一种节点异常处理装置,该装置包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时,执行以下操作:当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;对所述异常应用程序运行载体进行处理。

所述处理器还用于运行所述可执行程序时,执行以下操作:当确定管理所述第一节点的所述第一代理单元故障时,控制所述第一节点进入保护模式,其中,所述保护模式用于阻止容器编排引擎在第二节点上创建所述应用程序运行载体;当确定管理所述第一节点的所述第一代理单元恢复正常时,控制所述第一节点退出所述保护模式。

所述处理器还用于运行所述可执行程序时,执行以下操作:向所述容器编排引擎发送心跳信号;修改所述第一节点的状态为正常状态;为所述第一节点设置污点标记。

所述处理器还用于运行所述可执行程序时,执行以下操作:停止向所述容器编排引擎发送心跳信号;取消所述第一节点上设置的污点标记;恢复所述容器编排引擎对所述第一节点的检测和维护。

所述处理器还用于运行所述可执行程序时,执行以下操作:当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体;当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

所述处理器还用于运行所述可执行程序时,执行以下操作:发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

所述处理器还用于运行所述可执行程序时,执行以下操作:修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

所述处理器还用于运行所述可执行程序时,执行以下操作:建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

下面以节点异常处理装置实施为用于节点异常处理的终端或服务器为例,对该节点异常处理装置的硬件结构做进一步说明。

图6给出了本发明实施例的节点异常处理装置的硬件结构示意图,图6所示的节点异常处理装置600包括:至少一个处理器601、存储器602、用户接口603和至少一个网络接口604。所述节点异常处理装置600中的各个组件通过总线系统605耦合在一起。可理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统605。

其中,用户接口603可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。

本发明实施例中的存储器602用于存储各种类型的数据以支持节点异常处理装置600的操作。这些数据的示例包括:用于在节点异常处理装置600上操作的任何计算机程序,如可执行程序6021,实现本发明实施例方法的程序可以包含在可执行程序6021(查询模块401、控制模块402、确定模块403和处理模块404)中。

上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,本发明实施例还提供了一种存储介质,其上存储有可执行程序,所述可执行程序被节点异常处理装置600的处理器601运行时,执行以下操作:当确定管理第一节点的第一代理单元故障时,查询所述第一代理单元的故障时间以及所述第一节点上的各应用程序运行载体的运行时间;基于所述故障时间和所述运行时间,确定所述第一节点上的异常应用程序运行载体,其中,所述异常应用程序运行载体表示在所述第一代理单元故障后有过更新;对所述异常应用程序运行载体进行处理。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:当确定管理所述第一节点的所述第一代理单元故障时,控制所述第一节点进入保护模式,其中,所述保护模式用于阻止容器编排引擎在第二节点上创建所述应用程序运行载体;当确定管理所述第一节点的所述第一代理单元恢复正常时,控制所述第一节点退出所述保护模式。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:向所述容器编排引擎发送心跳信号;修改所述第一节点的状态为正常状态;为所述第一节点设置污点标记。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:停止向所述容器编排引擎发送心跳信号;取消所述第一节点上设置的污点标记;恢复所述容器编排引擎对所述第一节点的检测和维护。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:当所述故障时间大于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的异常应用程序运行载体;当所述故障时间小于所述运行时间时,确定所述运行时间对应的应用程序运行载体为所述第一节点上的正常应用程序运行载体,其中,所述正常应用程序运行载体表示在所述第一代理单元故障后未有更新。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:发送针对所述异常应用程序运行载体的销毁请求,以使所述异常应用程序运行载体停止运行;修改所述异常应用程序运行载体的状态为失效状态。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:修改所述正常应用程序运行载体的状态为正常状态,以使所述正常应用程序运行载体保持运行。

所述可执行程序被节点异常处理装置600的处理器601运行时,还执行以下操作:建立与容器编排引擎地址接口的连接,并对所述地址接口进行监测;基于监测结果,判断管理所述第一节点的所述第一代理单元是否发生故障。

本发明实施例所提供的节点异常处理方法、装置及存储介质,当确定管理第一节点的第一代理单元故障时,控制第一节点进入保护模式,从而阻止了容器编排引擎在第二节点上创建应用程序运行载体,保障了主机资源的利用率。

此外,当确定管理第一节点的第一代理单元故障时,通过第一代理单元的故障时间以及第一节点上的各应用程序运行载体的运行时间的比较,即通过时间对比能够识别出故障节点上的异常应用程序运行载体或正常应用程序运行载体,并实时对异常应用程序运行载体进行销毁,且保障正常应用程序运行载体继续运行,从而提高了主机的使用效率,避免了代理单元故障期间由于对应用程序运行载体的更新,而导致外部请求访问时应用版本不一致的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或可执行程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的可执行程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和可执行程序产品的流程图和/或方框图来描述的。应理解可由可执行程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些可执行程序指令到通用计算机、专用计算机、嵌入式处理机或参考可编程数据处理设备的处理器以产生一个机器,使得通过计算机或参考可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些可执行程序指令也可存储在能引导计算机或参考可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些可执行程序指令也可装载到计算机或参考可编程数据处理设备上,使得在计算机或参考可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或参考可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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