容器云、容器云的资源管理方法与流程

文档序号:23684598发布日期:2021-01-23 09:11阅读:115来源:国知局
容器云、容器云的资源管理方法与流程

[0001]
本申请涉及云服务技术领域,尤其涉及一种容器云以及一种容器云的资源管理方法。


背景技术:

[0002]
因为云服务器具有快速部署、升级和维护的方便,所以目前采用容器云部署服务器的客户越来越多;相应的,容器云需要支持的客户数量逐渐递增。为了保证容器云资源的有效利用,在某一客户端离线后能够快速回收为此客户端配置的资源,容器云还需要监控客户端的在线状态。
[0003]
现有技术中,为了监控客户端的在线状态,容器云的资源管理服务器的采用轮询的方式向客户端发起在线状态探测报文,在时间阈值内没有收到客户端返回的相应报文时即判定客户端离线而回收相应的资源。但是,随着客户端数量的快速增加,资源管理服务器的主动探测压力增大,其稳定性也降低。


技术实现要素:

[0004]
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种容器云资源管理方法和装置。
[0005]
一方面,本申请提供一种容器云资源管理方法,应用于包括状态检测服务器和资源管理服务器的容器云;所述方法包括:
[0006]
状态检测服务器接收客户端发送的心跳信息时,初始化计时时间而开始计时;以及,
[0007]
在所述计时时间大于过期时间还未接收到所述客户端再次发送的心跳信息的情况下,生成客户端离线信息,并将所述客户端离线信息推送给所述资源管理服务器;
[0008]
所述资源管理服务器基于接收到的所述客户端离线信息,回收为所述客户端分配的资源。
[0009]
可选地,所述心跳信息包括发送时间戳;
[0010]
所述初始化计时时间而开始计时,包括:以所述发送时间戳时间点为起点,初始化所述计时时间而开始计时。
[0011]
可选地,所述心跳信息还包括设定计时时间;
[0012]
所述状态检测服务器将所述设定计时时间作为所述过期时间。
[0013]
可选地,容器云资源管理方法还包括:
[0014]
所述状态检测服务器接收客户端发送的心跳信息,并且根据所述心跳信息确定所述客户端为新上线客户端的情况下,生成客户端上线信息,并将所述客户端上线信息推送给所述资源管理服务器;
[0015]
所述资源管理服务器基于接收到的所述客户端上线信息,为所述新上线客户端分配资源。
[0016]
可选地,所述将所述客户端离线信息推送给所述资源管理服务器,包括:
[0017]
将所述客户端离线消息发送给所述资源管理服务器的异步消息队列中,而推送给所述资源管理服务器。
[0018]
另一方面,本申请提供一种容器云,包括状态检测服务器和资源管理服务器;
[0019]
所述状态检测服务器用于接收客户端发送的心跳信息时,初始化计时时间而开始计时;以及,在所述计时时间大于过期时间还未接收到所述客户端再次发送的心跳信息的情况下,生成客户端离线信息,并将所述客户端离线信息推送给所述资源管理服务器;
[0020]
所述资源管理服务器用于基于接收到的所述客户端离线信息,回收为所述客户端分配的资源。
[0021]
可选地,所述心跳信息包括发送时间戳;所述状态检测服务器以所述发送时间戳时间点为起点,初始化所述计时时间而开始计时。
[0022]
可选地,所述心跳信息还包括设定计时时间;
[0023]
所述状态检测服务器将所述设定计时时间作为所述过期时间。
[0024]
可选地,所述状态检测服务器在接收客户端发送的心跳信息,并且根据所述心跳信息确定所述客户端为新上线客户端的情况下,生成客户端上线信息,并将所述客户端上线信息推送给所述资源管理服务器;
[0025]
所述资源管理服务器还用于,基于接收到的所述客户端上线信息,为所述新上线客户端分配资源。
[0026]
可选地,所述状态检测服务器将将所述客户端离线信息推送给所述资源管理服务器,具体为:
[0027]
将所述客户端离线消息发送给所述资源管理服务器的异步消息队列中,而推送给所述资源管理服务器。
[0028]
本申请提供的容器云和容器云资源管理方法中,容器云中用于检测客户端是否仍然在线的任务被分配给状态检测服务器,而不再由资源管理服务器执行。通过增加状态检测服务器,使得资源管理服务器的负载相应地降低,并可专注于容器云资源分配任务,保证了资源管理服务器性能稳定。
附图说明
[0029]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0030]
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]
图1是本申请实施例提供的容器云系统的结构示意图;
[0032]
图2是本申请实施例提供的容器云资源管理方法流程图;
[0033]
图3是本申请实施例提供的触发资源管理服务器为客户端分配资源的流程图;
[0034]
其中:01-客户端,11-状态检测服务器,12-资源管理服务器,13-任务服务器。
具体实施方式
[0035]
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0036]
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。本申请实施例提供一种容器云资源的管理方法,用于使得容器云能够更确定断开连接的客户端,继而释放为此客户端分配的资源。
[0037]
图1是本申请实施例提供的容器云系统的结构示意图。如图1所示,本申请实施例提供的容器云系统包括容器云和客户端;其中,容器云包括状态检测服务器11、资源管理服务器12以及用于实际提供云服务的任务服务器13。
[0038]
本申请实施例中,客户端01可以与状态检测服务器11连接,以向状态检测服务器11发送心跳信息;客户端01还可以与实际提供云服务资源的任务服务器13建立连接,以传输业务数据。
[0039]
图2是本申请实施例提供的容器云资源管理方法流程图。如图2所示,本申请实施例提供的容器云资源管理方法包括步骤s101-s103。
[0040]
其中,步骤s101和s102由状态检测服务器执行,步骤s103由资源管理服务器执行。
[0041]
s101:在接收到客户端发送的心跳信息时,初始化计时时间而开始计时。
[0042]
本申请实施例中,客户端在上线后可以向状态检测服务器发送心跳信息。具体应用中,客户端可以采用restful api提供的保活接口https://ip:port/keepalive向状态检测服务器发送心跳信息,以告知状态检测服务器自己仍处在在线状态。
[0043]
本申请实施例中,客户端发送的心跳信息至少包括唯一化表示客户端的身份标识,标识可以采用客户端的mac地址等信息确定。
[0044]
状态检测服务器在接收到客户端发送的心跳信息后,根据心跳信息中的身份标识确定此客户端仍处在在线状态,因此为此客户端初始化计时时间而开始计时;计时时间是一累积时间,在其初始化后被设置为0,并重新开始累积。
[0045]
s102:在计时时间超过过期时间还未接收到客户端再次发送的心跳信息的情况下,生成客户端离线信息,并将客户端离线信息推送给资源管理服务器。
[0046]
状态检测服务器中设置的过期时间是一用于判断客户端是否离线的阈值时间。在状态服务器初始化计时时间开始计时,并且计时时间超过过期时间但并没有收到客户端再次发送的信息后,状态服务器认定客户端已经离线;随后状态检测服务器基于客户端已经离线的判断,生成对应此客户端的客户端离线信息。应当注意的是,客户端离线信息中包括被认定为已离线的客户端的标识。
[0047]
本申请实施例中,状态检测服务器发送客户端离线信息的方式可以以订阅服务的形式提供给资源管理服务器。资源管理服务器订阅相应的主题后,状态检测服务器确定资源管理服务器的地址。在生成新的客户端离线信息后,状态检测服务器即将客户端离线信息发送给资源管理服务器。
[0048]
在本申请实施例中,资源管理服务器可以设置异步消息队列,状态检测服务器可以将客户端离线消息发送到资源管理服务器的异步消息队列中,而将客户端离线消息推送
给资源管理服务器。如此,资源管理服务器可以根据自身任务状态调用异步消息队列中的消息,而逐个地处理消息。
[0049]
s103:基于接收到的客户端离线信息,回收向客户端分配的资源。
[0050]
资源管理服务器在接收到客户端离线信息后,根据其中的客户端标识确定此客户端已经离线,因此即将为此客户端分配的资源回收,以避免资源被长期无效占用。
[0051]
本申请实施例中,容器云中用于检测客户端是否仍然在线的任务被分配给状态检测服务器,而不再由资源管理服务器执行。通过增加状态检测服务器,使得资源管理服务器的负载相应地降低,并可专注于容器云资源分配任务,保证了资源管理服务器性能稳定。
[0052]
本申请实施例一个应用提供的容器云系统中,客户端可以配置用于向状态检测服务器主动发送心跳信息的功能模块;在客户端上线并与容器云建立连接后,主动地向状态检测服务器发送心跳信息。
[0053]
本申请实施例的一个具体应用中,客户端发送的心跳信息中可以包括发送时间戳。发送时间戳是用于表示客户端发出心跳信息时间的标识。对应的,状态检测服务器在接收到心跳信息后,可以以其中的发送时间戳作为计时起点而开始计时,并当计时时间大于过期时间后判定客户端已经离线。
[0054]
因为采用客户端提供的发送时间戳作为计时起点,而没有以接收到心跳信息的时间点作为计时起点,所以将心跳信息在网络传输过程中产生的时间消耗放在计时时间内,使得对客户端是否离线的判断更及时。因为对客户端是否离线的判断更为及时,所以客户端离线信息生成也更为及时,资源管理服务器也可以更早地回收服务器为此客户端分配的资源,实现资源利用率的提高。
[0055]
在本申请实施例其他应用中,客户端发送的心跳信息也可以不包括发送时间戳。对应的,状态检测服务器以接收到心跳信息的时间点作为起点开始计时。
[0056]
本申请实施例具体应用中,心跳信息中还可以包括设定计时时间。设定计时时间是客户端设定的,用于告知状态检测服务器设置过期时间特性的一时间。客户端可以根据自身任务的类型、网络状态和优先级指定计时时间。状态检测服务器在接收到心跳信息后,可以将其中的设定计时时间作为过期时间。
[0057]
在另外一个应用中,状态检测服务器还可以存储客户端的优先级别、客户端的任务类型等用于判定如何设置客户端计时时间的数据表,以根据数据表中的客户端优先级、客户端任务类型设定过期时间。在其他应用中,状态检测服务器还可以为各个客户端均设定默认的过期时间。
[0058]
本申请实施例一具体应用中,状态检测服务器还可以用于在客户端上线后,触发资源管理服务器为客户端分配资源。图3是本申请实施例提供的触发资源管理服务器为客户端分配资源的流程图。
[0059]
如图3所示,状态检测服务器触发为客户端分配资源的步骤包括s201-s204。
[0060]
s201:接收客户端发送的心跳信息,提取身份标识。
[0061]
为实现状态检测服务器为客户端分配资源的功能,客户端被配置为在上线初始化完成后即向状态检测服务器发送心跳信息;状态检测服务器在接收到心跳信息后,提取其中的身份标识。
[0062]
s202:根据身份标识确定客户端是否在自己的状态列表中;如果否,执行s203。
[0063]
s203:认定客户端为新上线客户端,生成客户端上线信息,并将客户端上线信息发送给资源服务器。
[0064]
在此客户端并没有在自己的状态列表的情况下,认定此客户端为新上线客户端。状态检测服务器随即生成客户端上线信息,并将客户端上线信息发送给资源管理服务器。
[0065]
s204:基于接收到的客户端上线信息,为客户端分配资源。
[0066]
资源管理服务器在接收到客户端上线信息后,为新上线的客户端分配资源;随后分配资源所在的任务服务器建立与新上线客户端的连接而向此客户端提供服务。
[0067]
因为可以由状态检测服务器专门用于确定客户端的上线和下线,所以资源管理服务器可以仅处理资源分配和回收任务。
[0068]
在本申请实施例其他应用中,客户端在初始化完成后,也可以直接向资源管理服务器发送客户端上线信息,并直接由资源管理服务器分配资源。在此情况下,状态检测服务器可以接收客户端发送的心跳信息而开始初始化的计时,也可以接收由资源管理服务器发送的已分配资源的信息而开始初始化的计时。
[0069]
除了提供前述的容器云资源管理方法外,本申请实施例还提供一种容器云。
[0070]
如图1所示,本申请实施例提供的容器云包括状态检测服务器11和资源管理服务器12,另外,容器云中还包括用于真实为客户端01提供服务的任务服务器13。
[0071]
状态检测服务器11与客户端01至少进行单向的通信连接,以接收客户端01发送的心跳信息。状态检测服务器11用于在接收到客户端01发送的心跳信息时,初始化计时时间而开始计时;在计时时间超大于过期时间还未接收到客户端01再次发送的心跳信息情况下,生成客户端离线信息,并将客户端离线信息推送给资源管理服务器12。
[0072]
状态检测服务器11在接收到客户端01发送的心跳信息后,根据心跳信息中的身份表示确定此客户端01仍处在在线状态,因此为此客户端01初始化计时时间而开始计时;计时时间是一累积时间,在其初始化后被设置为0,并重新开始累积。
[0073]
在状态服务器初始化计时时间开始计时,并且计时时间超过过期时间但并没有收到客户端01再次发送的信息后,状态服务器认定客户端01已经离线;随后状态检测服务器11基于客户端01已经离线的判断,生成对应此客户端01的客户端离线信息。应当注意的是,客户端离线信息中包括被认定为已离线的客户端01的标识。
[0074]
本申请实施例中,状态检测服务器11发送客户端离线信息的方式可以以订阅服务的形式提供给资源管理服务器12。资源管理服务器12订阅相应的主题后,状态检测服务器11确定资源管理服务器12的地址。在生成新的客户端离线信息后,状态检测服务器11即将客户端离线信息发送给资源管理服务器12。
[0075]
在本申请实施例中,状态检测服务器11可以将客户端离线信息发送到资源管理服务器12的异步消息队列中,而将客户端离线信息推送给资源管理服务器12。如此,资源管理服务器12可以根据自身任务状态调用异步消息队列中的消息,而逐个地处理对应的任务。
[0076]
资源管理服务器12用于基于接收到的客户端离线信息,回收为服务器分配的资源。资源管理服务器12在接收到客户端离线信息后,根据其中的客户端01标识确定此客户端01已经离线,因此即将为此客户端01分配的资源回收,以避免资源被长期无效占用。
[0077]
本申请实施例中,容器云中用于检测客户端01是否仍然在线的任务被分配给状态检测服务器11,而不再由资源管理服务器12执行。通过增加状态检测服务器11,使得资源管
理服务器12的负载相应地降低,并可专注于容器云资源分配任务,保证了资源管理服务器12性能稳定。
[0078]
在一个具体应用中,客户端01发送的心跳信息可以包括发送时间戳。状态检测服务器11在接收到心跳信息后,提取心跳信息中的发送时间作为计时的起点,初始化计时时间而开始计时。
[0079]
因为采用客户端01提供的发送时间戳作为计时起点,而没有以接收到心跳信息的时间点作为计时起点,所以将心跳信息在网络传输过程中产生的时间消耗放在计时时间内,使得对客户端01是否离线的判断更及时。因为对客户端01是否离线的判断更为及时,所以客户端离线信息生成也更为及时,资源管理服务器12也可以更早地回收服务器为此客户端01分配的资源,实现资源利用率的提高。
[0080]
本申请实施例一应用中,客户端01发送的心跳信息还可以包括设定计时时间。状态检测服务器11在接收到心跳信息后,将其中的设定计时时间作为过期时间。
[0081]
在另外一个应用中,状态检测服务器11还可以存储由客户端01的优先级别,客户端01的任务类型等用于判定如何设置客户端01计时时间的数据表,以根据数据表中的客户端01优先级、客户端01任务类型设定过期时间。
[0082]
本申请实施例的另一具体应用中,状态检测服务器11还可以用于触发资源管理服务器12为客户端01分配资源。具体的,客户端01被配置为在上线初始化完成后即向状态检测服务器11发送心跳信息;状态检测服务器11在接收到心跳信息后,提取其中的标识确定此客户端01并没有在自己的状态列表的情况下,确定此客户端01为新上线客户端01。
[0083]
状态检测服务器11随即生成客户端上线信息,并将客户端上线信息发送给资源管理服务器12。资源管理服务器12在接收到客户端上线信息后,为新上线的客户端01分配资源。分配资源所在的任务服务器13建立与新上线客户端01的连接而向此客户端01提供服务。
[0084]
在本申请实施例其他应用中,客户端01在初始化完成后,也可以直接向资源管理服务器12发送客户端上线信息,并直接由资源管理服务器12分配资源。在此情况下,状态检测服务器11可以接收客户端01发送的心跳信息而开始初始化的计时,也可以接收由资源管理服务器12发送的已分配资源的信息而开始初始化的计时。
[0085]
本申请实施例还提出一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储程序或指令,程序或指令使计算机执行如前容器云资源管理的方法各实施例的步骤,为避免重复描述,在此不再赘述。
[0086]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0087]
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1