集群实例的数量调控方法、装置、终端及存储介质与流程

文档序号:31062541发布日期:2022-08-09 19:53阅读:142来源:国知局
集群实例的数量调控方法、装置、终端及存储介质与流程

1.本技术实施例涉及计算机技术领域,特别涉及一种集群实例的数量调控方法、装置、终端及存储介质。


背景技术:

2.随着容器化广泛应用在日常应用的部署中,kubernetes(k8s)作为一种常用的技术被广泛应用。
3.相关技术中,基于k8s部署后的系统中,可以包括多个实例,每一个实例是一个容器化的应用。实例可以根据自身处理服务的能力,被运维人员手动调节副本数量。例如,实例每秒处理1000条请求,当前实时网络流量数据是6000条,则运维人员可以手动将实例的副本数调控为6个,以满足需求。


技术实现要素:

4.本技术实施例提供了一种集群实例的数量调控方法、装置、终端及存储介质。所述技术方案如下:
5.根据本技术的一方面内容,提供了一种集群实例的数量调控方法,所述方法包括:
6.从控制服务中获取历史网络流量数据,所述历史网络流量数据用于指示目标实例在单位时间内处理的请求的数量;
7.根据所述历史网络流量数据的数据特征,确定与所述数据特征对应的调控子模型;
8.根据所述调控子模型和所述目标实例的处理服务的能力,获得调控模型;
9.将所述目标实例的实时网络流量数据输入所述调控模型,获得目标调控数量;
10.响应于所述目标实例符合调控条件,将所述目标实例的副本数量调控为所述目标调控数量。
11.根据本技术的另一方面内容,提供了一种集群实例的数量调控装置,所述装置包括:
12.数据获取模块,用于从控制服务中获取历史网络流量数据,所述历史网络流量数据用于指示目标实例在单位时间内处理的请求的数量;
13.模型确定模块,用于根据所述历史网络流量数据的数据特征,确定与所述数据特征对应的调控子模型;
14.模型获取模块,用于根据所述调控子模型和所述目标实例的处理服务的能力,获得调控模型;
15.数量获取模块,用于将所述目标实例的实时网络流量数据输入所述调控模型,获得目标调控数量;
16.数量调控模块,用于响应于所述目标实例符合调控条件,将所述目标实例的副本数量调控为所述目标调控数量。
17.根据本技术的另一方面内容,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本技术各个方面提供的集群实例的数量调控方法。
18.根据本技术的另一方面内容,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本技术各个方面提供的集群实例的数量调控方法。
19.根据本技术的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的集群实例的数量调控方法。
20.本技术实施例提供的技术方案带来的有益效果可以包括:
21.本技术先从控制服务中获取历史网络流量数据,根据该数据的数据特征确定对应的调控子模型,再根据调控子模型和目标实例的处理服务的能力,获得调控模型。由于调控模型是综合调控子模型和目标实例的处理服务的能力得到的,因此,该调控模型能够在多种情况下较为准确地确定出当前的副本数量的目标调控数量。最终在目标实例符合调控条件时,将目标实例的副本数量调控为目标调控数量,从而实现了自动化调整集群中实例的副本数量,在保证目标实例正常运行的情况下,提高了目标实例的资源利用效率。
附图说明
22.为了更清楚地介绍本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
23.图1是本技术实施例提供的一种基于云服务的容器化应用部署场景的应用环境图;
24.图2是本技术实施例提供的一种集群系统的架构示意图;
25.图3是本技术一个示例性实施例提供的一种集群实例的数量调控方法的流程图;
26.图4是本技术另一个示例性实施例提供的一种集群实例的数量调控方法流程图;
27.图5是是本技术另一个示例性实施例提供的一种集群实例的数量调控方法流程图;
28.图6是基于图5所示实施例提供的一种历史网络流量数据的示意图;
29.图7是基于图6所示实施例提供的一种拟合后的历史网络流量数据的示意图;
30.图8是基于图5所示实施例提供的一种滤除趋势分量后的历史网络流量数据的波形图;
31.图9是基于图8实施例提供的一种傅里叶变换后的信号的波形图;
32.图10是基于图8所示实施例提供的另一种傅里叶变换后的信号的波形图;
33.图11是本技术一个示例性实施例提供的一种集群实例的数量调控装置的结构框图;
34.图12是本技术一个示例性实施例提供的终端的结构框图。
具体实施方式
35.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
36.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
37.在本技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
38.如本文中所使用,根据上下文,术语“如果”任选地被解释为“当......时”、“在
……
时”、“响应于确定”或“响应于检测”。类似地,根据上下文,短语“如果确定
……”
或“如果检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
39.需要说明的是,使用个人可识别信息应遵循公认为满足或超过维护用户隐私的行业或政府要求的隐私政策和做法。具体地,个人可识别信息在管理和处理的过程中应当向用户明确说明授权使用的性质,以使无意或未经授权的访问或使用的风险最小化。
40.本技术应用在基于云服务的容器化应用部署场景中。也即,本技术应用部署在k8s集群中。其中,k8s集群由一组用于运行容器化应用的节点计算机组成。上述一组节点计算机包含一个主节点(master)以及若干个node节点。提交一个部署应用的申请后,主节点会将应用调度到某些node节点上运行,一个应用可能存在多个实例,来支持更多的请求。
41.请参见图1,图1是本技术实施例提供的一种基于云服务的容器化应用部署场景的应用环境图。在图1中,系统包括主节点1a、第一node节点1b、第二node节点1c和第三node节点1d。其中,每个node节点中均可以包括多个目标实例pod,一个pod中包括有多个容器。以第一node节点1b为例,该第一node节点1b中包括第一目标实例1b1、第二目标实例1b2和第三目标实例1b3。每一个目标实例中均可以包括多个容器。
42.在本技术实施例中,目标实例运行在node节点上。同时,控制服务也是一个应用。示意性的,在k8s中可以运行数量众多的应用。
43.其中,一个相同的应用的多个实例是多个副本,是多个完全相同的应用。
44.请参考图2,图2是本技术实施例提供的一种集群系统的架构示意图。在图2中,包括主节点110,第一实例121、第二实例122、第三实例123和控制服务130。需要说明的是,主节点110,第一实例121、第二实例122、第三实例123和控制服务130可以分别部署在不同的实体设备中。或者,上述对象可以部署在虚拟机中,虚拟机部署在实体设备中。
45.其中,主节点110是集群的管理控制中心。主节点110可以运行在集群中的任何节点上。为简单起见,通常在一台vm(虚拟机,vmware workstation)或机器上启动主节点110
中的所有组件,并且不会在该vm或机器上启动其它用户使用的实例。
46.在本例中,一个集群系统中可以部署若干个实例。本技术实施例通过三个实例作为集群系统中的部署的实例为例进行说明。上述三个实例包括第一实例121、第二实例122和第三实例123。其中,第一实例121是容器化后的视频应用,第二实例122是容器化后的太阳能用电管理应用,第三实例123是容器化后的电能管理应用。在本例中,第一实例121、第二实例122和第三实例123中的任意一个示例均可以作为目标实例。可选的,实例可以是pod。一个pod中包括有多个容器,其中,pod的服务运行在主容器中,其它程序(容器)被称为sidecar。
47.需要说明的是,pod是k8s中能够创建和部署的最小单元,是k8s集群中的一个应用实例。pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。
48.在本技术中,每个实例均可以与主节点110进行通信。每个实例还可以与控制服务130进行通信。
49.其中,控制服务130既能够与实例通信,控制服务130也能够与主节点110通信。
50.在本技术实施例中,一个实例能够根据在实例内部创建一个容器,该容器用于执行本技术提供的集群实例的数量调控方法。具体的实现过程可参看下列介绍。
51.请参考图3,图3是本技术一个示例性实施例提供的一种集群实例的数量调控方法的流程图。该集群实例的数量调控方法可以应用在图2所示的实例中。
52.在图3中,集群实例的数量调控方法包括:
53.步骤210,从控制服务中获取历史网络流量数据,历史网络流量数据用于指示目标实例单位时间内处理的请求的数量。
54.在本技术实施例中,执行主体是一个目标实例。在目标实例执行上述流程的过程时,实例可以在实例内部新建一个目标容器来实现整体的逻辑。可选的,目标容器可以是sidecar容器。本技术可以通过sidecar容器实现本技术提供的集群实例的数量调控方法。需要说明的是,本技术可以通过目标实例的控制器deployment来创建一组目标实例pod,一组目标实例pod用于表示一个应用。在调整目标实例pod的数量时,本技术通过调整目标实例的控制器deployment中的指定参数,即可控制目标实例pod的数量。
55.在步骤210中,实例从外部的控制服务中获取到自身的历史网络流量数据。其中,该历史网络流量数据用于指示目标实例在单位时间内处理的请求的数量。需要说明的是,目标实例是执行上述集群实例的数量调控方法的实例。
56.例如,本技术由目标实例a执行。在一种可能的方式中,目标实例a将从控制服务中获取自身的历史网络流量数据。可选地,该历史网络流量数据可以是最近连续时间内的数据集合。可选地,网络流量数据可以是rps(request per second,服务每秒请求量)。比如当前的系统时刻是y年m月d日10:00,则历史网络流量数据可以是y年m月d日10:00之前的一段时间内的数据。
57.步骤220,根据历史网络流量数据的数据特征,确定与数据特征对应的调控子模型。
58.在本技术实施例中,实例能够从历史网络流量数据中提取出数据特征。在一种可能的判断方式中,实例中可以预先存储多个数据特征。实例能够逐一判断网络流量数据中是否包括与数据特征相应类别的数据特征,并确定对应的调控子模型。
59.例如,实例中预先存储了数据特征f1、数据特征f2和数据特征f3一共三个类别的数据特征。在该场景中,实例能够在获取到历史网络流量数据的数据特征后,分别判断数据特征是否包括上述数据特征f1、数据特征f2和数据特征f3。
60.可选的,判断次序可以根据不同的数据特征的属性来安排。一种可能的方式中,用于表征数据持续时长超过阈值的数据特征,将被安排在用于表征周期性的数据特征来判断。比如,数据特征f1用于表征历史网络流量数据的持续时长超过阈值,数据特征f2用于表征周期性。在此情况下,实例先判断历史网络流量数据是否包括数据特征f1,然后在历史网络流量数据包括数据特征f1的基础上,再判断历史网络流量数据是否包括数据特征f2。
61.可选的,在一种可能的方案中,一种数据特征对应一个调控子模型。在该场景中,假设数据特征f1对应调控子模型m1,数据特征f2对应调控子模型m2,并且数据特征f3对应调控子模型m3。
62.在上述假设的架构中,若目标实例检测到自身的历史网络流量数据的数据特征符合调控子模型m1和调控子模型m3,则目标实例将调控子模型m1和调控子模型m3确定为历史网络流量数据对应的调控子模型。
63.步骤230,根据调控子模型和目标实例的处理服务的能力,获得调控模型。
64.在本技术实施例中,目标实例能够根据调控子模型和目标实例的处理服务的能力,获得调控模型。可选地,处理服务的能力可以是rps。
65.可选地,一个调控子模型或者多个调控子模型,能够根据目标实例当前的实时网络流量数据预测未来指定时刻的网络流量。在此基础上,本技术结合处理服务的能力,即可得到预测的目标实例的副本数量。
66.由此可知,本例能够基于调控子模型和目标实例的处理服务的能力,获得调控模型。
67.步骤240,将目标实例的实时网络流量数据输入调控模型,获得目标调控数量。
68.在本例中,目标实例可以将自身的实时网络流量数据作为输入量,输入到调控模型。调控模型处理实时网络流量数据后,将输出目标调控数量。需要说明的是,该目标调控数量是调控模型预测的目标实例的副本数量。
69.步骤250,响应于目标实例符合调控条件,将目标实例的副本数量调控为目标调控数量。
70.在一种可能的方式中,目标实例在符合调控条件时,将目标实例的副本数量调控为目标调控数量。需要说明的是,调控条件用于控制目标实例在调控副本的频率和资源消耗。本技术实施例在提高目标实例的副本数量的预测能力的前提下,通过调控条件过滤了部分不符合调控条件的副本调控请求。从而,本技术实施例能够实现在合适的调控频率的情况下,既保证目标实例能够正常处理外部访问请求,也能够不令目标实例中的资源闲置,使得目标实例自动化调控副本数量的能力能够平衡多因素,综合提高目标实例运行时的效能。
71.比如,目标实例需要调控30分钟之内的副本数量,且目标实例当前的rps是6000,目标实例每秒钟能够处理的请求的数量是1000条。若按照相关技术中的方法,运维人员将直接使用当前的rps(6000)除以1000,得到6。将目标实例的副本数调整为6。然而,在30分钟之内该6个副本能否满足外部访问目标实例的压力;或者,在30分钟之内,该6个副本能够满
足外部访问目标实例的压力,但30分钟之内的rps平均为3000左右,6个副本中的3个副本的资源相当于限制了30分钟。而使用本技术提供的方法,能够在前一种场景中,识别到副本数量不足,计算出的副本数是7或8等目标实例实际需要的数量。本技术提供的方法,能够在后一种场景中,识别到副本数量所需量不多,所需的数量是3。由此可见,本技术实施例能够根据目标实例的运行情况计算贴近需求的副本数量。
72.综上所述,本实施例提供的集群实例的数量调控方法,能通过先从控制服务中获取历史网络流量数据,根据该数据的数据特征确定对应的调控子模型,再根据调控子模型和目标实例的处理服务的能力,获得调控模型。由于调控模型是综合调控子模型和目标实例的处理服务的能力得到的,因此,该调控模型能够在多种情况下较为准确地确定出当前的副本数量的目标调控数量。最终在目标实例符合调控条件时,将目标实例的副本数量调控为目标调控数量,从而实现了自动化调整集群中实例的副本数量,在保证目标实例正常运行的情况下,提高了目标实例的资源利用效率。
73.基于上一个实施例所公开的方案,实例还能够通过精细化目标实例自动调整副本的条件,使得目标实例的缩扩容能够整体提高系统效能,请参考如下实施例。
74.请参见图4,图4是本技术另一个示例性实施例提供的一种集群实例的数量调控方法流程图。该集群实例的数量调控方法可以应用在上述图2所示的目标实例中,进一步而言,可以应用在实例中的目标容器中。在图4中,该集群实例的数量调控方法包括:
75.步骤311,从控制服务中获取历史网络流量数据。
76.在本例中,步骤311的执行过程和步骤210的执行过程相同,此处不再赘述。
77.步骤321,在数据特征包括基础特征的情况下,确定调控子模型包括基础子模型。
78.其中,基础特征用于指示历史网络流量数据中至少两个采样点在时间轴上的关联关系,基础子模型用于根据实时网络流量预测目标调控数量中的瞬时分量。
79.在本技术实施例中,目标实例能够对数据特征的类型进行判断。其中,数据特征的类型可以包括基础特征和附加特征。其中,附加特征可以包括趋势特征和/或周期特征。
80.在数据特征包括基础特征的情况下,目标实例能够确定调控子模型包括基础子模型。该基础子模型能够对实时网络流量数据进行处理,得到预测的目标调控数量中的瞬时分量。
81.步骤322,在数据特征包括基础特征和附加特征的情况下,确定调控子模型包括基础子模型和附加特征各自对应的子模型。
82.其中,附加特征包括趋势特征和/或周期特征,趋势特征用于指示历史网络流量数据中至少两个采样点在时间轴上的单调性,周期特征用于指示包括至少两个采样点的历史网络流量数据存在周期性,基础子模型用于根据实时网络流量数据预测目标调控数量中的瞬时分量,附加特征对应的子模型用于根据实时网络流量数量确定目标调控数量中的附加分量。
83.可选地,在一种可能的方式中,附加特征包括趋势特征和/或长期特征。下面分别介绍附加特征因包括的具体内容的不同,相应的子模型的作用。
84.在附加特征包括长期特征的情况下,附加特征对应的子模型用于根据网络流量确定目标调控数量中的长期分量。需要说明的是,附加特征对应的子模型能够将实时网络流量数据作为输入数据,计算出目标调控数量中的长期分量。其中,长期分量是一个无单位的
常量。长期分量用于指示目标实例基于长期正常运行提供的副本数量。
85.在数据特征包括趋势特征的情况下,附加特征对应的子模型用于根据实时网络流量数据确定待调控数据中的趋势分量。需要说明的是,附加特征对应的子模型能够将网络流量作为输入数据,计算出目标调控数量中的趋势分量。其中,趋势分量是一个无单位的常量。趋势分量用于指示目标实例基于网络流量的变化趋势提供的副本数量。
86.一种可能的方式中,响应于附加特征包括周期特征,附加特征对应的子模型用于根据实时网络流量数据确定目标调控数量中的长期分量。
87.另一种可能的方式中,响应于数据特征包括趋势特征,附加特征对应的子模型用于根据实时网络流量数据确定目标调控数量中的趋势分量。
88.在本例中,在实例执行完成步骤321和步骤322的情况下,实例既可以选择执行步骤331,也可以选择执行步骤332和步骤333。
89.步骤331,响应于调控子模型的数量是一,将调控子模型的输出与处理服务的能力相除后形成的模型,作为调控模型。
90.在本例中,若经过上述过程确定的调控子模型的数量是一,则该调控子模型的输出除以处理服务的能力,得到调控模型。
91.例如,调控子模型的输出是x1并且处理服务的能力是a1,则该x1除以a1后等于目标调控数量,该等式所形成的模型是调控模型。
92.步骤332,响应于调控子模型的数量多于一,将调控子模型进行线性叠加。
93.在本例中,若调控子模型的数量多于一,则说明多个调控子模型均用于构成调控模型。例如,一个调控子模型的输出为x2,另一个调控子模型的输出为x3,又一个调控子模型的输出为x4,则上述三个调控子模型相加,得到x2+x3+x4。
94.步骤333,将进行线性叠加之后得到的和与处理服务的能力相除所形成的模型,作为调控模型。
95.在本例中,目标实例将上述线性叠加的子模型的和,与,处理服务的能力相除,所形成的模型作为调控模型。
96.例如,基于步骤332中所示的调控子模型,且处理服务的能力为a2,则该(x2+x3+x4)除以a2后等于目标调控数量,该等式所形成的模型是调控模型。
97.步骤341,响应于目标实例符合调控条件,向控制服务发送调控请求。
98.其中,调控请求用于请求将目标实例的副本数量调控为目标调控数量。在本技术设计中,由于在原有架构中目标实例没有调用主节点的权限。因此,本技术将控制服务作为中介,令具有调用主节点权限的控制服务完成调整目标实例的副本数量。其中,控制服务还能够查询历史网络流量,调用k8s集群中的主节点。
99.在本技术中,目标实例中可以预先存储好调控条件。当目标实例检测到当前的条件符合调控条件时,将向控制服务发送调控请求。由于本技术通过调控条件控制是否向控制服务发送调控请求,以避免目标实例频繁进行调控,导致系统花费在创建副本上的资源消耗过大。
100.需要说明的是,调控条件可以包括时间条件和/或数量条件。下面将分为两个场景进行介绍。
101.场景一:调控条件包括时间条件。
102.在该场景中,时间条件是当前系统时刻与最近调控时刻之间的时长大于第一阈值,最近调控时刻是目标实例上一次完成调控副本数量的时刻。
103.可选地,当前系统时刻是目标实例自身的系统时刻。在一种可能的方式中,由目标实例、控制服务和主节点组成的系统共用一个系统时刻,该系统时刻在当前的时刻即是当前系统时刻。可选的,当前系统时刻可以由主节点来维护,目标实例从主节点中获取。
104.可选地,最近调控时刻用于指示目标实例在上一次完成调控副本数量时的时刻。例如,若目标实例上一次在a时刻已经将副本数量由n1调整为n2,则最近调控时刻为a时刻。
105.可选地,第一阈值用于指示一个时长阈值。该阈值的单位可以是时间单位。例如,第一阈值的单位可以是毫秒、秒、分钟、小时或天等,本技术实施例对此不作限制。
106.以最近调控时刻是a时刻,当前系统时刻是b时刻,且第一阈值为t为例。在(b-a)>t时,目标实例将确认自身符合调控条件,向控制服务发送调控请求。
107.场景二:调控条件包括数量条件。
108.在该场景中,数量条件是目标调控数量与目标实例当前的副本数量之间的差值大于第二阈值。
109.可选地,目标调控数量是目标实例通过调控模型计算得到的数据。
110.可选地,当前的副本数量是目标实例在当前系统时刻中的副本数量。例如,当前系统时刻是b时刻,则当前的副本数量是目标实例在b时刻时的副本数量。比如,目标实例在b时刻的副本数量是5个,则当前的副本数量是5。
111.需要说明的是,在本技术中,当前的副本数量是在整个系统中包含目标实例在内的全部副本的数量。比如,在系统中包括目标实例c、目标实例c1、目标实例c2和目标实例c3,此时当前的副本数量是4。
112.可选地,第二阈值用于指示一个数量阈值。该阈值的单位可以是个。
113.在一个示例中,以目标实例当前的副本数量是4,目标调控数量是5,第二阈值是1。由于当前的副本数量4与目标调控数量5之间的差值为1,等于第二阈值1,因此目标实例不满足调控条件。
114.在另一个示例中,以目标实例当前的副本数量是4,目标调控数量是6,第二阈值是1。由于当前的副本数量4与目标调控数量5之间的差值为2,大于第二阈值1,因此目标实例满足调控条件。
115.场景三:调控条件包括时间条件和数量条件。
116.在该场景中,目标实例将同时检测时间条件和数量条件是否均满足。目标实例将在同时满足时间条件和数量条件时,确认自身满足调控条件。其中,时间条件可参见场景一中的介绍,数量条件可参见场景二中的介绍,此处不再赘述。
117.步骤342,接收主节点发送的调控指令,调控指令是主节点被控制服务基于调控请求调用时生成的指令。
118.在本例中,作为受主节点控制的目标实例,目标实例将接收主节点的指令。其中,目标实例可以接收主节点发送的调控指令。调控指令是主节点在控制服务调用时生成的指令。
119.步骤343,根据调控指令,将目标实例的副本数量调控为目标调控数量。
120.在本例中,目标实例将在调控指令的作用下,将目标实例的副本数量调控为目标
调控数量。需要说明的是,由于原本架构中主节点具有管理目标实例的大部分权限。因此,该调控指令中可以携带主节点的标识,或者,能够被目标实例识别出是主节点发送的指令。
121.在目标实例识别出调控指令来自主节点时,目标实例将目标实例的副本数量调控为目标调控数量。
122.在目标实例的扩容场景中。若目标调控数量多于当前的副本数量,则目标实例将调集空闲的硬件资源或者释放已被非目标实例占用的硬件资源,再将调集到的硬件资源分配给新创建的目标实例的副本。
123.例如,当前的副本数量是4个,目标调控数量是6个。目标实例将收集空闲的硬件资源,若空闲的硬件资源已能够满足创建2个目标实例的副本,则目标实例将直接创建2个目标实例的副本。若空闲的应将资源不满足创建2个目标实例的副本,则目标实例将释放非目标实例占用的应将资源,直至满足创建2个目标实例的副本的硬件资源。需要说明的是,目标实例释放的硬件资源是仅被占用但空闲的硬件资源。
124.在目标实例的缩容场景中。若目标调控数量小于当前的副本数量,则目标实例可以根据预定策略进行缩容。一种可能的策略是随机策略,即随机确定需要释放的副本进行释放。另一种可能的策略是活跃度策略,即识别出读写量排名靠后的需要释放的个数的副本进行释放。需要说明的是,上述两种释放副本的策略仅为示例性举例,不对本技术可能应用的其它释放副本的策略形成限定。
125.例如,当前的副本数量是4个,目标调控数量是2个。目标实例将释放2个目标实例的副本。若当前的目标实例副本分别是目标实例d1、目标实例d2、目标实例d3和目标实例d4。一种可能的场景中,若目标实例采用随机策略缩容,则目标实例可以从上述4个目标实例副本中随机确定2个目标实例副本释放。另一种可能的场景中,若目标实例采用活跃度策略,则目标实例将先按照累积读写量对上述4个目标实例副本进行排序。若上述4个目标实例副本降序排序后得到的次序是目标实例d4、目标实例d1、目标实例d3和目标实例d2。其中,累积读写量最后的两个副本分别是目标实例d3和目标实例d2。因此,目标实例将释放目标实例d3和目标实例d2。
126.综上所述,本实施例根据能够在根据历史网络流量数据中的数据特征的情况,选择与数据特征类型对应的调控子模型。其中,数据特征包括基础特征和附加特征。基础特征对应的基础子模型能够对实时网络流量数据进行处理后得到目标调控数量中的瞬时分量,附加特征包括趋势特征和/或周期特征;趋势特征对应的子模型能够对实时网络流量数据进行处理后得到目标调控数量中的趋势分量;长期趋势对应的子模型能够对实时网络流量数据进行处理后得到目标调控数量中的长期趋势。在目标实例得到历史网络流量数据中的数据特征所对应的各个调控子模型后,将线性叠加上述调控子模型,之后将叠加后的结果与目标实例的处理服务的能力相除所形成的模型作为调控模型,通过调控模型处理实时网络流量数据,得到目标调控数量。目标实例最终将在符合调控条件时,将目标实例的副本数量调控为目标调控数量。由于调控模型充分考虑了瞬时分量、趋势分量和长期分量,因此能够得到适应性较强的目标调控数量。又因为目标实例将在调控条件的控制下调整副本数量,因此,目标实例能够避免因实时网络流量数据的变化导致目标实例的副本数量频繁调整,提高了调整目标实例的副本数量的单次收益,综合提高了系统的效能。
127.可选的,在调控条件包括时间条件时,目标实例将在当前系统时刻与最近调控时
刻之间的时长大于第一阈值的情况下,将目标实例的副本数量调整为待调整数量。由此可见,本技术能够避免目标实例的副本数量频繁调整,提高了调整目标实例的副本数量的单次收益,综合提高了系统的效能。
128.可选的,在调控条件包括数量条件时,目标实例将在目标调控数量与目标实例当前的副本数量之间的差值大于第二阈值时,将目标实例的副本数量调整为待调整数量。由此可见,本技术能够避免目标实例的副本数量在调整幅度不大时进行调整。由于目标实例的副本数量调整的幅度不大时,原本的副本数量基本能够满足系统的需求或者闲置的副本资源有限,对系统效能影响不大。在该场景中,调整目标实例的副本数量的收益不高,因此,目标实例可以仅在满足数量条件的情况下,按照待调整数量调整目标实例的副本数量。
129.可选的,在调控条件包括时间条件和数量条件时,目标实例能够在时间和副本数量变化两个维度上同时避免调整的低效能,提高了调整目标实例的副本数量的单次收益,综合提高了系统的效能。
130.在本技术中,目标实例在获取到自身的历史网络流量数据后,将根据该网络流量的特点。例如,目标实例分析出历史网络流量数据的长期特征、周期特征以及短时随机特征等,将长期预测和短期预测相结合。其中,长期预测包括趋势预测和周期预测,短期预测基于arma(autoregressive moving average model,自回归滑动平均模型)模型,实现过程介绍如下。
131.请参考图5,图5是是本技术另一个示例性实施例提供的一种集群实例的数量调控方法流程图。该集群实例的数量调控方法可以应用在上述图2所示的目标实例中,进一步而言,可以应用在实例中的目标容器中。在图5中,该集群实例的数量调控方法包括:
132.步骤401,从控制服务中获取历史网络流量数据。
133.在本技术中,目标实例将先从控制服务中获取历史网络流量数据。需要说明的是,控制服务可以存储目标实例的一段时长的历史网络流量数据。一种可能的方式中,历史网络流量数据的持续时长可以是从当前系统时刻向前追溯一段时间到开始计时时刻。
134.可选的,目标实例的历史网络流量数据可以记录在prometheus中,持续时长可以自由设置。一种可能的方式中,历史网络流量数据可以存储的时长为1周。
135.可选的,目标实例中的目标容器将保留最近第一时长的网络流量数据。其中,第一时长是较短的时长,该第一时长的网络流量数据可以作为目标实例的实时网络流量数据。
136.步骤402,判断历史网络流量数据的持续时长是否大于第二时长。
137.在本技术中,目标实例将判断读取历史网络流量数据的持续时长信息。在一种可能的情况中,历史网络流量数据在预设的采样点上具有数据,为连续采样的信息。例如,预设的采样间隔为1秒钟,则控制服务提供的历史网络流量数据应当在每间隔1秒钟的采样点上均具有历史网络流量数据。又例如,预设的采样间隔为100毫秒,则控制服务提供的历史网络流量数据应当在每间隔100毫秒的采样点上均具有历史网络流量数据。
138.可选地,第二时长可以根据本技术的应用场景的不同而进行相应的调整。例如,第二时长为2周(week)、1周、3天、1天或12小时等时长,本技术对此不作限定。
139.需要说明的是,目标实例的相关业务可能涉及到周期为1整天的数据,也可能涉及周期为若干小时的数据。前者需要若干天的数据以分析周期性或者趋势性,后者需要一个周期的若干倍时长的数据。由此可见,处理不同的业务的目标实例对应的第二时长不同。在
目标实例所要处理的业务确定时,第二时长也相应确定。
140.其中,原始的历史网络流量数据可以记为y
t

141.在本例中,若历史网络流量数据的持续时长大于第二时长,目标实例执行步骤403。若历史网络流量数据的持续时长不大于第二时长,目标实例跳转执行步骤407。
142.步骤403,判断历史网络流量数据是否具有趋势性。
143.在本例中,目标实例先将历史网络流量数据所对应的数据,采用最小二乘法进行参数估计。目标实例能够将数据拟合至公式y1
t
=b+kt中。
144.可选的,本技术给出k的取值范围。当k<0.2*(max(y)-min(y))/(max(x)-min(x))时,历史网络流量数据不具备趋势性。当k≥0.2*(max(y)-min(y))/(max(x)-min(x))时,历史网络流量数据具备趋势性。
145.在本例中,系数0.2是可以调整的参数,例如,该参数还可以调整为0.1、0.15或0.25等数值。
146.请参见图6,图6是基于图5所示实施例提供的一种历史网络流量数据的示意图。在图6中,横坐标表示时间,单位是分钟;纵坐标是rps(服务每秒请求量)。需要说明的是,图6所示的数据是历史网络流量数据的原始数据。
147.请参见图7,图7是基于图6所示实施例提供的一种拟合后的历史网络流量数据的示意图。在图7中,直线610表示历史网络流量数据采用最小二乘法拟合后得到的趋势子模型的图像。
148.步骤404,确定趋势性对应的趋势子模型。
149.在本例中,趋势性对应的趋势子模型可以是模型y1
t
=b+kt,其中,k和b在代入历史网络流量数据后取到实际的数值,已为常数。y1
t
表示趋势分量。需要说明的是,当历史网络流量数据不具有趋势性时,y1
t
=0。
150.步骤405,判断历史网络流量数据是否具有周期性。
151.在本例中,将历史网络流量数据的原始信号中的趋势分量滤除,得到第一信号图像。也即,滤除趋势分量后历史网络流量数据的原始信号为y
t-y1
t
。请参见图8,图8是基于图5所示实施例提供的一种滤除趋势分量后的历史网络流量数据的波形图。在图8所示的图像中,横坐标是时间,单位是分钟;纵坐标是rps。
152.目标实例可以对滤除趋势分量后的历史网络流量数据进行傅里叶变换。对于经过傅里叶变换后的数据,倘若indexofmax(fft)=0或者mean(fft(1:))<0.1*fft(0)。其中,当数据满足其中一个条件时,说明历史网络流量数据没有周期性。当indexofmax(fft)≠0并且mean(fft(1:))≥0.1*fft(0),说明历史网络流量数据具有周期性。
153.可选的,mean(fft(1:))≥0.1*fft(1)中的系数0.1是一个可以调整数值的系数,该数值还可以是0.2、0.15或0.05等实数值,与0.1在一个数量级的数值均可以作为合适系数,本技术实施例对此不作限制。
154.请参见图9,图9是基于图8实施例提供的一种傅里叶变换后的信号的波形图。图9所示的信号满足上述条件indexofmax(fft)≠0并且mean(fft(1:))≥0.1*fft(0),图9所示的信号对应的原始历史网络流量数据具有周期性。
155.请参见图10,图10是基于图8所示实施例提供的另一种傅里叶变换后的信号的波形图。图10所示的信号的最大值在横坐标为0的位置处取到,也即满足条件indexofmax
(fft)=0,说明图10所示的信号对应的原始历史网络流量数据不具有周期性。
156.针对周期性而言,若原始历史网络流量数据不具有周期性,则没有对应的周期子模型,y2
t
=0。若原始历史网络流量数据具有周期性,则存在对应的周期子模型其中,ωi为主要频点对应的角频率。ai是根据快速傅里叶变换后得到的数据,获得的主要频点对应的估计幅值,是根据快速傅里叶变换后得到的数据,获得的主要频点对应的启示角度,i是主要频点的序数,m为主要频点的总个数。
157.步骤406,确定周期性对应的周期子模型。
158.基于上述步骤的论述,当原始历史网络流量数据具有周期性周期性时,周期子模型
159.步骤407,确定瞬时性对应的基础子模型。
160.在本例中,目标实例能够取出本地存储的实时网络流量数据。一种可能的场景中,实时历史网络流量数据是持续时长为第一时长的最近的网络流量数据。以第一时长是3分钟为例,目标实例能够将自当前系统时刻回溯3分钟内的网络流量数据作为实时历史网络流量数据。
161.基于实时网络流量数据,目标实例训练arma(2,1)模型。需要说明的是,本技术采用arma(2,1)模型的原因在于该模型计算所需数据量较小并且模型较为简单,训练速度较快。
162.其中,基础子模型y3
t
=ay
t-1
+by
t-2
+a
t
+ca
t-1
。在公式中,a、b和c均为未知数,y3
t
是rps值。目标实例基于实时网络流量数据,能够评估得到a、b和c的数值,从而得到评估后的模型,根据上述模型,可以预测出新的时间点的数值。
163.步骤408,基于得到的调控子模型和目标实例的处理服务的能力,得到调控模型。
164.在本例中,调控模型m=(y1
t
+y2
t
+y3
t
)/n。其中,n表示目标实例的处理服务的能力。若目标实例一秒钟处理1000条请求,则n等于1000。
165.步骤409,基于实时网络流量数据通过调控模型预测目标调控数量。
166.需要说明的是,将实时流量数据代入调控模型后,即可得到目标调控数量m。调控模型右侧计算得到的数值大概率是非整数。一种可能的方式中,m是通过向上取整的方法得到的整数;另一种可能的方式中,m是通过向下取整的方法得到的整数;另一种可能的方式中,m是通过四舍五入的方法得到整数,将整数作为目标调控数量m的数值。
167.举例说明,当通过调控模型计算得到m=4.72时,若采用向上取整的方法,则最终确定的m的取值是5;若采用向下取整的方法,则最终确定的m的取值是4;若采用四舍五入的方法,则最终确定的m的取值是5。
168.步骤410,在目标实例满足调控条件时,按照目标调控数量调整目标实例的副本数量。
169.在本技术中,调控条件可以参见图4所示实施例中的介绍,本处不再赘述。目标实例将在符合调控条件时,按照目标调控数量调整目标是的副本数量。一种可能的方式中,若目标调控数量大于当前的副本数量,则目标实例进行扩容操作。另一种可能的方式中,若目
标调控数量小于当前的副本数量,则目标实例进行缩容操作。
170.综上所述,本实施例提供的集群实例的数量调控方法,目标实例能够从控制服务中获取历史网络流量数据,逐步分析数据具有长期性和趋势性,并在数据具有上述特点时确定对应的子模型,最后根据数据的基础子模型、长期子模型和趋势子模型以及目标实例的处理服务的能力,得到调控模型,基于调控模型处理实时网络流量数据,得到目标调控数量。最终,目标实例在符合调控条件时,将目标实例的副本数量调整为目标调控数量,从而实现了自动化调整集群中实例的副本数量,在保证目标实例正常运行的情况下,提高了目标实例的资源利用效率。
171.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
172.请参考图11,图11是本技术一个示例性实施例提供的一种集群实例的数量调控装置的结构框图。该集群实例的数量调控装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
173.数据获取模块1010,用于从控制服务中获取历史网络流量数据,所述历史网络流量数据用于指示目标实例在单位时间内处理的请求的数量;
174.模型确定模块1020,用于根据所述历史网络流量数据的数据特征,确定与所述数据特征对应的调控子模型;
175.模型获取模块1030,用于根据所述调控子模型和所述目标实例的处理服务的能力,获得调控模型;
176.数量获取模块1040,用于将所述目标实例的实时网络流量数据输入所述调控模型,获得目标调控数量;
177.数量调控模块1050,用于响应于所述目标实例符合调控条件,将所述目标实例的副本数量调控为所述目标调控数量。
178.在一个可选的实施例中,所述模型确定模块1020,用于在所述数据特征包括基础特征的情况下,确定所述调控子模型包括基础子模型,所述基础特征用于指示所述历史网络流量数据中至少两个采样点在时间轴上的关联关系,所述基础子模型用于根据所述实时网络流量数据预测所述目标调控数量中的瞬时分量。和/或,所述模型确定模块1020,用于在所述数据特征包括基础特征和附加特征的情况下,确定所述调控子模型包括基础子模型和所述附加特征各自对应的子模型,所述附加特征包括趋势特征和/或周期特征,所述趋势特征用于指示所述历史网络流量数据中至少两个采样点在时间轴上的单调性,所述周期特征用于指示包括至少两个采样点的所述历史网络流量数据存在周期性,所述基础子模型用于根据所述实时网络流量数据预测所述目标调控数量中的瞬时分量,所述附加特征对应的子模型用于根据所述实时网络流量数量确定所述目标调控数量中的附加分量。
179.在一个可选的实施例中,所述装置响应于所述附加特征包括周期特征,所述附加特征对应的子模型用于根据所述实时网络流量数据确定所述目标调控数量中的长期分量。所述装置响应于所述数据特征包括趋势特征,所述附加特征对应的子模型用于根据所述实时网络流量数据确定所述目标调控数量中的趋势分量。
180.在一个可选的实施例中,所述模型获取模块1030,用于响应于所述调控子模型的数量是一,将所述调控子模型的输出与所述处理服务的能力相除后形成的模型,作为所述
调控模型。或,响应于所述调控子模型的数量多于一,将所述调控子模型进行线性叠加;将进行所述线性叠加之后得到的和与所述处理服务的能力相除后形成的模型,作为所述调控模型。
181.在一个可选的实施例中,所述数量调控模块1050,用于响应于所述目标实例符合调控条件,向所述控制服务发送调控请求,所述调控请求用于请求将所述目标实例的副本数量调控为所述目标调控数量;接收主节点发送的调控指令,所述调控指令是所述主节点被所述控制服务基于所述调控请求调用时生成的指令;根据所述调控指令,将所述目标实例的副本数量调控为所述目标调控数量。
182.在一个可选的实施例中,所述装置涉及的所述调控条件包括:当前系统时刻与最近调控时刻之间的时长大于第一阈值,所述最近调控时刻是所述目标实例上一次完成调控副本数量的时刻。
183.在一个可选的实施例中,所述装置涉及的所述目标调控数量与所述目标实例当前的副本数量之间的差值大于第二阈值。
184.综上所述,本实施例提供的集群实例的数量调控装置,能通过先从控制服务中获取历史网络流量数据,根据该数据的数据特征确定对应的调控子模型,再根据调控子模型和目标实例的处理服务的能力,获得调控模型。由于调控模型是综合调控子模型和目标实例的处理服务的能力得到的,因此,该调控模型能够在多种情况下较为准确地确定出当前的副本数量的目标调控数量。最终在目标实例符合调控条件时,将目标实例的副本数量调控为目标调控数量,从而实现了自动化调整集群中实例的副本数量,在保证目标实例正常运行的情况下,提高了目标实例的资源利用效率。
185.示例性地,本技术实施例所示的集群实例的数量调控方法,可以应用在目标实例中,当目标实例装载在终端中时,该终端具备集群实例的数量调控功能。一种可能的方式中,目标实例是一个程序,部署在k8s集群中。终端可以包括电脑一体机、服务器或工作站等。该终端是参与k8s技术部署集群的硬件设备。
186.请参考图12,图12是本技术一个示例性实施例提供的终端的结构框图,如图12所示,该终端包括处理器1120和存储器1140,所述存储器1140中存储有至少一条指令,所述指令由所述处理器1120加载并执行以实现如本技术各个方法实施例所述的集群实例的数量调控方法。
187.处理器1120可以包括一个或者多个处理核心。处理器1120利用各种接口和线路连接整个终端1100内的各个部分,通过运行或执行存储在存储器1140内的指令、程序、代码集或指令集,以及调用存储在存储器1140内的数据,执行终端1100的各种功能和处理数据。可选的,处理器1120可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1120可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1120中,单独通过一块芯片进行实现。
188.存储器1140可以包括随机存储器(random access memory,ram),也可以包括只读
存储器(read-only memory,rom)。可选的,该存储器1140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1140可用于存储指令、程序、代码、代码集或指令集。存储器1140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
189.本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的集群实例的数量调控方法。
190.需要说明的是:上述实施例提供的集群实例的数量调控装置在执行集群实例的数量调控方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的集群实例的数量调控装置与集群实例的数量调控方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
191.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
192.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
193.以上所述仅为本技术的能够实现的示例性的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1