公开/公告号CN112181597A
专利类型发明专利
公开/公告日2021-01-05
原文格式PDF
申请/专利权人 成都精灵云科技有限公司;
申请/专利号CN202011082728.5
申请日2020-10-12
分类号G06F9/455(20060101);
代理机构51230 成都弘毅天承知识产权代理有限公司;
代理人郝迎宾
地址 610041 四川省成都市高新区天府五街200号4B栋8层
入库时间 2023-06-19 09:27:35
技术领域
本发明涉及云计算技术领域,特别涉及一种容器资源使用限制动态更新方法。
背景技术
容器技术是云计算2.0的核心,使用容器技术不仅可以做到应用之间资源的隔离与限制,还可以统一应用运行时环境,防止因为环境不一致而导致应用无法正常运行的情况,在生产环境中,我们通常不会直接使用容器,而是使用具有容器编排功能的云平台,对容器进行统一管理和部署。
目前,云平台实现容器资源使用限制的更新采用的方式为:查询容器的资源使用情况,然后设置新的资源使用量,控制器收到资源的变更后触发更新操作。更新操作分为两种,一种是直接更新容器,另一种是采取滚动更新的方式更新,更新结束用户即可得到最新的容器。上述更新方式中,一方面,如果直接更新容器,会导致服务中断,给用户造成一定时间的服务不可用情况,如果滚动更新,针对无状态应用的话可以实现更新应用,用户无感知,但如果是有状态应用,也不可避免的会发生服务中断的情况;另一方面,直接更新容器的工作量较大,滚动更新时需要对容器一个接一个地操作,会导致更新速度缓慢;另一方面,上述更新方式只能针对运行中的容器进行资源限制更新,无法对停止的容器进行更新。
发明内容
本发明为解决现有对容器资源使用限制更新的方式会中断服务,并且更新速度慢,无法对停止的容器进行更新的问题,提供一种容器资源使用限制动态更新方法。
为解决上述问题,本发明采用的技术方案是:容器资源使用限制动态更新方法,包括以下步骤:
步骤1、云平台控制器接收到容器资源使用限制更新信息后,根据容器资源使用限制更新信息来更新自身管理的容器创建模板;
步骤2、云平台控制器根据自身管理的容器创建模板,更新其所控制的各个云平台最小逻辑处理单元中的容器创建模板;
步骤3、各个云平台最小逻辑处理单元在自身的容器创建模板更新后,获取相应主机上运行的容器的容器配置信息,然后根据获取到的容器配置信息找到相应主机上的CGroup配置文件;
步骤4、各个云平台最小逻辑处理单元找到相应主机上的CGroup配置文件后,根据自身的容器创建模板中的容器资源使用限制信息,更新相应主机上的CGroup配置文件中的容器资源使用限制参数,其中,各个云平台最小逻辑处理单元预先映射到了相应主机上运行的容器。
作为进一步优化,步骤2还包括:云平台控制器分别判断自身管理的容器创建模板与其所控制的各个云平台最小逻辑处理单元中的容器创建模板之间是否只有容器资源使用限制信息不同;步骤2中的云平台最小逻辑处理单元是指:自身的容器创建模板与云平台控制器所管理的容器创建模板之间只有容器资源使用限制信息不同,且自身受控于该云平台控制器的云平台最小逻辑处理单元。
作为进一步优化,所述资源采用CPU资源和/或Memory资源。
作为进一步优化,步骤4中,容器资源使用限制参数包括cpu.cfs_period_us和/或cpu.cfs_quota_us。
作为进一步优化,步骤4中,所述容器基于docker容器化技术。
本发明的有益效果是:在进行更新时,内部处理逻辑由云平台控制器依次更新到最小逻辑处理单元,再由最小逻辑处理单元更新相应CGroup配置文件中的容器资源使用限制参数,对CGroup配置文件中的容器资源使用限制参数进行的修改便可以直接影响到其对应的容器的运行配置,以达到动态更新容器资源使用限制的效果。可以看出,本发明的更新方法,无论容器是否运行,都可以通过CGroup配置文件中的容器资源使用限制参数对其进行更新,并且更新时不会中断服务,此外,本发明的更新过程简单便捷,多个容器可同时更新,更新速度更快。本发明特别适用于对云平台中容器资源使用限制的更新。
附图说明
图1为本发明实施例中容器资源使用限制动态更新方法的工作原理示意图。
具体实施方式
下面详细说明本发明的技术方案。
本发明的技术方案是:容器资源使用限制动态更新方法,包括以下步骤:
步骤1、云平台控制器接收到容器资源使用限制更新信息后,根据容器资源使用限制更新信息来更新自身管理的容器创建模板;
步骤2、云平台控制器根据自身管理的容器创建模板,更新其所控制的各个云平台最小逻辑处理单元中的容器创建模板;
步骤3、各个云平台最小逻辑处理单元在自身的容器创建模板更新后,获取相应主机上运行的容器的容器配置信息,然后根据获取到的容器配置信息找到相应主机上的CGroup配置文件;
步骤4、各个云平台最小逻辑处理单元找到相应主机上的CGroup配置文件后,根据自身的容器创建模板中的容器资源使用限制信息,更新相应主机上的CGroup配置文件中的容器资源使用限制参数;
其中,各个云平台最小逻辑处理单元预先映射到了相应主机上运行的容器。
上述方案中,容器创建模版指的是在云平台中为了实现声明式编程而定义的容器创建模板,根据容器创建模板能够生产新的容器;控制器指的是能够控制容器数量、控制容器根据容器创建模板进行创建、监听容器配置变化、更新容器创建模板以及更新其所控制的最小逻辑处理单元中的容器创建模板的逻辑处理对象;主机指的是构成云平台的物理机器。
通过上述方法进行更新时,内部处理逻辑由云平台控制器依次更新到最小逻辑处理单元,再由最小逻辑处理单元更新相应CGroup配置文件中的容器资源使用限制参数,对CGroup配置文件中的容器资源使用限制参数进行的修改便可以直接影响到其对应的容器的运行配置,以达到动态更新容器资源使用限制的效果。
对上述方法进行进一步的优化,具体可以是:
一方面,上述步骤2还可以包括:云平台控制器分别判断自身管理的容器创建模板与其所控制的各个云平台最小逻辑处理单元中的容器创建模板之间是否只有容器资源使用限制信息不同;步骤2中的云平台最小逻辑处理单元是指:自身的容器创建模板与云平台控制器所管理的容器创建模板之间只有容器资源使用限制信息不同,且自身受控于该云平台控制器的云平台最小逻辑处理单元。
进行上述优化后,云平台控制器在更新相应云平台最小逻辑处理单元中的容器创建模板之前,会先通过模板对比来判断是否只有容器资源使用限制信息发生了变更,并仅更新只有容器资源使用限制信息变更的云平台最小逻辑处理单元中的模板,进而在只有容器资源使用限制信息发生变更时,才会触发后续步骤三和步骤四的更新操作,保证了更新过程能够顺利正确地进行,提高了系统的稳定性和可靠性。
另一方面,具体的,上述资源可以采用CPU资源和/或Memory资源。上述步骤4中的容器资源使用限制参数可以包括cpu.cfs_period_us和/或cpu.cfs_quota_us。上述容器可以基于docker容器化技术。
实施例
下面具体举例说明本发明的技术方案。
本例中,容器资源使用限制动态更新方法的工作原理示意图见图1,其中,云平台基于docker容器化技术,假设该云平台具有控制器一,控制器一控制最小逻辑处理单元一和最小逻辑处理单元二,控制器一管理容器创建模板M,最小逻辑处理单元一和最小逻辑处理单元二中分别具有容器创建模板一和容器创建模板二,最小逻辑处理单元一和最小逻辑处理单元二分别预先映射到了相应主机上运行的容器一和容器二。用户需要将云平台的容器资源配置更新为CPU限制参数一和Memory限制参数一时,用户将CPU限制参数一和Memory限制参数一输入云平台,云平台的更新过程如下:
步骤S1、控制器一接收到CPU限制参数一和Memory限制参数一,然后控制器一根据CPU限制参数一和Memory限制参数一更新容器创建模板M。
步骤S2、控制器一分别判断容器创建模板M与容器创建模板一和容器创建模板二之间是否只有CPU限制参数和Memory限制参数不同,本例中,判断结果是容器创建模板M与容器创建模板一和容器创建模板二之间都只有CPU限制参数和Memory限制参数不同,然后控制器一会根据容器创建模板M,更新最小逻辑处理单元一中的容器创建模板一和最小逻辑处理单元二中的容器创建模板二。
步骤S3、容器创建模板一更新完成后,最小逻辑处理单元一获取相应主机上运行的容器一的容器配置信息,然后根据容器一的容器配置信息找到相应主机上的CGroup配置文件,本例基于docker容器化技术,找到的关于CPU资源的CGroup配置文件的路径是/sys/fs/cgroup/cpu/docker/,找到的关于Memory资源的CGroup配置文件的路径是/sys/fs/cgroup/memory/docker/。同理,容器创建模板二更新完成后,最小逻辑处理单元二获取相应主机上运行的容器二的容器配置信息,然后然后根据容器二的容器配置信息找到相应主机上的CGroup配置文件。
步骤S4、最小逻辑处理单元一找到相应主机上的CGroup配置文件后,根据容器创建模板一中的容器资源使用限制信息,即CPU限制参数一和Memory限制参数一,更新相应主机的CGroup配置文件中的相应CPU资源使用限制参数和Memory资源使用限制参数,例如将路径/sys/fs/cgroup/cpu/docker/ssd7f878sf下的cpu.cfs_period_us参数的具体参数值更新为CPU限制参数一。同理,最小逻辑处理单元二找到相应主机上的CGroup配置文件后,根据容器创建模板二中的容器资源使用限制信息,即CPU限制参数一和Memory限制参数一,更新相应主机的CGroup配置文件中的相应CPU资源使用限制参数和Memory资源使用限制参数。
上述对CGroup配置文件中的CPU资源使用限制参数和Memory资源使用限制参数进行的修改,直接影响到对应的容器的运行配置,通过上述过程,就完成了容器一和容器二资源使用限制的动态更新。
机译: 用于房屋中加热水的电动加热器,具有动态功率限制单元,该动态功率限制单元布置成当计数器未达到极限值时,动态功率限制单元不执行功率限制。
机译: 用于基于限制条件和测量的使用量按功能模块限制资源使用量的系统
机译: 动态地图更新设备,动态地图更新方法和非暂时性计算机可读介质记录动态地图更新程序