容器资源的管理方法、装置和云平台与流程

文档序号:16200459发布日期:2018-12-08 06:33阅读:225来源:国知局
容器资源的管理方法、装置和云平台与流程

本发明涉及云计算技术领域,尤其是涉及一种容器资源的管理方法、装置和云平台。

背景技术

容器是一种轻量级、可移植、自包含的软件打包技术,容器可以使应用程序在几乎任何地方都能以相同的方式运行。与传统的虚拟化技术不同,容器运行在操作系统的某一用户空间中,与操作系统的其他进程隔离,在体积上比虚拟机小很多。启动容器不需要启动整个操作系统,因此容器的部署和启动速度更快、开销更小,也更容易迁移。

用户在云平台上运行的业务在不同的时间段对容器数量的需求都不同,为了节约云平台的容器资源和用户的租用成本,在业务需求高峰时增加容器,可预防业务量突增导致服务器宕机。在业务需求下降时,减少容器数量可节省资源,同时保证业务平稳健康的运行。现有的云平台中,当需要为业务调整容器资源时,需要人工干预并手动部署,操作便捷性较差。



技术实现要素:

有鉴于此,本发明的目的在于提供一种容器资源的管理方法、装置和云平台,以对弹性伸缩组中的node节点或pod节点进行自动伸缩,从而提高容器资源与业务需求的匹配程度,提高云平台的资源利用率。

第一方面,本发明实施例提供了一种容器资源的管理方法,该方法应用于容器管理集群的master节点,方法包括:确定是否到达弹性伸缩组对应的容器资源调整时间;当确定到达容器资源调整时间时,获取弹性伸缩组的伸缩数与时间的对应关系;根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;伸缩数指示了弹性伸缩组的容器数量;根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;调整确定的容器运行节点,以使弹性伸缩组的容器数量与确定的伸缩数相匹配。

在本发明较佳的实施例中,上述弹性伸缩组预先设置有伸缩数阈值;伸缩数阈值包括最大伸缩数和最小伸缩数;上述伸缩数与时间的对应关系具体通过下述方式设置:获取预设时间段内,用户业务的历史运行数据;根据历史运行数据,确定用户业务的业务量与时间的对应关系;根据业务量与时间的对应关系,以及弹性伸缩组的伸缩数阈值,确定伸缩数与时间的对应关系。

在本发明较佳的实施例中,上述弹性伸缩组还预先设置有期望伸缩数;上述方法还包括:在容器资源调整时间以外的时间,监控弹性伸缩组的容器数量,如果容器数量超出弹性伸缩组的伸缩数阈值,根据期望伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;调整确定的容器运行节点,以使弹性伸缩组的容器数量与期望伸缩数相匹配。

在本发明较佳的实施例中,上述根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点的步骤,包括:如果弹性伸缩组的当前的容器数量小于确定的伸缩数,计算伸缩数与弹性伸缩组的当前的容器数量的差值;从待启动的容器运行节点中查找可运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;调整确定的容器运行节点的步骤,包括:将确定的容器运行节点添加至弹性伸缩组中。

在本发明较佳的实施例中,上述根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点的步骤,包括:如果弹性伸缩组的当前的容器数量大于确定的伸缩数,计算弹性伸缩组的当前的容器数量与伸缩数的差值;从弹性伸缩组对应的容器运行节点中查找运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;调整确定的容器运行节点的步骤,包括:从弹性伸缩组中移除查找到的确定的容器运行节点。

在本发明较佳的实施例中,上述方法还包括:监控弹性伸缩组中各个容器运行节点的运行状态;如果容器运行节点的运行状态为异常运行,终止异常运行的容器运行节点运行用户业务;启动新增容器运行节点以运行用户业务。

在本发明较佳的实施例中,上述终止异常运行的容器运行节点运行用户业务的步骤,包括:回收异常运行的容器运行节点的业务运行数据;将异常运行的容器运行节点的运行状态设置为停止运行。

在本发明较佳的实施例中,上述容器运行节点包括node节点;启动新增容器运行节点以运行用户业务的步骤包括:通过云资源提供平台确定待启动的新增node节点;设置新增node节点的配置信息;配置信息至少包括node节点类型、数据存储盘的类型和容量、配置名称、密码和弹性伸缩组可绑定的负载均衡;获取用户业务的镜像文件;将镜像文件部署至新增node节点中,将回收的业务运行数据转移至新增node节点中,以使新增node节点继续运行用户业务。

在本发明较佳的实施例中,上述容器运行节点包括pod节点;启动新增容器运行节点以运行用户业务的步骤包括:通过master节点中的rc控制器复制用户业务的镜像文件;在指定的node节点上创建新增pod节点;将复制的镜像文件运行在新增pod节点上,将回收的业务运行数据转移至新增pod节点中,以使新增pod节点继续运行用户业务。

第二方面,本发明实施例提供了一种容器资源的管理装置,该装置设置于容器管理集群的master节点,该装置包括:时间确定模块,用于确定是否到达弹性伸缩组对应的容器资源调整时间;对应关系获取模块,用于当确定到达容器资源调整时间时,获取弹性伸缩组的伸缩数与时间的对应关系;伸缩数确定模块,用于根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;伸缩数指示了弹性伸缩组的容器数量;容器运行节点确定模块,用于根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;第一调整模块,用于调整确定的容器运行节点,以使弹性伸缩组的容器数量与确定的伸缩数相匹配。

在本发明较佳的实施例中,上述弹性伸缩组预先设置有伸缩数阈值;伸缩数阈值包括最大伸缩数和最小伸缩数;伸缩数与时间的对应关系具体通过下述方式设置:获取预设时间段内,用户业务的历史运行数据;根据历史运行数据,确定用户业务的业务量与时间的对应关系;根据业务量与时间的对应关系,以及弹性伸缩组的伸缩数阈值,确定伸缩数与时间的对应关系。

在本发明较佳的实施例中,上述弹性伸缩组还预先设置有期望伸缩数;装置还包括:第一监控模块,用于在容器资源调整时间以外的时间,监控弹性伸缩组的容器数量,如果容器数量超出弹性伸缩组的伸缩数阈值,根据期望伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;第二调整模块,用于调整确定的容器运行节点,以使弹性伸缩组的容器数量与期望伸缩数相匹配。

在本发明较佳的实施例中,上述容器运行节点确定模块,还用于:如果弹性伸缩组的当前的容器数量小于确定的伸缩数,计算伸缩数与弹性伸缩组的当前的容器数量的差值;从待启动的容器运行节点中查找可运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;第一调整模块,还用于:将确定的容器运行节点添加至弹性伸缩组中。

在本发明较佳的实施例中,上述容器运行节点确定模块,还用于:如果弹性伸缩组的当前的容器数量大于确定的伸缩数,计算弹性伸缩组的当前的容器数量与伸缩数的差值;从弹性伸缩组对应的容器运行节点中查找运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;第一调整模块,还用于:从弹性伸缩组中移除查找到的确定的容器运行节点。

在本发明较佳的实施例中,上述装置还包括:第二监控模块,用于监控弹性伸缩组中各个容器运行节点的运行状态;终止模块,用于如果容器运行节点的运行状态为异常运行,终止异常运行的容器运行节点运行用户业务;启动模块,用于启动新增容器运行节点以运行用户业务。

在本发明较佳的实施例中,上述终止模块还用于:回收异常运行的容器运行节点的业务运行数据;将异常运行的容器运行节点的运行状态设置为停止运行。

在本发明较佳的实施例中,上述容器运行节点包括node节点,启动模块还用于:通过云资源提供平台确定待启动的新增node节点;设置新增node节点的配置信息;配置信息至少包括node节点类型、数据存储盘的类型和容量、配置名称、密码和弹性伸缩组可绑定的负载均衡;获取用户业务的镜像文件;将镜像文件部署至新增node节点中,将回收的业务运行数据转移至新增node节点中,以使新增node节点继续运行用户业务。

在本发明较佳的实施例中,上述容器运行节点包括pod节点,启动模块还用于:通过master节点中的rc控制器复制用户业务的镜像文件;在指定的node节点上创建新增pod节点;将复制的镜像文件运行在新增pod节点上,将回收的业务运行数据转移至新增pod节点中,以使新增pod节点继续运行用户业务。

第三方面,本发明实施例提供了一种云平台,云平台上运行有容器管理集群;容器管理集群包括master节点和弹性伸缩组;master节点连接有多个弹性伸缩组,弹性伸缩组中运行有用户的用户业务;权利要求10-18任一项的装置设置于master节点。

本发明实施例带来了以下有益效果:

本发明实施例提供了一种容器资源的管理方法、装置和云平台,当到达弹性伸缩组对应的容器资源调整时间时,根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;再根据该伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点,进而调整该容器运行节点。该方式基于时间对弹性伸缩组中的容器运行节点进行自动伸缩,使得弹性伸缩组中的容器数量满足当前时间的业务需求,同时在空闲时释放容器运行节点资源以节约成本,提高了容器资源与业务需求的匹配程度,从而提高了云平台的资源利用率。

本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种容器管理集群的结构示意图;

图2为本发明实施例提供的一种容器资源的管理方法的流程图;

图3为本发明实施例提供的一种容器资源的管理方法中,伸缩数与时间的对应关系设置方法的流程图;

图4为本发明实施例提供的另一种容器资源的管理方法的流程图;

图5为本发明实施例提供的另一种容器资源的管理方法的流程图;

图6为本发明实施例提供的另一种容器资源的管理方法的流程图;

图7为本发明实施例提供的一种容器资源的管理装置的结构示意图;

图8为本发明实施例提供的一种云服务器的结构示意图。

具体实施方式

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

为了便于理解,下面首先描述一种容器管理集群,作为本实施例容器资源的管理方法的应用场景;参见图1所示,在容器管理集群中设置有master节点,每个master节点监控设定范围或数量的弹性伸缩组;图1中以一个master节点为例进行说明,该master节点连接有一个弹性伸缩组,该弹性伸缩组包括多个容器运行节点;该容器运行节点包括node节点或pod节点。其中,node节点均与主节点连接,这些节点可以是物理服务器,也可以为虚拟机。

master节点中包含有apiserver和rc控制器(replicationcontroller,复制控制器);其中,apiserver是集群管理的api接口,也是集群内部各个模块之间的通信枢纽,同时,apiserver还可以对用户登录进行验证和授权,实现对集群进行安全控制。为了提高性能或实现高可用性,可以通过rc控制器指定一个应用需要复制几份,并为每份复制创建一个pod节点,同时确保任意时刻实际运行的pod节点数量始终与复制的数量相等,即rc控制器是pod的复制抽象,可以解决pod的扩容缩容问题。

node节点用于运行pod节点,图1中以两个node节点为例进行说明,分别为node节点a和node节点b;每个node节点可以运行多个pod节点;pod是基本的部署调度单元,其中包含一组容器和数据卷(也可以称为volume);由上述可知,容器用于运行应用程序;而数据卷中保存有与一个或多个容器相关联的特定文件或文件夹;在容器创建时间,数据卷进行初始化;容器在运行期间可以使用数据卷中的文件。pod节点也可以理解为应用的一个实例,例如,一个web应用通常由前端、后端和数据库三种组件组成,这三种组件可以运行在各自的容器中,并包含在同一个pod节点内。

通常,一个应用包含很多具体的功能和服务,pod节点就是实际运行应用并提供具体服务的地方,所有pod节点提供的服务组合到一起为完整的应用。不同应用的架构是不同的,如web应用可以只包含一个pod节点,所有用户都可以访问该pod节点中运行的web页面。对于较为复杂的应用,需要为每个应用的用户提供代码运行环境,所以需要为每一个登录的用户分配一个pod节点,通过pod节点提供用户隔离的代码运行环境,分配给用户的pod只是这个应用的一个组成部分。

上述容器管理集群中的service是pod节点的路由代理抽象,用于解决pod节点之间的服务发现问题。由于pod节点的运行状态通常是动态变化的,在切换机器、扩容、缩容过程中pod节点有可能被终止或变更运行位置,所以访问端(该访问端可以为集群内的其他pod节点,也可以为集群外的终端)不能以固定的ip方式访问某一pod节点并得到相关的服务。service可以保证pod节点的动态变化对访问端是透明的,访问端只需要知道service的地址,由service提供代理,service通过各个pod的labels就可以找到符合要求的pod节点。

现有方式中,当需要为业务调整资源时,需要人工干预并手动部署,这在一定程度上可以为每个用户业务合理调配资源,但对于时间敏感的用户业务,一天之内的业务量变化就会很明显且波动频率较高,此时如果还用人工手动调整部署的话,很明显工作负担较大,且资源调整的及时性也得不到保证,使得用户业务的业务量与容器资源的不能得到较高的匹配,仍然具有资源利用率较低,或资源不足影响业务正常运行的问题。

为了避免上述问题,基于此,本发明实施例提供的一种容器资源的管理方法、装置和云平台,该技术可以应用于提供各种云服务的云平台中。下面通过实施例进行具体介绍。

首先,参见图2所示的一种容器资源的管理方法的流程图,该方法应用于容器管理集群的master节点,该master节点通常连接有至少一个弹性伸缩组,该弹性伸缩组包括多个容器运行节点;该容器运行节点可以为node节点或pod节点。

该方法包括如下步骤:

步骤s202,确定是否到达弹性伸缩组对应的容器资源调整时间;

在实际实现时,可以设置一个时间列表,该时间列表中包含了上述弹性伸缩组对应的容器资源调整时间;该弹性伸缩组对应的容器资源调整时间具体可以从弹性伸缩组的伸缩数与时间的对应关系中提取,当然也可以由用户自行设置。通过预设的定时器可以实时监控当前时间是否上述弹性伸缩组对应的容器资源调整时间。

步骤s204,当确定到达容器资源调整时间时,获取弹性伸缩组的伸缩数与时间的对应关系;根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;该伸缩数指示了弹性伸缩组的容器数量;

该对应关系可以预先根据弹性伸缩组运行的用户业务设置;在弹性伸缩组的运行初期,云平台通常按照用户的需求为弹性伸缩组分配固定数量容器,这些容器由对应的容器运行节点运行,因此该弹性伸缩组对应的容器运行节点也相对固定。为了及时的调整容器数量,可以根据用户业务的历史运行数据预估该业务在不同时间段所需要的容器数量。例如,对于一些大型企业网站,根据该大型企业网站的历史运行数据,可以知晓白天业务量明显高于晚上的业务量;对于一些大型的购物平台,根据该购物平台的历史运行数据,可以知晓晚上的业务量明显高于白天的业务量。所以,为了使云平台的资源能够得到充分的利用,需要在不同时间段根据不同业务调整出一个与业务相匹配的伸缩数;作为优选,可以将得到的不同时间段的业务量整理为一个表格或公式的形式,以使云平台根据不同时间段设置不同的伸缩数,使得资源得到充分的利用。

上述容器资源调整时间通常为一个时间段,该容器资源调整时间可以根据业务运行的实际情况而定,例如典型的业务量高峰期和低峰期,搞活动期间和登录访问集中时间等,将这些时间段预估出来,并设置这些时间段的伸缩数;由于这些时间段所需的容器数量与通常情况下明显不同,因此调整容器资源调整时间的伸缩数可以提高容器数量与业务的匹配程度。

为了能够在容器资源调整时间及时调整容器数量,可以设置一个监听定时器;当时间到达容器资源调整时间时,从上述伸缩数与时间的对应关系中自动获取到对应的伸缩数。

步骤s206,根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;

由上述可知,容器运行节点可以为node节点也可以为pod节点;受集群中各类硬件资源条件的限制,不同的容器运行节点所能容纳的容器数量不同,且master节点对于弹性伸缩组内容器数量的调整需要通过调整容器运行节点实现;因此,当前容器资源调整时间对应的伸缩数确定后,需要选择合适的容器运行节点进行调整,通过调整选择的容器运行节点使得弹性伸缩组内容器数量的与确定的伸缩数相匹配。

例如,如果确定的伸缩数大于弹性伸缩组内当前的容器数量,通常需要从云资源提供平台调取新增的容器运行节点,该新增的容器运行节点的容量需要与增加的容器数量(即上述确定的伸缩数与弹性伸缩组内当前的容器数量的差值)相匹配;具体而言,新增的容器运行节点所能运行的容器数量需要等于或略大于增加的容器数量。如果确定的伸缩数小于弹性伸缩组内当前的容器数量,通常需要从弹性伸缩组内删除容器运行节点,该删除的容器运行节点中正常运行的容器数量需要与减少的容器数量(即上述弹性伸缩组内当前的容器数量与确定的伸缩数的差值)相匹配;具体而言,删除的容器运行节点当前运行的容器数量需要等于或略小于增加的容器数量。

步骤s208,调整确定的容器运行节点,以使弹性伸缩组的容器数量与确定的伸缩数相匹配。

具体地,在容器资源调整时间到达时,根据上述弹性伸缩组的伸缩数与时间的对应关系,如果此时弹性伸缩组的容器数量高于上述对应关系中容器资源调整时间对应的伸缩数,master节点则自动回收过量的容器运行节点,将其中的运行数据转移到弹性伸缩组内容器运行节点以外的容器运行节点中;如果在容器资源调整时间到达时,此时弹性伸缩组的容器运行节点低于上述对应关系中容器资源调整时间对应的伸缩数,master节点则创建新的容器运行节点,安装文件、设置配置信息后将用户业务运行至该容器运行节点。

本发明实施例提供了一种容器资源的管理方法,当到达弹性伸缩组对应的容器资源调整时间时,根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;再根据该伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点,进而调整该容器运行节点。该方式基于时间对弹性伸缩组中的容器运行节点进行自动伸缩,使得弹性伸缩组中的容器数量满足当前时间的业务需求,同时在空闲时释放容器运行节点资源以节约成本,提高了容器资源与业务需求的匹配程度,从而提高了云平台的资源利用率。

上述实施例中,通过预设的伸缩数与时间的对应关系调整弹性伸缩组中的容器数量,因此,伸缩数与时间的对应关系很大程度上决定了调整后的弹性伸缩组中的容器数量与用户业务的匹配程度;因此本实施例中,首先描述了伸缩数与时间的对应关系的设置方式。为了不使每个弹性伸缩组无限的扩大或缩小容器数量;弹性伸缩组通常预先设置有伸缩数阈值;该伸缩数阈值包括最大伸缩数和最小伸缩数。

例如,可以设置一个弹性伸缩组内的最大伸缩数为10个容器,最小伸缩数为2个容器;当然具体可以根据业务或云平台的实际情况确定。master节点可以定时监控每个弹性伸缩组中的容器数量;如果一个弹性伸缩组内创建的容器数量大于最大伸缩数,master节点则自动减少该伸缩组内的容器运行节点的数量;如果一个弹性伸缩组内创建的容器数量小于最小伸缩数,master节点则自动增加该伸缩组内的容器运行节点的数量。

参见图3所示,上述伸缩数与时间的对应关系的设置方式的具体流程描述如下:

步骤s302,获取预设时间段内,用户业务的历史运行数据;

该历史运行数据可以为cpu利用率、内存使用率、网卡流量、监听器流量等;其中,cpu利用率即容器运行节点中的容器运行用户业务的程序时占用的cpu百分比;如果cpu利用率较低,说明该容器运行节点利用率较低;如果cpu利用率较高,说明该容器运行节点利用率较高,但cpu利用率过高时,会影响用户业务的程序的运行速度,导致用户业务的性能、响应速度下降;另外,cpu使用率过高会导致容器运行节点中cpu温度过高,会大大缩短cpu寿命。上述内存利用率即容器运行节点运行用户业务的程序时占用的内存百分比,与上述cpu利用率类似,如果内存利用率较低,说明该容器运行节点利用率较低;如果内存利用率较高,说明该容器运行节点利用率较高,但内存利用率过高时,也会影响用户业务的程序的运行速度,进而影响用户业务的性能。

上述网卡出入流量即该容器运行节点的上行数据和下行数据量,如果网卡出入流量较高,通常说明该用户业务访问量较大。master节点或容器运行节点上可以设置有监听器,该监听器可以通过软件程序实现;该监听室可以用于监听指定容器运行节点或指定数据类型的流量;上述监听器出入流量可以表明用户业务中某些特定模块功能的访问量。上述数据包转发率通常用来衡量容器运行节点的数据吞吐能力和数据处理能力,当容器运行节点的数据包转发率较高时,也可以说明用户业务的业务量较大。

步骤s304,根据历史运行数据,确定用户业务的业务量与时间的对应关系;

根据上述获取用户业务的历史运行数据,可以看出在cpu利用率较高、内存使用率较高、网卡流量较多或监听器流量较多的时间段,可以确定该时间段内业务量较高;相应的,如果在cpu利用率较低、内存使用率较低、网卡流量较少或监听器流量较少的时间段,可以确定该时间段内的业务量较低。

步骤s306,根据业务量与时间的对应关系,以及弹性伸缩组的伸缩数阈值,确定伸缩数与时间的对应关系。

例如,根据得出的业务量与时间的对应关系,可以将业务量低的时间的伸缩数设置为最小伸缩数;将业务量高的时间的伸缩数设置为最大伸缩数,比如一些特殊节日;而在业务量较为平均的其他时间,可以按照比例设置最大伸缩数和最小伸缩数之间的伸缩数。

在上述方式当中,可以通过用户业务的历史运行数据,可以得出用户业务的业务量与时间的对应关系,进而得到伸缩数与时间的对应关系;弹性伸缩组根据该伸缩数与时间的对应关系调整容器运行节点数量时,可以使用户业务的实际需求与容器数量的匹配程度较高。

本发明实施例还提供另一种容器资源的管理方法,该方法在上述实施例基础上实现;本实施例重点描述伸缩数调整之后,对弹性伸缩组中容器数量的监控过程;上述伸缩数与时间的对应关系可能仅能控制容器资源调整时间内的伸缩数,在其他时间段,弹性伸缩组中的伸缩数可能会受到其他因素的控制,如实际业务量或弹性伸缩组之间的资源平衡等,因此,还需要实时或定时地监控各个弹性伸缩组的容器数量。

本实施例中的弹性伸缩组还预先设置有期望伸缩数;该期望伸缩数通常是工作人员针对该用户业务预估的伸缩数,该伸缩数可以适用于该用户业务的大部分时间段的业务量;如图4所示,上述容器资源的管理方法方法还包括:

步骤s402,在容器资源调整时间以外的时间,监控弹性伸缩组的容器数量;

在实际实现时,可以使用master节点来监控弹性伸缩组的容器运行节点的数量。

步骤s404,判断该容器数量是否超出弹性伸缩组的伸缩数阈值;如果是,执行步骤s406;如果否,执行步骤s402。

上述伸缩数阈值范围可以由最大伸缩数和最小伸缩数组成,如果弹性伸缩组的容器数量小于最小伸缩数或大于最大伸缩数都可判定为超出弹性伸缩组的伸缩数阈值。

步骤s406,根据上述期望伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;

与上述实施例中类似,如果弹性伸缩组的当前的容器数量小于最小伸缩数,通常需要从云资源提供平台调取新增的容器运行节点,该新增的容器运行节点的容量需要与增加的容器数量(即期望伸缩数与弹性伸缩组内当前的容器数量的差值)相匹配;具体而言,新增的容器运行节点所能运行的容器数量需要等于或略大于增加的容器数量。

如果弹性伸缩组的当前的容器数量大于最大伸缩数,通常需要从弹性伸缩组内删除容器运行节点,该删除的容器运行节点中正常运行的容器数量需要与减少的容器数量(即上述弹性伸缩组内当前的容器数量与期望伸缩数的差值)相匹配;具体而言,删除的容器运行节点当前运行的容器数量需要等于或略小于增加的容器数量。

步骤s408,调整确定的所述容器运行节点,以使弹性伸缩组的容器数量与上述期望伸缩数相匹配。

具体地,在弹性伸缩组的当前的容器数量小于最小伸缩数的情况下,master节点可以通知云平台的弹性伸缩组管理节点,向该用户业务分配更多的容器运行节点,以使运行用户业务的弹性伸缩组的容器总量与期望的弹性伸缩组的容器总量相匹配;弹性伸缩组管理节点为该用户业务分配新增的容器运行节点后,可以向master节点反馈分配完成信息,该信息中通常包含新增的容器运行节点的访问路径、节点标识等信息,以使master节点节点将新增的容器运行节点纳入监控范围。

通过上述方式,可以使弹性伸缩组中的容器运行节点数量始终保持在合理的范围内,保证容器运行节点数量满足用户业务的同时,提高弹性伸缩组的稳定性。

本发明实施例还提供另一种容器资源的管理方法,该方法在上述实施例基础上实现;本实施例进一步分别描述在弹性伸缩组的当前的容器数量小于和小于确定的伸缩数的情况下,容器运行节点的调整方式。该过程如图5所示,其步骤包括如下:

步骤s502,确定是否到达弹性伸缩组对应的容器资源调整时间;

步骤s504,当确定到达容器资源调整时间时,获取弹性伸缩组的伸缩数与时间的对应关系;根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;该伸缩数指示了弹性伸缩组的容器数量;

步骤s506,判断弹性伸缩组的当前的容器数量与确定的伸缩数之间的大小关系;如果弹性伸缩组的当前的容器数量小于确定的伸缩数,执行步骤s508;如果弹性伸缩组的当前的容器数量大于确定的伸缩数,执行步骤s514;如果弹性伸缩组的当前的容器数量等于确定的伸缩数,结束;

可以理解,如果弹性伸缩组的当前的容器数量等于确定的伸缩数,说明弹性伸缩组的当前的容器数量与该容器资源调整时间对应的业务量相匹配,则无需再对弹性伸缩组的容器运行节点进行调整。

步骤s508,计算伸缩数与弹性伸缩组的当前的容器数量的差值;

步骤s510,从待启动的容器运行节点中查找可运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;

云资源提供平台用于管理集群内待启动的容器运行节点,这些容器运行节点通常具有不同的cpu、内存以及网络流量等配置参数;因此,不同的容器运行节点能够容纳的容器数量也不同;各容器运行节点的配置参数可以从云资源提供平台查询。当获取到伸缩数与弹性伸缩组的当前的容器数量的差值后,根据该差值对应的容器数量,可以转换获得相匹配的容器运行节点的配置参数,基于该配置参数从云资源提供平台查询可用的容器运行节点,进而确定为待调整的容器运行节点。

步骤s512,将确定的容器运行节点添加至弹性伸缩组中,结束。

在实际实现时,通常先需要启动该容器运行节点,为该容器运行节点设置详细的配置信息,如容器类型、数据卷的类型和容量、名称、密码等;进而将该容器运行节点的配置信息保存至弹性伸缩组的master节点中,并将该容器运行节点的配置信息添加至弹性伸缩组的容器运行节点的管理列表中。确定的容器运行节点添加至弹性伸缩组中后,通常还需要在该容器运行节点上按照该弹性伸缩组对应的用户业务的容器打包文件,以使该容器运行节点能够正常运行容器。

步骤s514,计算弹性伸缩组的当前的容器数量与伸缩数的差值;

步骤s516,从弹性伸缩组对应的容器运行节点中查找运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;

当获取到弹性伸缩组的当前的容器数量与伸缩数的差值后,master节点可以根据该弹性伸缩组中的各个容器运行节点正在运行的容器数量,查找得到与上述差值对应的容器数量相匹配的容器运行节点;该相匹配的容器运行节点当前运行的容器数量需要等于或略小于上述差值对应的容器数量。

步骤s518,从弹性伸缩组中移除查找到的确定的容器运行节点。

为了保证用户业务不受影响,在移除容器运行节点之前,通常需要先回收运行在该容器运行节点中的容器,包括该容器的运行程序,以及存储的数据等;再通知上述云资源提供平台,由该云资源提供平台管理该容器运行节点,以供后续的节点调度使用。

上述方式中,当到达弹性伸缩组对应的容器资源调整时间时,如果弹性伸缩组当前的容器数量与伸缩数不匹配,则根据该伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点,进而调整该容器运行节点。该方式基于时间对弹性伸缩组中的容器运行节点进行自动伸缩,使得弹性伸缩组中的容器数量满足当前时间的业务需求,同时在空闲时释放容器运行节点资源以节约成本,提高了容器资源与业务需求的匹配程度,从而提高了云平台的资源利用率。

本发明实施例还提供另一种容器资源的管理方法,该方法在上述实施例基础上实现;本实施例重点描述伸缩数调整之后,对弹性伸缩组中容器运行节点状态的监控过程,根据不同类型的容器运行节点终止和新增容器运行节点的过程;该过程如图6所示,其步骤包括如下:

步骤s602,监控弹性伸缩组中各个容器运行节点的运行状态。

步骤s604,判断容器运行节点的运行状态是否为异常运行;如果是,执行步骤s606;如果否,执行步骤s602。

实际上,master节点可以接收到容器运行节点或者运行该容器运行节点的实体服务器发出的故障信号,当容器运行节点发生故障时,master节点会接收到容器运行节点或运行该容器节点的实体服务器发出的故障信号;或者,在容器运行节点没有发生故障时,如果cpu利用率、内存使用率、网卡流量或监听器流量等运行数据超过预设阈值时,这时的容器运行节点也可以判定是异常运行。

步骤s606,回收异常运行的容器运行节点的业务运行数据。

当容器运行节点为异常运行时,异常的容器运行节点很可能导致用户业务受到影响,所以应该回收该容器运行节点并启用新的容器运行节点来替代该异常运行的容器运行节点。该运行数据可以包含容器运行节点运行程序和运行过程中产生的数据等。

步骤s608,将异常运行的容器运行节点的运行状态设置为停止运行。

将检测出来异常运行的容器运行节点的运行状态设置为停止运行,以备人工进行修复。

当然,对于某些运行特殊功能的容器运行节点,包括node节点或pod节点,可以预先设置保护功能,即master节点即使检测到该容器运行节点状态异常,也不予回收该容器运行节点;可以通过其他方式,如分流业务量的方式,逐步减轻该容器运行节点的业务量,以使该容器运行节点恢复至正常状态。

步骤s610,判断容器运行节点的类型;如果容器运行节点为node节点,执行步骤s612;如果容器运行节点为pod节点,执行步骤s620。

步骤s612,通过云资源提供平台确定待启动的新增node节点。

由于node节点通常是物理服务器或虚拟机,如果要新增node节点用于运行用户业务,通常首先需要对该node节点设置配置信息,安装操作系统的镜像文件等操作,具体如下。

步骤s614,设置新增node节点的配置信息;该配置信息至少包括node节点类型、数据存储盘的类型和容量、配置名称、密码和弹性伸缩组可绑定的负载均衡。

其中,node节点类型可以为物理服务器或虚拟机;确定好node节点类型之后,设定该node节点的名称、密码和弹性伸缩组可绑定的负载均衡,由于node节点是来执行用户业务的功能模块,所以他需要具体绑定弹性伸缩组的负载均衡以此来扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

步骤s616,获取用户业务的镜像文件。

该镜像文件是将特定的一系列文件按照一定的格式制作成单一的文件,该镜像文件中保存有运行上述用户业务的运行程序。

步骤s618,将镜像文件部署至新增node节点中,将回收的业务运行数据转移至新增node节点中,以使新增node节点继续运行用户业务。

运行参数设置完成后,即可将镜像文件安装至该容器运行节点中,安装完成后,该新增node节点即可正常运行,再将回收的业务运行数据转移至该新增node节点中的容器中,容器即可继续运行用户业务。

由于pod节点是基本的部署调度单元,如果要新增pod节点用于运行用户业务,仅需master节点复制用户业务的镜像文件,再将该镜像文件运行在新增pod节点即可,无需设置配置信息,安装操作系统等操作,具体如下。

步骤s620,通过master节点中的rc控制器复制用户业务的镜像文件。

rc控制器可以指定一个应用需要复制几份,并为每份复制创建一个pod节点,同时确保任意时刻实际运行的pod节点数量始终与复制的数量相等,即rc控制器是pod的复制抽象,可以解决pod的扩容缩容问题。

步骤s622,在指定的node节点上创建新增pod节点。

该步骤可以由master节点中的rc控制器和容器管理集群中的service完成,其中,service是pod节点的路由代理抽象。创建新增pod节点的过程不需要手动处理pod节点,只需预先设置所期望的数量调节策略即可由rc控制器和service自动管理。

步骤s624,将复制的镜像文件运行在新增pod节点上,将回收的业务运行数据转移至新增pod节点中,以使新增pod节点继续运行用户业务。

在指定的node节点上创建新增pod节点之后,即可将镜像文件运行在该新增的pod节点中,运行之后,该新增pod节点即可正常运行,再将回收的业务运行数据转移至该新增pod节点中的容器中,容器即可继续运行用户业务。

上述方式中,master节点可以监控弹性伸缩组中各个容器运行节点的运行状态,如果容器运行节点状态异常,及时回收该容器运行节点并使用新增容器运行节点,从而可以保证用户业务运行稳定,提高用户的体验度。

对应于上述方法实施例,本发明实施例还提供了一种容器资源的管理装置,如图7所示,该容器资源的管理装置,该装置设置于容器管理集群的master节点,该装置包括:

时间确定模块70,用于确定是否到达弹性伸缩组对应的容器资源调整时间;

对应关系获取模块71,用于当确定到达容器资源调整时间时,获取弹性伸缩组的伸缩数与时间的对应关系;

伸缩数确定模块72,用于根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;伸缩数指示了弹性伸缩组的容器数量;

容器运行节点确定模块73,用于根据确定的伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;

第一调整模块74,用于调整确定的容器运行节点,以使弹性伸缩组的容器数量与确定的伸缩数相匹配。

进一步地,上述弹性伸缩组预先设置有伸缩数阈值;伸缩数阈值包括最大伸缩数和最小伸缩数;上述伸缩数与时间的对应关系具体通过下述方式设置:获取预设时间段内,用户业务的历史运行数据;根据历史运行数据,确定用户业务的业务量与时间的对应关系;根据业务量与时间的对应关系,以及弹性伸缩组的伸缩数阈值,确定伸缩数与时间的对应关系。

进一步地,上述弹性伸缩组还预先设置有期望伸缩数;装置还包括:第一监控模块,用于在容器资源调整时间以外的时间,监控弹性伸缩组的容器数量,如果容器数量超出弹性伸缩组的伸缩数阈值,根据期望伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点;第二调整模块,用于调整确定的容器运行节点,以使弹性伸缩组的容器数量与期望伸缩数相匹配。

进一步地,上述容器运行节点确定模块,还用于:如果弹性伸缩组的当前的容器数量小于确定的伸缩数,计算伸缩数与弹性伸缩组的当前的容器数量的差值;从待启动的容器运行节点中查找可运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;第一调整模块,还用于:将确定的容器运行节点添加至弹性伸缩组中。

进一步地,上述容器运行节点确定模块,还用于:如果弹性伸缩组的当前的容器数量大于确定的伸缩数,计算弹性伸缩组的当前的容器数量与伸缩数的差值;从弹性伸缩组对应的容器运行节点中查找运行的容器数量与差值匹配的容器运行节点;将查找到的容器运行节点确定为待调整的容器运行节点;第一调整模块,还用于:从弹性伸缩组中移除查找到的确定的容器运行节点。

进一步地,上述装置还包括:第二监控模块,用于监控弹性伸缩组中各个容器运行节点的运行状态;终止模块,用于如果容器运行节点的运行状态为异常运行,终止异常运行的容器运行节点运行用户业务;启动模块,用于启动新增容器运行节点以运行用户业务。

进一步地,上述终止模块还用于:回收异常运行的容器运行节点的业务运行数据;将异常运行的容器运行节点的运行状态设置为停止运行。

进一步地,上述容器运行节点包括node节点,启动模块还用于:通过云资源提供平台确定待启动的新增node节点;设置新增node节点的配置信息;配置信息至少包括node节点类型、数据存储盘的类型和容量、配置名称、密码和弹性伸缩组可绑定的负载均衡;获取用户业务的镜像文件;将镜像文件部署至新增node节点中,将回收的业务运行数据转移至新增node节点中,以使新增node节点继续运行用户业务。

进一步地,上述容器运行节点包括pod节点,启动模块还用于:通过master节点中的rc控制器复制用户业务的镜像文件;在指定的node节点上创建新增pod节点;将复制的镜像文件运行在新增pod节点上,将回收的业务运行数据转移至新增pod节点中,以使新增pod节点继续运行用户业务。

本发明实施例提供了一种容器资源的管理装置,当到达弹性伸缩组对应的容器资源调整时间时,根据伸缩数与时间的对应关系,确定弹性伸缩组在容器资源调整时间的伸缩数;再根据该伸缩数,以及各个容器运行节点的容器数量,确定待调整的容器运行节点,进而调整该容器运行节点。该方式基于时间对弹性伸缩组中的容器运行节点进行自动伸缩,使得弹性伸缩组中的容器数量满足当前时间的业务需求,同时在空闲时释放容器运行节点资源以节约成本,提高了容器资源与业务需求的匹配程度,从而提高了云平台的资源利用率。

对用于上述实施例,本发明实施例还提供了一种云平台,该云平台上运行有容器管理集群;容器管理集群包括master节点和弹性伸缩组;master节点连接有多个弹性伸缩组,弹性伸缩组中运行有用户的用户业务;权利要求10-18任一项的装置设置于master节点。

本发明实施例提供的云平台,与上述实施例提供的容器资源的管理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例还提供了一种云服务器,用于运行上述容器资源的管理方法,参见图8所示,该云服务器包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述容器资源的管理方法。

进一步地,图8所示的云服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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