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

文档序号:9754332阅读:来源:国知局
]请参看图5,其为应用的镜像文件生成流程的示意图,应用的镜像文件生成方法包括如下步骤:
[0069]步骤S501,应用管理平台10接收用户通过应用管理平台10上传的应用文件。
[0070]步骤S502,应用管理平台10存储应用文件到文件系统中。
[0071]步骤S503,镜像文件生成系统50从应用管理平台10下载应用文件。
[0072]步骤S504,镜像文件生成系统50根据下载的应用文件和基础镜像,生成包含特定应用的应用镜像文件。
[0073]步骤S505,镜像文件生成系统50将应用镜像文件存储到镜像文件仓库70中。
[0074]步骤S506,镜像文件生成系统50更新分布式缓存系统60中的应用信息。
[0075]请参看图6,其为应用的容器创建方法的流程图,应用的容器创建方法包括如下步骤:
[0076]步骤S601,宿主机41从分布式缓存系统60中读取应用信息。
[0077]步骤S602,宿主机41从镜像文件仓库70中获取应用的镜像文件。
[0078]步骤S603,宿主机41使用应用的镜像文件为应用创建容器。
[0079]步骤S604,宿主机41将创建的应用容器信息存储到分布式缓存系统60中。
[0080]请参看图7,其为较佳实施方式的容器资源的自适应调整方法的流程图。该容器资源的自适应调整方法包括如下步骤。
[0081]步骤S701,负载均衡器集群20接收到用户请求。该用户请求表示为相应的应用分配容器的请求。
[0082]步骤S702,负载均衡器集群20将用户请求转发到相应的调度器31。
[0083]步骤S703,调度器31接收用户请求并获取所有容器信息。具体地,调度器31从分布式缓存系统中读取所有容器信息。优选地,调度器31将获取的所有容器信息存储于内存中,且当分布式缓存系统60中容器信息或者用户信息更新时,更新内存中的容器信息或者用户信息。可以理解地,调度器31侦测分布式缓存系统是否有更新的容器信息或者用户信息,并同步更新内存中的数据。优选地,调度器31还根据容器信息将容器采用小根堆方式进行存储,其中,容器信息中的容器负载数作为小根堆节点的键值。
[0084]步骤S704,调度器31根据容器信息选择负载最小的容器并修改所选择的容器的信息。在本实施方式中,调度器31从内存中查找负载最小的容器,并修改容器的负载信息和负载的数量。具体地,当选择负载最小的容器时,调度器31对所选择容器的负载数量增加I。
[0085]步骤S705,调度器31判断所选择的容器是否未使用。若是,进入步骤S706,若否,进入步骤S709。在本实施方式中,调度器31利用容器的负载数量来判断容器是否未使用。具体地,容器未使用时,负载数量为O。即若调度器31判断出当所选择的容器当前负载数为I时,即原来的负载数量为O时,表示该容器未使用。否则,被选择的容器已使用。
[0086]步骤S706,调度器31修改所属的宿主机信息。在本实施方式中,调度器31修改该应用已使用的容器数量。具体地,将所属的宿主机41中该应用已使用的容器数量增加I。
[0087]步骤S707,调度器31判断所选择的容器所属的宿主机中该应用已经使用的容器数是否达到预设的数量阈值。若是,进入步骤S708;若否,进入步骤S709。该预设的数量阈值是根据宿主机中该应用当前的容器总数量的百分比X进行设置,其中,0〈X< I。例如X为80%时,若所选择的容器所属的宿主机41中该应用已使用的容器数为该容器总数量的80%时,所属宿主机41为该应用创建相应数量的容器。
[0088]步骤S708,调度器31通知所属宿主机为该应用创建相应数量的容器。所属宿主机41为该应用创建容器时,按照该应用的容器总数量的百分比Y进行创建,其中,0〈Y< I。例如,当Y为20 %时,该应用当前的容器总数量为30个,则所属宿主机41应该创建6个容器。
[0089]步骤S709,调度器31根据修改后的容器信息更新分布式缓存系统60中的容器信息。
[0090]步骤S710,调度器31将用户请求重定向到选定的容器。
[0091]请参看图8,其为图7所示的容器资源的自适应调整方法在执行具体的用户请求时的一个具体示例。
[0092]步骤S801,负载均衡器集群接收到用户请求。该用户请求表示为一个应用分配容器的请求。
[0093]步骤S802,负载均衡器集群20将用户请求转发给一个调度器31。
[0094]步骤S803,调度器31从分布式缓存系统60中读取所有容器信息。
[0095]步骤S804,调度器31将所有容器信息按照负载数量从小到大进行排序。
[0096]步骤S805,调度器31为用户请求选择负载最小的容器,并将所选择的容器的负载数增加I。
[0097]步骤S806,调度器31判断所选择的容器原负载数是否为O。若为0,进入步骤S807;反之进入步骤S810。
[0098]步骤S807,调度器31将所选择的容器所属的宿主机41中的应用已经使用的容器数增加I。
[0099]步骤S808,该应用已经使用的容器数与该应用的总容器数量的百分比是否达到的预设百分比。若达到,进入步骤S809;反之进入步骤S810。
[0100]步骤S809,调度器31通知所属宿主机为相应应用创建相应数量的容器。
[0101]步骤S810,调度器31根据修改后的容器信息更新分布式缓存系统60中的容器信息。
[0102]步骤S811,调度器31将用户请求重定向到选定的容器。
[0103]上述容器自适应创建方法可以在选择的容器所属宿主机41中应用已经使用的容器数量超过预设的数量阈值时,通知所属宿主机41创建更多的容器,实现自适应调整容器资源,从而根据应用在不同时段的负载提供合适的容器资源。另外,上述容器自适应创建方法中还将在内存中存放容器信息,每次分配容器时,调度器31仅从内存中查找负载最小的容器,从而大幅度提升调度器31的速度。另外,容器信息利用小根堆方式存储,可以进一步加快了调度器31查找负载最小的容器,更进一步提升调度器31分配容器的速度。
[0104]请参看图9,较佳实施方式的多余空闲容器销毁方法流程图。该多余空闲容器销毁方法包括如下步骤。
[0105]步骤S901,宿主机41从分布式缓存系统60中获取宿主机41中所有容器列表。
[0106]步骤S902,宿主机41判断容器总数量是否大于预设的最小容器数。若是,进入步骤S903;若否,流程结束。
[0107]步骤S903,宿主机41判断是否存在需销毁的容器。具体地,宿主机41通过容器是否空闲和空闲时间长短来判断是否存在需销毁容器。若存在空闲容器以及空闲容器的空闲时间超过预设的空闲时间,即存在需销毁的容器,进入步骤S904;若不存在需销毁的容器,流程结束。
[0108]步骤S904,宿主机41判断容器总数量与需销毁的容器数量的差值是否大于或者等于预设的最小容器数量。若是,进入步骤S905;若否,进入步骤S906。
[0109]步骤S905,宿主机41销毁全部需销毁的容器,并从分布式缓存系统60中删除被销毁的容器信息。
[0110]步骤S906,宿主机41按照预设顺序从需销毁的容器中销毁部分容器,其中,被销毁的容器数量为容器总数量与预设的最小容器数量的差值,以确保剩余的容器数大于或者等于预设的最小容器数量,并从分布式缓存系统60中删除被销毁的容器信息,容器销毁流程结束。
[0111]请参看图10,其为图9所示的多余空闲容器销毁方法的一个具体示例。
[0112]步骤S1001,宿主机41从分布式缓存系统60中获取宿主机41中所有的容器列表,该容器列表按照容器的空闲时间从大到小排序。具体地,主机守护进程定期从分布式缓存系统中获取本机中所有的容器列表。
[0113]步骤S1002,宿主机41判断宿主机41的容器总数量是否大于预设的最小
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1