容器资源自适应调整方法及系统的制作方法

文档序号:9754332阅读:313来源:国知局
容器资源自适应调整方法及系统的制作方法
【技术领域】
[0001]本发明涉及云计算领域,尤其涉及一种容器资源自适应调整方法及系统。
【背景技术】
[0002]容器技术在云计算领域的应用越来越普遍。相比于传统的虚拟机,容器大大简化了管理和部署应用程序的任务,能够让开发人员快速构建可随时运行的容器化的应用程序,能够让更多数量的应用程序运行在相同的硬件上。
[0003]使用容器技术的云计算平台中通常运行着多种不同的应用,各种应用在不同时段的负载是不同的。为适应不同应用的不同负载,传统做法是预先估计应用负载,根据预估的负载为不同的应用启动不同数量的容器。然而实际的负载情况是动态变化的,预估的负载只是一个固定的值或者范围,只能根据这种预估为应用启动固定数量的容器,而不能根据动态变化的应用负载来动态调整承载应用的容器数量,不能让平台平稳地运行。比如说,在某个时段,如果某个应用的负载较大,而预先为这个应用启动的容器数量较少,则应用的每个容器需要承载的负载较大,可能无法很好地处理用户请求。

【发明内容】

[0004]有鉴于此,实有必要提供一种容器资源自适应调整方法,可以根据应用在不同时段的负载提供合适的容器资源。
[0005]—种容器资源自适应调整方法,其包括如下步骤:
[0006]调度器接收用户请求并获取所有容器信息,其中,所述的所有容器信息包括每个容器的信息和每个容器所属的宿主机的信息;所述容器的信息包括容器的负载信息和负载数量;所属宿主机的信息包括所属宿主机的每个容器的信息和每个应用已使用的容器数量;所述用户请求表示为相应的应用分配容器的请求;
[0007]所述调度器根据获取的容器信息选择负载最小的容器;
[0008]所述调度器根据容器的信息判断所选择的容器是否未使用;
[0009]若选择的容器未使用,所述调度器修改所选择的容器的信息和所属宿主机的信息;
[0010]所述调度器根据所属的宿主机的信息判断所属宿主机中所述应用已经使用的容器数量是否达到预设的数量阈值;
[0011]若已经使用的容器数量达到预设的数量阈值,所述调度器通知所属宿主机为所述应用创建相应数量的容器;以及
[0012]所述调度器将所述用户请求重定向至所选择的容器。
[0013]—种容器资源自适应调整系统,所述容器资源自适应调整系统包括调度器。所述调度器包括调度器分布式缓存读写模块以及容器分配模块,所述容器分配模块用于接收所述用户请求,所述调度器分布式缓存读写模块用于响应用户请求获取所有容器信息,其中,所述的所有容器信息包括每个容器的信息和每个容器所属的宿主机的信息;所述容器的信息包括容器的负载信息和负载数量;所属宿主机的信息包括所属宿主机的每个容器的信息和每个应用已使用的容器数量;所述容器分配模块包括选择单元、判断单元、修改单元、以及分配单元,
[0014]所述选择单元,用于根据容器信息查找负载最小的容器;
[0015]所述判断单元,根据所选择的容器的信息判断所选择的容器是否未使用;
[0016]所述修改单元用于当所选择的容器未使用时,修改所选择的容器的信息和所属宿主机的信息;
[0017]所述判断单元还根据所属的宿主机的信息判断所选择的容器所属宿主机中所述应用已经使用的容器数是否达到预设的数量阈值;若已经使用的容器数达到预设的数量阈值,所述判断单元通知所属的宿主机为所述应用创建相应数量的容器;
[0018]所述分配单元,用于将所述用户请求重定向到选定的容器。
[0019]上述容器资源自适应调整方法及系统可以根据用户请求为应用分配负载最小的容器,并在选择的容器所属宿主机中应用已经使用的容器数量超过预设的数量阈值时,通知所属宿主机创建更多的容器,从而根据应用在不同时段的负载提供合适的容器资源。
【附图说明】
[0020]为了易于说明,本发明对下述较佳实施例及附图作详细描述。
[0021 ]图1为较佳实施方式的容器资源系统运行环境示意图。
[0022]图2为图1所示的容器管理模块的功能模块图。
[0023]图3为图1所示的容器分配模块的功能模块图。
[0024]图4a_图4c为容器信息存储结构示意图。
[0025]图5为生成应用镜像文件的流程图。
[0026]图6为创建应用容器的流程图。
[0027]图7为第一实施方式的容器资源自适应调整方法的流程图。
[0028]图8为图7所示的容器资源自适应调整方法的具体实施例流程图。
[0029]图9为第一实施方式的多余空闲容器销毁方法的流程图。
[0030]图10为图9所示的多余空闲容器销毁方法的具体实施例流程图。
【具体实施方式】
[0031 ]请参看图1,容器资源自适应调整系统100包括应用管理平台10、负载均衡器集群20、调度器集群30、容器宿主机集群40、镜像文件生成系统50、分布式缓存系统60、以及镜像文件仓库70。其中,分布式缓存系统60用于存储应用文件信息、容器信息和用户信息,以供调度器集群30和容器宿主机集群40使用。容器信息包括容器名称、容器负载信息和负载数量、容器所属宿主机的信息等。宿主机的信息包括宿主机中每个容器的信息以及每个应用已经使用的容器数量等。
[0032]应用管理平台10用于供用户与容器资源自适应调整系统100进行交互。应用管理平台10包括界面模块11、用户接口模块12、文件存储模块13、以及管理接口模块14。
[0033]界面模块11提供用于与用户进行交互的用户界面。例如,用户可通过界面模块11上传应用文件或者输入为应用分配容器的用户请求。
[0034]用户接口模块12用于为界面模块11提供添加/删除应用、发布应用文件等接口。
[0035]文件存储模块13用于存储应用文件。
[0036]管理接口模块14用于与镜像文件生成系统50进行通讯,以使镜像文件生成系统50查询应用文件信息和下载应用文件。
[0037]镜像文件生成系统50包括应用管理接口模块51、镜像文件创建模块52、镜像文件仓库存储模块53、以及分布式缓存读写模块54。
[0038]应用管理接口模块51用于与应用管理平台10通信,定时地读取应用信息并下载应用文件。
[0039]镜像文件创建模块52用于将应用文件写入到包含应用基础运行环境的基础镜像文件中,以生成包含特定应用文件的应用镜像文件。
[0040]镜像文件仓库存储模块53用于将所述包含特定应用文件的应用镜像文件存储到镜像文件仓库70中。
[0041]分布式缓存读写模块54用于当镜像文件仓库70存储所述应用镜像文件时,更新分布式缓存系统60中存储的应用文件信息。
[0042]容器宿主机集群40包括若干容器宿主机41。每个容器宿主机41中运行着宿主机守护进程。容器宿主机41包括容器管理模块410、分布式缓存读写模块412、以及镜像文件仓库通信模块414。
[0043]分布式缓存读写模块412用于从分布式缓存系统60中获取所述宿主机41的所有容器列表、以及获取应用文件信息。该容器列表按照空闲容器的空闲时间长短进行排序。
[0044]镜像文件仓库通信模块414根据所述应用文件信息从镜像文件仓库70中获取所述应用镜像文件。
[0045]请结合参看图2,容器管理模块410用于为宿主机创建容器以及还用于销毁宿主机41中多余的空闲容器。具体地,容器管理模块410包括判断单元4102、创建单元4103、以及删除单元4104。
[0046]创建单元4103用于为所述应用镜像文件创建相应的容器。
[0047]判断单元4102用于判断容器所属宿主机41的容器总量是否大于预设的最小容器数量,并当宿主机41的容器总量大于最小容器数量时,判断是否存在需销毁的容器。优选地,获取的容器列表按照预设的顺序进行排列。该预设的顺序指的是将需销毁的容器按照空闲时间长短进行排序
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1