确定资源余量的方法、装置、存储介质和电子设备与流程

文档序号:20917192发布日期:2020-05-29 13:41阅读:291来源:国知局
确定资源余量的方法、装置、存储介质和电子设备与流程

本公开涉及网络运维领域,具体地,涉及一种确定资源余量的方法、装置、存储介质和电子设备。



背景技术:

在网络云平台中,通常由多个网络设备(或称物理机)组成的集群为云平台中的多种业务提供服务。具体地,可以通过容器技术为将上述的集群隔离为多个服务器,并通过每一个服务器为不同的业务提供数据交换、数据储存和数据处理等服务。在具体的集群隔离过程中,可以通过集群管理平台,例如,hulk调度平台,对容器(或称在物理机上隔离出的服务器)的生命周期进行管理,例如,在业务需要时向集群申请资源以创建新的容器,或者在业务停止时释放容器所占用的资源。



技术实现要素:

本公开的主要目的是提供一种确定资源余量的方法、装置、存储介质和电子设备,以解决相关技术中资源余量监测时批量抓取资源数据、资源分析耗时较长并且缺乏实时性的技术问题。

为了实现上述目的,本公开第一方面提供一种确定资源余量的方法,所述方法包括:

监听集群中的目标管理事件,其中,所述目标管理事件为针对于目标物理机或所述目标物理机中的容器的管理事件,所述集群包含至少一个物理机,所述目标物理机为所述集群中的任一物理机;

根据监听到的所述目标管理事件和所述集群的历史资源余量,确定在执行所述管理事件后所述集群的目标资源余量。

可选的,所述监听集群中的目标管理事件,包括:

监听针对于所述目标物理机或所述容器的事件消息;

根据所述目标物理机的状态信息或所述容器的状态信息,确定所述事件消息对应的事件是否为能够改变所述目标物理机的状态或所述容器的状态的可执行事件;

在确定所述事件消息对应的管理事件为所述可执行事件的情况下,确定将所述事件消息对应的管理事件作为所述目标管理事件。

可选的,所述根据监听到的所述目标管理事件和所述集群的历史资源余量,确定在执行所述管理事件后所述集群的目标资源余量,包括:

确定所述目标管理事件是否为资源管理事件,所述资源管理事件为在所述集群中添加、修改或删除所述目标物理机的第一管理事件,或者,在所述目标物理机上创建、修改或删除容器的第二管理事件;

若确定所述目标管理事件为所述资源管理事件,根据所述目标管理事件和所述集群的历史资源余量,确定所述目标资源余量。

可选的,所述根据所述目标管理事件和所述集群的历史资源余量,确定所述目标资源余量,包括:

确定在执行所述目标管理事件后所述集群的资源变化量,所述资源变化量为资源增加量或资源减少量;

根据所述历史资源余量和所述资源变化量,确定所述目标资源余量。

可选的,在所述监听集群中的目标管理事件后,所述方法还包括:

在确定所述事件消息对应的管理事件为所述可执行事件的情况下,更新所述目标物理机的状态信息或所述容器的状态信息。

可选的,在所述根据所述目标管理事件和所述集群的历史资源余量,确定在执行所述目标管理事件后所述集群的目标资源余量之后,所述方法还包括:

通过根据所述目标资源余量生成的资源余量记录对所述集群在执行所述目标管理事件前的历史资源余量记录进行更新,以根据更新后的所述历史资源余量记录,确定所述集群的资源余量的变化趋势。

本公开第二方面提供一种确定资源余量的装置,所述装置包括:

事件监听模块,用于监听集群中的目标管理事件,其中,所述目标管理事件为针对于目标物理机或所述目标物理机中的容器的管理事件,所述集群包含至少一个物理机,所述目标物理机为所述集群中的任一物理机;

资源余量确定模块,用于根据监听到的所述目标管理事件和所述集群的历史资源余量,确定在执行所述管理事件后所述集群的目标资源余量。

可选的,所述事件监听模块,用于:

监听针对于所述目标物理机或所述容器的事件消息;

根据所述目标物理机的状态信息或所述容器的状态信息,确定所述事件消息对应的事件是否为能够改变所述目标物理机的状态或所述容器的状态的可执行事件;

在确定所述事件消息对应的管理事件为所述可执行事件的情况下,确定将所述事件消息对应的管理事件作为所述目标管理事件。

可选的,所述资源余量确定模块,用于:

确定所述目标管理事件是否为资源管理事件,所述资源管理事件为在所述集群中添加、修改或删除所述目标物理机的第一管理事件,或者,在所述目标物理机上创建、修改或删除容器的第二管理事件;

若确定所述目标管理事件为所述资源管理事件,根据所述目标管理事件和所述集群的历史资源余量,确定所述目标资源余量。

可选的,所述资源余量确定模块,用于:

确定在执行所述目标管理事件后所述集群的资源变化量,所述资源变化量为资源增加量或资源减少量;

根据所述历史资源余量和所述资源变化量,确定所述目标资源余量。

可选的,所述装置还包括:

状态更新模块,用于在确定所述事件消息对应的管理事件为所述可执行事件的情况下,更新所述目标物理机的状态信息或所述容器的状态信息。

可选的,所述装置还包括:

记录更新模块,用于通过根据所述目标资源余量生成的资源余量记录对所述集群在执行所述目标管理事件前的历史资源余量记录进行更新,以根据更新后的所述历史资源余量记录,确定所述集群的资源余量的变化趋势。

本公开第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的确定资源余量的方法的步骤。

本公开第四方面提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述的确定资源余量的方法的步骤。

采用本公开提供的技术方案,至少可以达到如下技术效果:

监听集群中的目标管理事件,其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机;根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。能够在监听到集群的管理事件后,立即确定该管理事件对集群的资源量的影响,进而确定集群的资源总量,提高资源余量监测和分析的效率和实时性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种确定资源余量的方法的流程图;

图2是根据图1示出的一种监听管理事件的方法的流程图;

图3是根据图2示出的一种确定集群资源余量的方法的流程图;

图4是根据图1示出的另一种确定资源余量的方法的流程图;

图5是根据图4示出的又一种确定资源余量的方法的流程图;

图6是根据一示例性实施例示出的一种确定资源余量的装置的框图;

图7是根据图6示出的另一种确定资源余量的装置的框图;

图8是根据图6示出的又一种确定资源余量的装置的框图;

图9是根据一示例性实施例示出的一种电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

在相关技术中,在向集群管理平台中的业务申请资源以创建新的容器时,首先需要进行对整个集群的资源余量进行监测和管理,以确保在适当的物理机中存在足够的资源以完成新的容器的创建。以hulk调度平台为例,通常通过kubernetes应用(简称:k8s,其为一个开源的,用于管理云平台中多个物理机上的容器化的应用)对集群内的资源统一管理。在集群运行的过程中,k8s应用对集群的资源余量进行监测。可以每隔预设时间(例如,一小时)对该预设时间之内监测到的资源数据进行全量拉取,并根据拉取的资源数据计算得到集群的资源余量,并将其保存在数据库中。在进行资源余量查询时,可以从数据库中查看保存的资源余量数据。但是,上述全量拉取集群数据的方式,耗时较长,且每间隔一段时间才进行一次资源余量的计算,缺乏实时性,进而导致整个集群扩容的成功率较差,影响对业务的承诺和系统的稳定性。

发明人注意到这一问题,提出了一种确定资源余量的方法,具体如下:

本公开实施例提供的集群资源管理方法的执行主体可以为集群管理设备或者该集群管理设备或该集群中的某一个物理机中能够实现该集群资源管理方法的功能模块和/或功能实体。具体的可以根据实际使用需求确定,本公开实施例不作限定。

下面以集群管理设备为该集群资源管理方法的执行主体为例,对本公开实施例提供的集群资源管理方法进行示例性的说明。本公开实施例中,提供的上述集群资源管理方法可以应用于集群调度领域,具体的可以应用在集群调度领域中各类公有云、私有云的云产品在涉及到集群资源调度的场景中。

图1是根据一示例性实施例示出的一种确定资源余量的方法的流程图,如图1所示,应用于集群管理设备,集群管理设备用于管理由多个物理机组成的集群,该方法包括以下步骤:

在步骤101中,监听集群中的目标管理事件。

其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机。

示例地,对物理机或物理机中的容器的管理事件通常会导致整个集群的资源的增加或减少。例如,针对于物理机的管理事件可以包括:物理机的添加事件、删除事件、修改事件和错误事件等;针对于某个物理机中的容器的事件可以包括:容器的创建事件、等待事件、修改事件、删除时间和错误事件等。通常集群中的资源可以由kubernetes(简称:k8s)平台统一管理。k8s平台为一个开源的,用于管理云平台中多个物理机上的容器化的应用。本公开实施例中,集群管理设备监听集群的事件可以通过监听k8s平台中的所有事件实现。

在步骤102中,根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。

示例地,在本公开实施例中,可以通过集群的历史资源余量获知集群中每个物理机的资源余量,并且在监听到有一台物理机上机,加入该集群的调度时,则可以将该物理机的中央处理器(centralprocessingunit,cpu)、内存、数据盘、和镜像盘的加入集群的资源总量,从而得到目标资源余量。并且,在监听到容器的创建事件的情况下,若该容器调度至集群中的某一个物理机上,则将这台物理机的资源余量减去此容器占用的资源量,得到这台物理机剩余的资源余量。相应的,若监听到该容器的删除事件,则将该容器所在的物理机的资源余量加上该容器所占用的资源量,进而计算得到上述目标资源余量。

以hluk为例,集群管理方式可以包括:集群管理设备可以设置k8s订阅转发中心,对k8s的所有事件进行监听,以获知集群的所有事件。并将这些监听到的事件通过消息队列的消息形式发送给资源余量服务进行统一处理。资源余量服务接收到事件后,可以通过其中的管理模块根据k8s订阅转发中心监听到的集群的事件,以及缓存中保存的该集群的当前状态,计算集群的资源余量,并将计算的结果(即上述实施例中的目标资源余量)存储到数据库中。外部调用可通过直接获取数据库中的数据获取资源余量。资源余量服务接收到事件后,可以通过其中的管理模块(通常可称为:carter-manager)将物理机和容器的信息(可以为标识)和当前状态保存到缓存(k8s中通常可以称为:cellar)中。

示例地,资源余量服务中的管理模块还可以从获取中获取集群的状态信息,并根据集群的状态以及k8s订阅转发中心监听到的集群的事件,更新集群的状态信息,并将更新后的状态信息保存在缓存中。资源余量服务中的管理模块还可以在每次计算出目标资源余量之后,将其保存在历史数据库中,以供后续对资源余量的变化趋势进行分析。资源余量服务中的服务模块主要用于在外部需要调用集群的资源时,服务模块可以为其提供该集群的资源余量。

示例地,针对于物理机,该物理机进行了上机加入调度,资源余量管理平台感知到这个变化,判断是否可以将物理机的cpu、内存、数据盘、镜像盘的数据加入集群的资源总量。若物理机有修改事件,资源余量管理平台感知到这个变化,对比物理机的cpu、内存、数据盘、镜像盘的数据是否发生变化,进而确定变化后的资源余量。物理机有删除事件,则将删除的物理机的资源从资源总量中除去。同样的,针对于任意容器,在业务请求申请容器之后,进入容器创建阶段,创建容器时,资源余量服务感知到这个变化(即接收到k8s订阅转发中心创建容器的事件),判断这个容器有没有调度到一台物理机上。如果已经调度上了,则将这台物理机的资源减去此容器占用的资源。如果还没有调度到任何一台物理机上,则保存这个状态,等待容器修改事件,一旦收到的事件中容器所在物理机不为空,则将这台物理机的资源减去此容器占用的资源。相应的一旦接收到删除事件,则将这台物理机的资源加上此容器占用的资源。

综上所述,本公开的实施例所提供的技术方案,监听集群中的目标管理事件,其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机;根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。能够在监听到集群的管理事件后,立即确定该管理事件对集群的资源量的影响,进而确定集群的资源总量,提高资源余量监测和分析的效率和实时性。

图2是根据图1示出的一种监听管理事件的方法的流程图,如图2所示,该步骤101包括:

在步骤1011中,监听针对于该目标物理机或该容器的事件消息。

在步骤1012中,根据该目标物理机的状态信息或该容器的状态信息,确定该事件消息对应的事件是否为能够改变该目标物理机的状态或该容器的状态的可执行事件。

示例地,在上述步骤1012中,可以通过有限状态机保证集群的状态流转的正确性,也即可以根据接收到的执行某事件的消息和集群的状态信息判断是否执行接收到的该事件。例如,如果物理机不存在,但是却收到了删除事件,则认为先于创建事件收到删除事件。则拒绝此消息的重发,直到先收到创建消息再处理删除。具体来说,在集群中不存在某个物理机的情况下,接收到了删除该物理机的事件的消息,可以认为先于创建事件接收到了删除事件,则可以拒绝删除该物理机的消息,直到接收到创建该物理机的消息之后,执行了创建该物理机的事件,并再次接收到了删除该物理机的事件的消息的情况下,才执行删除该物理机的事件。

示例地,通常集群的状态信息保存在缓存中,本公开实施例中,集群管理设备可以从缓存中获取集群的状态信息。在k8s中物理机的状态信息通常采用可以node的状态表征,容器的状态可以采用pod的状态表征。其中,node和pod均为k8s中的组件。其中,pod是一个抽象的概念,它包含一个或多个容器组成的容器组,还有这些容器共享的资源,这些资源包括:共享的存储,使用唯一的集群ip地址、如何运行容器的配置信息,比如镜像版本和容器端口。pod模型上类似于一个具有特定应用的逻辑主机,它可以包含相对紧密耦合的不同应用容器,同一个pod里的容器共享一个互联网协议(internetprotocol,ip)地址和端口段,协同工作和调度,并且在同一节点上的共享环境中运行。其中,pod必须在node上运行。node是k8s中的工作机器,可以是实体机可以是虚拟机,一个node可以运行多个pod,根据每个node的资源情况,可以集群中的node上调配pod。

在步骤1013中,在确定该事件消息对应的管理事件为该可执行事件的情况下,确定将该事件消息对应的管理事件作为该目标管理事件。

图3是根据图2示出的一种确定集群资源余量的方法的流程图,如图3所示,该步骤102,包括:

在步骤1021中,确定该目标管理事件是否为资源管理事件。

其中,该资源管理事件为在该集群中添加、修改或删除该目标物理机的第一管理事件,或者,在该目标物理机上创建、修改或删除容器的第二管理事件。

示例地,在执行接收到的该资源管理事件之后,使用有限状态机控制对集群资源余量的增加或者减少,以得到目标资源余量,这样可以实时准确的获取到资源余量。

在步骤1022中,若确定该目标管理事件为该资源管理事件,根据该目标管理事件和该集群的历史资源余量,确定该目标资源余量。

示例地,该步骤1022,包括:确定在执行该目标管理事件后该集群的资源变化量,该资源变化量为资源增加量或资源减少量;根据该历史资源余量和该资源变化量,确定该目标资源余量。

可选的,本公开实施例中以容器的创建事件为例,提供一种可选的实施方式,该实施方式包括下述步骤:

a、集群管理设备接收第一业务请求。

其中,所述第一业务请求用于请求创建第一容器;

b、集群管理设备获取集群的历史资源余量。

c、集群管理设备根据集群的历史资源余量,为第一容器在集群中的目标物理机上分配资源。

d、监听集群的事件。

e、在监听到在目标物理机上创建第一容器的事件之后,根据所述集群的历史资源余量和所述第一容器占用所述目标物理机的资源量,计算所述集群的目标资源余量。

上述实施例中,可以在监听到在目标物理机上创建第一容器的情况下,根据所述集群的历史资源余量和所述第一容器占用所述目标物理机的资源量,计算所述集群的目标资源余量,从而可以在每次监听到集群事件时,实时和准确的计算集群的资源余量,从而可以高效、实时和准确的获取到集群的资源余量。

图4是根据图1示出的另一种确定资源余量的方法的流程图,如图4所示,在步骤101之后,方法还包括:

在步骤103中,在确定该事件消息对应的管理事件为该可执行事件的情况下,更新该目标物理机的状态信息或该容器的状态信息。

示例地,本公开实施例中,可以根据的原有集群的状态信息(可以为上一次获取的集群的状态信息,即这一次监听到集群的事件之前获取的集群的状态信息),结合监听到的集群的管理事件,对原有的集群的状态信息进行更新,以获取集群在当前时间点的状态信息,再将将更新后的该状态信息保存到缓存中。其中,集群管理设备可以将集群当前的状态信息保存到缓存中,以供下一次监听到集群的管理事件之后,更新该集群的状态信息。

图5是根据图4示出的又一种确定资源余量的方法的流程图,如图5所示,在步骤102之后,该方法还包括:

在步骤104中,通过根据该目标资源余量生成的资源余量记录对该集群在执行该目标管理事件前的历史资源余量记录进行更新,以根据更新后的该历史资源余量记录,确定该集群的资源余量的变化趋势。

示例地,所述历史资源余量记录储存于集群的历史数据库中,该历史数据库与资源余量数据库可以为不同的数据库,其中可以采用成本低于资源余量数据库的数据库作为历史数据库,保存历史资源余量记录,以方便后续使用历史资源余量记录进行分析。作为一种可选的实现方式,或者,在集群管理设备将目标资源余量保存至该历史数据库中之后,本公开实施例提供的集群资源管理方法中,集群管理设备还可以根据集群在当前时间点之前的多条历史资源余量记录,分析集群的资源余量的变化趋势,进而对集群中的物理机进行管理,例如,在资源余量的变化趋势是越来越富余的情况下,可以减少集群中物理机的数量;在资源余量的变化趋势是越来越缺少的情况下,可以增加集群中物理机的数量,从而可以通过数据分析,根据集群中资源余量的变化趋势管理集群资源,更加合理的调整集群的架构。

综上所述,本公开的实施例所提供的技术方案,能够监听集群中的目标管理事件,其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机;根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。能够在监听到集群的管理事件后,在保证事件的正确性的情况下,确定该管理事件对集群的资源量的影响,进而确定集群的资源余量,提高资源余量监测的效率、实时性和精确度。

图6是根据一示例性实施例示出的一种确定资源余量的装置的框图,如图6所示,该装置600包括:

事件监听模块610,用于监听集群中的目标管理事件,其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机;

资源余量确定模块620,用于根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。

可选的,该事件监听模块610,用于:

监听针对于该目标物理机或该容器的事件消息;

根据该目标物理机的状态信息或该容器的状态信息,确定该事件消息对应的事件是否为能够改变该目标物理机的状态或该容器的状态的可执行事件;

在确定该事件消息对应的管理事件为该可执行事件的情况下,确定将该事件消息对应的管理事件作为该目标管理事件。

可选的,该资源余量确定模块620,用于:

确定该目标管理事件是否为资源管理事件,该资源管理事件为在该集群中添加、修改或删除该目标物理机的第一管理事件,或者,在该目标物理机上创建、修改或删除容器的第二管理事件;

若确定该目标管理事件为该资源管理事件,根据该目标管理事件和该集群的历史资源余量,确定该目标资源余量。

可选的,该资源余量确定模块620,用于:

确定在执行该目标管理事件后该集群的资源变化量,该资源变化量为资源增加量或资源减少量;

根据该历史资源余量和该资源变化量,确定该目标资源余量。

图7是根据图6示出的另一种确定资源余量的装置的框图,如图7所示,该装置600,还包括:

状态更新模块630,用于在确定该事件消息对应的管理事件为该可执行事件的情况下,更新该目标物理机的状态信息或该容器的状态信息。

图8是根据图7示出的又一种确定资源余量的装置的框图,如图8所示,该装置600还包括:

记录更新模块640,用于通过根据该目标资源余量生成的资源余量记录对该集群在执行该目标管理事件前的历史资源余量记录进行更新,以根据更新后的该历史资源余量记录,确定该集群的资源余量的变化趋势。

综上所述,本公开的实施例所提供的技术方案,能够监听集群中的目标管理事件,其中,该目标管理事件为针对于目标物理机或该目标物理机中的容器的管理事件,该集群包含至少一个物理机,该目标物理机为该集群中的任一物理机;根据监听到的该目标管理事件和该集群的历史资源余量,确定在执行该管理事件后该集群的目标资源余量。能够在监听到集群的管理事件后,在保证事件的正确性的情况下,确定该管理事件对集群的资源量的影响,进而确定集群的资源余量,提高资源余量监测的效率、实时性和精确度。

示例地,图9是根据一示例性实施例示出的一种电子设备900的框图。例如,电子设备900可以被提供为一服务器。参照图9,服务器900包括处理器901,其数量可以为一个或多个,以及存储器902,用于存储可由处理器901执行的计算机程序。存储器902中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器901可以被配置为执行该计算机程序,以执行上述的确定资源余量的方法。

另外,服务器900还可以包括电源组件903和通信组件904,该电源组件903可以被配置为执行服务器900的电源管理,该通信组件904可以被配置为实现服务器900的通信,例如,有线或无线通信。此外,该服务器900还可以包括输入/输出(i/o)接口905。服务器900可以操作基于存储在存储器902的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的确定资源余量的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由服务器900的处理器901执行以完成上述的确定资源余量的方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

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