本发明属于云计算技术领域,具体涉及一种云计算中容器的系统级管理方法。
背景技术:
在现有云计算环境中,所采用的负载均衡模式为:在前端服务和后台服务器集群之间增加代理服务器,每当前端服务需要资源时,前端服务向代理服务器发送资源分配请求;代理服务器接收到该请求后,依据设定的负载均衡策略,从后台服务器集群中选定特定的一台后台服务器,并由所选定的后台服务器向前端服务提供资源。
然而,发明人在实现本发明的过程中发现,现有技术至少存在以下问题:
在某个前端服务被启动以及运行的整个生命过程中,代理服务器只向该前端服务分配固定的某一台后台服务器,而一旦所分配的后台服务器出现故障,代理服务器难以有效快速的获知后台服务器出现故障而重新为前端服务分配新的后台服务器,因此,会导致前端服务出现中断的情况,降低了整个云计算系统的服务能力;而当整个云计算系统的服务能力降低后,云计算系统随之发生更大和更多故障的可能性升高,从而进一步影响系统稳定性。
可见,如果有效解决上述问题,具有重要意义。
技术实现要素:
针对现有技术存在的缺陷,本发明提供一种云计算中容器的系统级管理方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种云计算中容器的系统级管理方法,包括以下步骤:
步骤1,每当服务管理单元检测到某个服务i正在被启动时,所述服务管理单元立即生成与所述服务i唯一对应的服务监测单元i;
步骤2,在所述服务i启动时刻,所述服务i向所述服务监测单元i发送所需的目标容器数量n;
步骤3,所述服务监测单元i存储目标容器数量n,同时,向容器控制单元下发创建n个与所述服务i对应的容器的指令;
步骤4,所述容器控制单元在接收到所述指令后,创建n个具有相同初始资源的容器,并将所创建的n个容器分配给所述服务i;
同时,所述容器控制单元更新全局容器记录表,向所述全局容器记录表中增加所创建的每个容器的容器ID,同时,每个容器绑定有属性信息以及运行状态信息;所述属性信息指:所述容器所归属到的服务ID;所述运行状态信息包括:有效运行状态和无效运行状态,初始时,运行状态信息设定为有效运行状态;
步骤5,所述服务i在分配到n个容器后,转入运行状态;在所述服务i运行过程中,所述容器控制单元定时检测n个容器的实时运行状态信息,并用检测到的实时运行状态信息更新所述全局容器记录表;
此外,在所述服务i运行过程中,所述服务监测单元i按预设定时间间隔向所述容器控制单元发送与服务i对应且为有效运行状态的容器数量的查询请求消息;
所述容器控制单元在接收到所述查询请求消息后,判断所述查询请求消息是否为有效的查询请求消息,如果是,则查询所述全局容器记录表,获得与服务i对应且为有效运行状态的容器数量,记为m,并将容器数量m返回给所述服务监测单元i;
步骤6,所述服务监测单元i比较所述容器数量m是否小于所述目标容器数量n,如果小于,设差值为p,然后,所述服务监测单元i向所述容器控制单元下发立即创建p个与服务i对应的新容器的指令;
步骤7,所述容器控制单元在接收到所述指令后,判断所述指令是否为有效的指令,如果是,所述容器控制单元创建p个与服务i对应的新容器,并将所创建的p个新容器分配给服务i,同时,更新所述全局容器记录表;
通过上述步骤5-步骤7,使运行状态的服务i始终能够使用所需数量的容器。
优选的,步骤7之后,还包括:
步骤8-1,当所述服务管理单元检测到服务i正在退出时,所述服务管理单元 注销所述服务监测单元i,同时,所述服务管理单元向所述容器控制单元下发回收与所述服务i对应的容器的指令;
步骤9-1,所述容器控制单元回收与所述服务i对应的容器,并更新所述全局容器记录表。
优选的,步骤7之后,还包括:
步骤8-2,当所述服务管理单元检测到服务i需要升级到服务j时,所述服务管理单元注销所述服务监测单元i,同时,生成与所述服务j唯一对应的服务监测单元j;
另外,假设在所述服务i升级的初始时刻,所述服务i被分配的容器数量为B1个,而所述服务j所需的目标容器数量为B2个;
则:
所述容器控制单元首先回收1个与服务i对应的容器;然后,所述容器控制单元创建1个与所述服务j对应的容器;
然后,容器控制单元再回收1个与服务i对应的容器;然后,所述容器控制单元再创建1个与所述服务j对应的容器;
如此不断交替进行,如果B1小于B2,则当与服务i对应的容器均被回收完成后,再逐渐创建与所述服务j对应的剩下的容器,当创建的与所述服务j对应的容器数达到B2时,结束;
如果B1大于B2,则当创建的与所述服务j对应的容器数量达到B2时,再逐渐回收与所述服务i对应的剩下的容器,当回收的与服务i对应的容器数达到B1时,结束;
如果B1等于B2,则当创建的与所述服务j对应的容器数量达到B2时,结束。
优选的,步骤5中,所述容器控制单元通过以下方法判断所述查询请求消息是否为有效的查询请求消息:
如果所述容器控制单元接收到来自同一服务监测单元的超过设定频率的查询请求消息,则得到所述查询请求消息为无效的查询请求消息;否则,所述查询请求消息为有效的查询请求消息。
优选的,步骤7中,所述容器控制单元通过以下方法判断所述指令是否为有 效的指令:
如果所述容器控制单元接收到来自同一服务监测单元的超过设定频率的指令,则得到所述指令为无效的指令;否则,所述指令为有效的指令。
本发明提供的云计算中容器的系统级管理方法具有以下优点:
通过容器控制单元和服务监测单元的配合,可及时发现已向某个服务分配但转变为无效运行状态的容器,并及时向该服务分配新的可用容器,由此保证在某个服务被启动以及运行的整个生命过程中,始终使其被分配恒定数量的容器即资源,保证了服务连续不间断的运行,提高了整个云计算系统的服务能力、系统稳定性以及可靠性。
附图说明
图1为本发明提供的云计算中容器的系统级管理方法的结构示意图;
图2为本发明提供的云计算中容器的系统级管理方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
为方便对本发明理解,首先介绍两个基本概念:
云计算:是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以和IT、软件、互联网相关,也可是其他服务。
虚拟机:虚拟机是在计算机平台和终端用户之间建立一种环境,终端用户将基于这个软件所建立的环境来操作软件,而非直接操作裸机,或裸机上真实部署的操作系统。
容器:容器是伴随着轻量级虚拟化的发展而诞生的。在传统的虚拟化技术中,由于底层平台的不同,开发人员要花费大量的精力去关注资源、网络等等细节配置,降低了开发效率,增加了复杂度和迁移壁垒。容器技术位于裸机或 底层操作系统与上层应用之间,屏蔽了底层操作系统的细节,对于应用开发者展现出一致的接口。这样开发人员就不需要再关注与底层之间的调用对接、受限于不同的操作系统。
结合图1,本发明提供一种云计算中容器的系统级管理方法,包括以下步骤:
步骤1,每当服务管理单元检测到某个服务i正在被启动时,服务管理单元立即生成与服务i唯一对应的服务监测单元i;
本发明中,服务监测单元和服务中一一对应关系,每当检测到某个服务正在被启动时,即生成与该服务唯一对应的服务监测单元;而每当检测到某个服务正在退出时,即注销与该服务唯一对应的服务监测单元。
步骤2,在服务i启动时刻,服务i向服务监测单元i发送所需的目标容器数量n;
由于本发明涉及到的容器在有效运行状态下,均具有相同的初始资源,因此,本步骤中,服务只需要向服务监测单元发送所需的容器数量,就能够表征该服务所需的资源情况。
步骤3,服务监测单元i存储目标容器数量n,同时,向容器控制单元下发创建n个与服务i对应的容器的指令;
步骤4,容器控制单元在接收到指令后,创建n个具有相同初始资源的容器,所创建方法可以为:按照相应的容器模板创建容器;并将所创建的n个容器分配给服务i;
同时,容器控制单元更新全局容器记录表,向全局容器记录表中增加所创建的每个容器的容器ID,同时,每个容器绑定有属性信息以及运行状态信息;属性信息指:容器所归属到的服务ID,本发明中,某个服务可以被分配到多个容器,从而向该服务分配所需的资源;而每个容器只能唯一归属到一个服务;运行状态信息包括:有效运行状态和无效运行状态,初始时,运行状态信息设定为有效运行状态;
此处,在某个容器被分配给某个服务后,在运行过程中,某个容器所能够提供的资源数量有可能发生变化,一旦某个容器所提供的资源数量低于初始资源数量时,即认为该容器转变为无效运行状态。而有效运行状态是指:某个容器所提供的资源数量恒等于初始资源数量。
步骤5,服务i在分配到n个容器后,转入运行状态;在服务i运行过程中,容器控制单元定时检测n个容器的实时运行状态信息,并用检测到的实时运行状态信息更新全局容器记录表;
因此,在全局容器记录表中,可实时记录最新的各个容器的状态。
此外,在服务i运行过程中,服务监测单元i按预设定时间间隔向容器控制单元发送与服务i对应且为有效运行状态的容器数量的查询请求消息;
容器控制单元在接收到查询请求消息后,判断查询请求消息是否为有效的查询请求消息,此处,容器控制单元可通过以下方法判断查询请求消息是否为有效的查询请求消息:如果容器控制单元接收到来自同一服务监测单元的超过设定频率的查询请求消息,则得到查询请求消息为无效的查询请求消息;否则,查询请求消息为有效的查询请求消息。
如果是有效的查询请求消息,则查询全局容器记录表,获得与服务i对应且为有效运行状态的容器数量,记为m,并将容器数量m返回给服务监测单元i;
如果是无效的查询请求消息,表明容器控制单元接收到同一服务监测单元在短时间内发出的高频指示,则说明该服务可能出现了问题,如服务失效使得容器不断失败,或与其他服务监控有重复而引起指令的死循环等。在这种情况下,容器控制单元将停止响应该服务监测单元的指令,并对外报错。
步骤6,服务监测单元i比较容器数量m是否小于目标容器数量n,如果小于,设差值为p,然后,服务监测单元i向容器控制单元下发立即创建p个与服务i对应的新容器的指令;
步骤7,容器控制单元在接收到指令后,判断指令是否为有效的指令,此处,容器控制单元通过以下方法判断指令是否为有效的指令:如果容器控制单元接收到来自同一服务监测单元的超过设定频率的指令,则得到指令为无效的指令,并对外报错;否则,指令为有效的指令。
如果是有效的指令,容器控制单元创建p个与服务i对应的新容器,并将所创建的p个新容器分配给服务i,同时,更新全局容器记录表;
通过上述步骤5-步骤7,使运行状态的服务i始终能够使用所需数量的容器。
步骤7之后,还包括:
步骤8-1,当服务管理单元检测到服务i正在退出时,服务管理单元注销服务监测单元i,同时,服务管理单元向容器控制单元下发回收与服务i对应的容器的指令;
步骤9-1,容器控制单元回收与服务i对应的容器,并更新全局容器记录表。
步骤7之后,还包括:
步骤8-2,当服务管理单元检测到服务i需要升级到服务j时,服务管理单元注销服务监测单元i,同时,生成与服务j唯一对应的服务监测单元j;
另外,假设在服务i升级的初始时刻,服务i被分配的容器数量为B1个,而服务j所需的目标容器数量为B2个;
则:
容器控制单元首先回收1个与服务i对应的容器;然后,容器控制单元创建1个与服务j对应的容器;
然后,容器控制单元再回收1个与服务i对应的容器;然后,容器控制单元再创建1个与服务j对应的容器;
如此不断交替进行,如果B1小于B2,则当与服务i对应的容器均被回收完成后,再逐渐创建与服务j对应的剩下的容器,当创建的与服务j对应的容器数达到B2时,结束;
如果B1大于B2,则当创建的与服务j对应的容器数量达到B2时,再逐渐回收与服务i对应的剩下的容器,当回收的与服务i对应的容器数达到B1时,结束;
如果B1等于B2,则当创建的与服务j对应的容器数量达到B2时,结束。
步骤8-2的运行原因在于:当涉及到旧服务升级为新服务时,由于整个云计算系统的资源有限,因此,采用旧容器回收和新容器创建交替进行的方式,能够有效节约整个系统的资源开销,提高资源利用率。
由此可见,本发明提供的云计算中容器的系统级管理方法具有以下优点:
通过容器控制单元和服务监测单元的配合,可及时发现已向某个服务分配但转变为无效运行状态的容器,并及时向该服务分配新的可用容器,由此保证在某个服务被启动以及运行的整个生命过程中,始终使其被分配恒定数量的容器即资源,保证了服务连续不间断的运行,提高了整个云计算系统的服务能力、 系统稳定性以及可靠性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。