基于可调公式模型的弹性扩缩容方法、装置及存储介质制造方法及图纸

技术编号:32213797 阅读:20 留言:0更新日期:2022-02-09 17:19
本发明专利技术涉及一种基于可调公式模型的弹性扩缩容方法、装置及存储介质,所述方法包括以下步骤:根据应用自身测试经验数据建立负载数值与实例个数之间关联关系的数学模型;对所述数学模型进行编译,将所述数学模型转化为可执行的公式模型;周期性采集应用负载变量,基于所述公式模型计算出适合于当前负载情况的应用实例个数,实现扩缩容。与现有技术相比,本发明专利技术具有灵活性高等优点。明具有灵活性高等优点。明具有灵活性高等优点。

【技术实现步骤摘要】
基于可调公式模型的弹性扩缩容方法、装置及存储介质


[0001]本专利技术属于计算机
,涉及一种扩缩容方法,尤其是涉及一种基于可调公式模型的弹性扩缩容方法、装置及存储介质。

技术介绍

[0002]扩缩容,即调整应用的实例个数,可以有效利用有限资源,在负载高的情况下,增加应用的实例个数可以提高具备良好横向扩展性的应用的处理能力;在负载低的情况下,减少应用的实例个数可以让渡资源给其他负载高的应用使用。
[0003]弹性扩缩容,即自动扩缩容,是一种根据实际使用需求自动对应用的实例个数进行调整的自动化运维技术方案;相对于通过人工手动调整应用实例个数来应对不同的负载需求,弹性扩缩容有更好的实时性和准确性,大大降低人工成本。
[0004]弹性扩缩容的数据计算模型通常包括公式模型、模型参数变量和负载变量,其中:
[0005]·
公式模型、定义扩缩容的策略,即如何计算出适合当前负载的实例个数;
[0006]·
模型参数变量、可以对公式模型进行调整;
[0007]·
负载变量、与应用当前负载正相关,能反映当前应用使用情况的数值。
[0008]给定公式模型和模型参数,弹性扩缩容核心控制模块周期性将完整的模型作用到当前的负载变量上,计算出当前需要的应用实例数目,并根据计算结果对应用实例个数进行调整。
[0009]Kubernetes HPA提供自动调整容器应用实例POD个数的功能,HPA controller是核心控制模块,内置弹性扩缩容的公式模型,并提供调整模型参数的接口,应用提供负载变量并设置模型参数,HPA controller周期性获取负载变量的当前数值,带入公式模型计算出当前应用需要的实例个数,然后通过Kubernetes的API接口调整应用的副本数目。
[0010]目前Kubernetes HPA使用内置的公式模型,如图1所示,并提供调整模型参数的接口来提供弹性扩缩容的功能,这样的结构使得Kubernetes HPA需要调整内部的公式模型并提供更多的可调参数来满足更广泛的应用需求,一方面每次模型和参数的调整都需要新版本的API,另一方面模型的可调参数会越来越多,整体HPA的API的参数也会越来越多:Kubernetes HPA API版本从v1发展到现在的v2beta2,可调参数明显有膨胀的趋势。内置的公式模型限制了Kubernetes HPA的灵活性,在负载抖动的处理和扩缩容的节奏动态调整上均有不足。

技术实现思路

[0011]本专利技术的目的就是为了克服上述现有内置公式模型的弹性扩缩容方案灵活性不足的技术问题而提供一种基于可调公式模型的弹性扩缩容方法、装置及存储介质。
[0012]本专利技术的目的可以通过以下技术方案来实现:
[0013]一种基于可调公式模型的弹性扩缩容方法,该方法包括以下步骤:
[0014]根据应用自身测试经验数据建立负载数值与实例个数之间关联关系的数学模型;
[0015]对所述数学模型进行编译,将所述数学模型转化为可执行的公式模型;
[0016]周期性采集应用负载变量,基于所述公式模型计算出适合于当前负载情况的应用实例个数,实现扩缩容。
[0017]进一步地,编译后的所述公式模型为函数定义模型或单行公式定义模型。
[0018]进一步地,采用所述单行公式定义模型时,对所述数学模型进行编译具体为:
[0019]将所述数学模型的公式解析成一个表达式树,该表达式树的节点包括负载变量、可调参数、内置函数、内置变量或内置操作符,该表达式树的根为公式编译结果。
[0020]进一步地,计算所述应用实例个数时,将所述应用负载变量带入所述表达式树中,按照深度优先的顺序从左到右进行计算。
[0021]进一步地,计算所述应用实例个数时,若基于采集的所述应用负载变量无法获得计算结果,则输出一经验值作为当前应用实例个数的计算结果。
[0022]进一步地,计算所述应用实例个数时,对采集的所述应用负载变量进行过滤处理,基于过滤后的应用负载变量计算应用实例个数。
[0023]进一步地,所述过滤处理由包括多个串联的过滤函数实现。
[0024]进一步地,在计算所述应用实例个数前,基于采集的所述应用负载变量判断当前负载情况是否满足扩缩容条件,若是,则执行应用实例个数计算。
[0025]本专利技术还提供一种基于可调公式模型的弹性扩缩容装置,包括应用端和弹性扩缩容控制模块,其中,
[0026]该应用端根据应用自身测试经验数据建立负载数值与实例个数之间关联关系的数学模型;
[0027]该弹性扩缩容控制模块接收所述数学模型,对所述数学模型进行编译,将所述数学模型转化为可执行的公式模型;并周期性采集应用负载变量,基于所述公式模型计算出适合于当前负载情况的应用实例个数,实现扩缩容。
[0028]本专利技术还提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述基于可调公式模型的弹性扩缩容方法的指令。
[0029]与现有技术相比,本专利技术具有以下有益效果:
[0030]本专利技术负载数值与实例个数之间关联关系的数学模型基于应用自身测试经验数据建立,允许应用量身定义适合自己的公式模型,应用不再使用调整模型参数的形式配置弹性扩缩容,而是通过设计公式来完成,更灵活的控制应用的实例个数的调整,实现对弹性扩缩容过程更精细更全面的控制。
附图说明
[0031]图1为现有扩缩容方法的原理示意图;
[0032]图2为本专利技术扩缩容方法的原理示意图;
[0033]图3为本专利技术实施例中编译生成的一个表达式树的示意图;
[0034]图4为本专利技术公式编译的流程示意图;
[0035]图5为本专利技术的一种公式执行过程示意图。
具体实施方式
[0036]下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。
[0037]专利技术人通过对现有Kubernetes HPA使用内置公式模型技术的大量创新性研究,发现现有内置公式模型限制了Kubernetes HPA的灵活性,具体表现在以下两个方面:
[0038]1、负载抖动的处理:当负载水平处在某一个临界数值,稍微增加一点,则计算结果增加,稍微减少一点,计算结果会减少,这种情况下不希望应用的实例个数发生抖动,通常要设置高/低水位线,超过高水位线时才允许计算结果增加;低于低水位线时才允许计算结果降低。但是Kubernetes内置的公式模型并没有提供调节高低水位的参数,应用无法设置Kubernetes HPA的高低水位,只能使用Kubernetes HPA的全局配置。比如:load/4.5的结果向上取整作为应用的副本数目,那么如果load在4.4到4.6之间波动的时候,副本数目会在1到2之间波动。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可调公式模型的弹性扩缩容方法,其特征在于,该方法包括以下步骤:根据应用自身测试经验数据建立负载数值与实例个数之间关联关系的数学模型;对所述数学模型进行编译,将所述数学模型转化为可执行的公式模型;周期性采集应用负载变量,基于所述公式模型计算出适合于当前负载情况的应用实例个数,实现扩缩容。2.根据权利要求1所述的基于可调公式模型的弹性扩缩容方法,其特征在于,编译后的所述公式模型为函数定义模型或单行公式定义模型。3.根据权利要求2所述的基于可调公式模型的弹性扩缩容方法,其特征在于,采用所述单行公式定义模型时,对所述数学模型进行编译具体为:将所述数学模型的公式解析成一个表达式树,该表达式树的节点包括负载变量、可调参数、内置函数、内置变量或内置操作符,该表达式树的根为公式编译结果。4.根据权利要求3所述的基于可调公式模型的弹性扩缩容方法,其特征在于,计算所述应用实例个数时,将所述应用负载变量带入所述表达式树中,按照深度优先的顺序从左到右进行计算。5.根据权利要求1所述的基于可调公式模型的弹性扩缩容方法,其特征在于,计算所述应用实例个数时,若基于采集的所述应用负载变量无法获得计算结果,则输出一经验值作为当前应用实例个数的计算结果。6.根据权利...

【专利技术属性】
技术研发人员:王志强
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1