资源受限状态下的KubernetesPod弹性扩缩容方法与流程


资源受限状态下的kubernetes pod弹性扩缩容方法
技术领域
1.本发明涉及容器编排策略领域,特别是涉及资源受限状态下的kubernetes pod弹性扩缩容方法。


背景技术:



2.随着容器技术的逐渐普及,作为容器编排工具领域最优秀代表之一的kubernetes框架被广泛应用,各大公司也在开源版本的kubernetes框架上对其进行针对性的修改。kubernetes在其v2/beta版本中推出了可以自定义集弹性扩缩容指标的pod弹性扩缩容服务(horizontal pod autoscaler)。虽然,最近的研究中也开始对kubernetes pod弹性扩缩容方法的研究,但是现有的方法大多无法准确的掌握集弹性扩缩容的力度,且大多数方法不具备受限状态下的处理策略。
3.公布号为cn 114637650 a,名称为一种基于kubernetes集的弹性伸缩方法,提出基于cnn-lstm混合网络,根据历史指标值预测未来工作负载,通过当前指标值与预测指标值之差的绝对值与设定阈值进行比较,大于设定阈值,则说明有扩缩容的必要,并且设置的一个计时器计算的耗时,耗时小于等于时间阈值,则进行扩容和缩容;默认的集弹性扩缩容指标只包含cpu和内存等基础指标,这无法准确的反应系统的真实情况。
4.公布号为cn 113395178 a,名称为一种容器云弹性伸缩的方法及装置,提出通过自动监控集状态以及微服务当前资源使用率提前实现扩容节点,实现两级弹性扩缩容。先判断微服务的资源使用率是否满足预设扩容条件,若满足则计算扩容所需的资源,判定集节点资源中剩余节点是否满足扩容所需资源,若不满足,则扩容最小规格。默认的集弹性扩缩容指标只包含cpu和内存等基础指标,这无法准确的反应系统的真实情况, kubernetes在未来会应用到计算和存储资源更少的主机上,例如板卡,这类主机的一大特点就是在运行过程中很大可能会出现资源受限状态,而现有的kubernetes pod弹性扩缩容方法无法适应能会出现资源受限状态。
5.上述现有技术存在的缺点会影响kubernetes的弹性扩缩容的力,使其无法管理超大规模的容器,给管理员带来了很大的集管理压力。所以本发明提出了资源受限状态下的kubernetes pod弹性扩缩容方法。


技术实现要素:



6.本发明主要解决的技术问题是提供资源受限状态下的kubernetes pod弹性扩缩容方法,能够解决现有的kubernetes pod弹性扩缩容方法无法适应可能会出现的资源受限状态问题。
7.为解决上述技术问题,本发明采用的一个技术方案是:提供资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述包括:s1:获取容器编排工具kubernetes集的资源指标数据,所述资源指标数据包括:历史资源指标数据和当前资源指标数据;
s2:对所述资源指标数据进行清洗,得到清洗后资源指标数据,清洗后资源指标数据包括:清洗后历史资源指标数据和清洗后当前资源指标数据;s3:构建softmax分类模型,用于预测未来资源需求情况,所述未来资源需求情况包括:稳定、增加、减少、资源过剩和资源瓶颈;s4:将清洗后当前资源指标数据输入softmax分类模型,得到未来资源需求情况;s5:构建集弹性扩缩容指标计算公式,计算集弹性扩缩容指标;s6:结合所述未来资源需求情况、集弹性扩缩容指标和集资源状态,得到kubernetes pod的弹性扩缩容策略,所述集资源状态包括:资源受限和资源充足。
8.进一步地,所述s1,包括:所述历史资源指标数据包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况、可用的容器调度单元pod数量、前五次非稳定结果发生时间;所述当前资源指标数据包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况,可用的容器调度单元pod数量、历史最近一次非稳定结果发生时间。
9.进一步地,所述s2,包括:所述清洗,是指对资源指标数据进行空值填充,对空值填充后的资源指标数据按照时间段进行分组聚合;最后对分组聚合后的一个时间段内的指标数据进行时间序列化和归一化后得到清洗后资源指标数据;所述一个时间段,时长优选为5分钟。
10.进一步地,所述s3,包括:所述构建softmax分类模型,是将所述清洗后历史资源指标数据分为训练集和测试集,分别对所述softmax分类模型进行训练和预测;所述softmax分类模型,分类标签包括:稳定、增加、减少、资源过剩和资源瓶颈。
11.所述softmax分类模型的具体计算公式为:其中,为第i个清洗后历史资源指标数据的预测函数,为输入资源特征,为类标签,是模型参数的行向量矩阵,对每个清洗后历史资源指标数据,估计其所属类别概率,为特征的分类权重,是对概率分布进行归一化,使属于每个类别概率之和为1,k为类别的整数个数;所述softmax分类模型的损失函数为:
其中,m代表样本数,k代表类别数,c表示包含c类的实例的分类任务,表示类别权重,是样本特征和类别权重、尺度因子、边距因子的点积。
12.进一步地,所述s5,包括:所述计算集弹性扩缩容指标ela,包括:集连接数、磁盘读写情况、网络延迟情况、cpu利用率、可用的容器调度单元pod数量,所述计算公式为:其中,ela指集弹性扩缩容指标,其中,ela的取值范围为[0,1],其中,参数可以根据不同集重要性进行调整。
[0013]
进一步地,所述s6,包括:所述弹性扩缩容策略,包括:当未来资源需求情况为稳定、集资源状态为资源充足、集弹性扩缩容指标 ela》0.6且cpu利用率δ》0.6时,对容器调度单元pod进行扩容,若集弹性扩缩容指标ela 《0.3且cpu利用率δ《0.3时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为增加、集资源状态为资源充足、集弹性扩缩容指标ela 》0.5且cpu利用率δ》0.5时,对容器调度单元pod进行扩容,其他情况则保持不变;当未来资源需求情况为减少,不考虑集资源状态,集弹性扩缩容指标ela 《0.5且cpu利用率δ《0.5时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为资源过剩,不考虑集资源状态,对容器调度单元pod进行缩容;当未来资源需求情况为资源瓶颈、集资源状态为资源充足,对容器调度单元pod进行扩容,其他情况则保持不变。
[0014]
进一步地,所述对容器调度单元pod进行缩容,指在一个预测周期内减少一个pod单位;所述对容器调度单元pod进行扩容,指在一个预测周期内增加一个pod单位。
[0015]
本发明有益效果为:1)资源受限状态下的kubernetes pod弹性扩缩容方法,创新性的将softmax分类模型引入到kubernetes集弹性扩缩容前的资源预测中,使扩缩容时算法能更了解系统的
资源情况。
[0016]
2)提出了一种自定义集弹性扩缩容指标ela,所述集弹性扩容指标包括了集连接数,磁盘读写情况,cpu利用率、网络延迟情况,可用的容器调度单元pod数量;所述集弹性扩容指标在覆盖维度上明显优于现有kubernetes弹性扩缩容默认指标;考虑了资源受限状态下的执行方案,使本发明能适配kubernetes集可能出现的资源受限状态。
附图说明
[0017]
图1是本发明一种资源受限状态下的kubernetes pod弹性扩缩容方法的系统流程图;图2是kubernetes pod的弹性扩缩容策略结构图左边部分;图3是kubernetes pod的弹性扩缩容策略结构图右边部分。
具体实施方式
[0018]
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
[0019]
请参阅图1、图2和图3,本发明实施例包括:s1:获取容器编排工具kubernetes集的资源指标数据,所述资源指标数据包括:历史资源指标数据和当前资源指标数据;s2:对所述资源指标数据进行清洗,得到清洗后资源指标数据,清洗后资源指标数据包括:清洗后历史资源指标数据和清洗后当前资源指标数据;s3:构建softmax分类模型,用于预测未来资源需求情况,所述未来资源需求情况包括:稳定、增加、减少、资源过剩和资源瓶颈;s4:将清洗后当前资源指标数据输入softmax分类模型,得到未来资源需求情况;s5:构建集弹性扩缩容指标计算公式,计算集弹性扩缩容指标;s6:结合所述未来资源需求情况、集弹性扩缩容指标和集资源状态,得到kubernetes pod的弹性扩缩容策略,所述集资源状态包括:资源受限和资源充足。
[0020]
进一步地,所述s1,包括:所述历史资源指标数据包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况、可用的容器调度单元pod数量、前五次非稳定结果发生时间;所述当前资源指标数据包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况,可用的容器调度单元pod数量、历史最近一次非稳定结果发生时间。
[0021]
进一步地,所述s2,包括:所述清洗,是指对资源指标数据进行空值填充,对空值填充后的资源指标数据按照时间段进行分组聚合;最后对分组聚合后的一个时间段内的指标数据进行时间序列化和归一化后得到清洗后资源指标数据;所述一个时间段,时长优选为5分钟。
[0022]
进一步地,所述s3,包括:所述构建softmax分类模型,是将所述清洗后历史资源指标数据分为训练集和测试集,分别对所述softmax分类模型进行训练和预测;
所述softmax分类模型,分类标签包括:稳定、增加、减少、资源过剩和资源瓶颈。
[0023]
所述softmax分类模型的具体计算公式为:其中,为第i个清洗后历史资源指标数据的预测函数,为输入资源特征,为类标签,是模型参数的行向量矩阵,对每个清洗后历史资源指标数据,估计其所属类别概率,为特征的分类权重,是对概率分布进行归一化,使属于每个类别概率之和为1,k为类别的整数个数;所述softmax分类模型的损失函数为:其中,m代表样本数,k代表类别数,c表示包含c类的实例的分类任务,表示类别权重,是样本特征和类别权重、尺度因子、边距因子的点积。
[0024]
进一步地,所述s5,包括:所述计算集弹性扩缩容指标ela,包括:集连接数、磁盘读写情况、网络延迟情况、cpu利用率、可用的容器调度单元pod数量,所述计算公式为:其中,ela指集弹性扩缩容指标,其中,ela的取值范围为[0,1],其中,参数可以根据不同集重要性进行调整。
[0025]
进一步地,所述s6,包括:所述弹性扩缩容策略,包括:当未来资源需求情况为稳定、集资源状态为资源充足、集弹性扩缩容指标 ela》0.6且cpu利用率δ》0.6时,对容器调度单元pod进行扩容,若集弹性扩缩容指标ela 《
0.3且cpu利用率δ《0.3时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为增加、集资源状态为资源充足、集弹性扩缩容指标ela 》0.5且cpu利用率δ》0.5时,对容器调度单元pod进行扩容,其他情况则保持不变;当未来资源需求情况为减少,不考虑集资源状态,集弹性扩缩容指标ela 《0.5且cpu利用率δ《0.5时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为资源过剩,不考虑集资源状态,对容器调度单元pod进行缩容;当未来资源需求情况为资源瓶颈、集资源状态为资源充足,对容器调度单元pod进行扩容,其他情况则保持不变。
[0026]
进一步地,所述对容器调度单元pod进行缩容,指在一个预测周期内减少一个pod单位;所述对容器调度单元pod进行扩容,指在一个预测周期内增加一个pod单位。
[0027]
实施例1:资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述包括:s1:获取容器编排工具kubernetes集的资源指标数据,所述资源指标数据包括:历史资源指标数据和当前资源指标数据;集的历史资源指标数据输入,采用wordcount数据集进行测试,通过kafka实现数据发送,由kafka不规律的发送10mb/s数据、20mb/s、40mb/s的wordcount数据,kubernets集历史资源指标数据由第三方监控软件提供。
[0028]
设置kafka发送数据的频次总时间为30分钟,每5分钟变化一次,数据发送变化采用匀速增加,匀速减少的次序。
[0029]
如下所示,kafka发送数据的频次总时间为30分钟,每5分钟变化一次,数据发送变化采用匀速增加,匀速减少的次序。
[0030]
s2:对所述资源指标数据进行清洗,得到清洗后资源指标数据,清洗后资源指标数据包括:清洗后历史资源指标数据和清洗后当前资源指标数据;对第三方监控软件提供的资源指标数据进行清洗,进行空值填充,得到初始的输入数据。
[0031]
历史资源指标数据初始格式如下:
其中,时刻表示获得集资源的时间;表示当前时刻集具体的连接数;表示当前时刻的磁盘读写率;表示当前时刻网络延迟情况;表示当前时刻cpu利用率百分比;表示当前时刻可用的容器调度单元pod数量。
[0032]
kafka输入数据得到历史资源指标资源情况如下:s3:构建softmax分类模型,用于预测未来资源需求情况,所述未来资源需求情况包括:稳定、增加、减少、资源过剩和资源瓶颈;s4:将清洗后当前资源指标数据输入softmax分类模型,得到未来资源需求情况;将历史资源指标数据输入到softmax模型中,在softmax模型中会对不同的资源情况给予不同的权重;资源快速增加的权重大于资源稳定的权重;将获得到的历史资源数据输入到模型中训练,完成训练后,输入最新的资源数据信息,能够给出未来kubernetes资源使用情况,稳定、增加、减少、资源过剩和资源瓶颈。
[0033]
收集到kubernets集6台pc和5台板卡的历史资源情况,周期为4分钟:通过softmax模型得出如下预测结果的准确率和召回率:precision、recall都测试了稳定、增加、减少、资源过剩和资源瓶颈多种情况的指标值。
[0034]
s5:构建集弹性扩缩容指标计算公式,计算集弹性扩缩容指标;通过前面第三方监控软件输出的最新监控数据,构建集弹性扩缩容指标ela。
[0035]
其中,,,表示最新监控软件提供的集连接数,磁盘读写,网络延迟,
cpu利用率。如果kuberntes的容器调度单元pod数量小于0,则代表当前没有可用的容器调度单元pod,无法进行扩充;只有存在可用的容器调度单元pod才能进行扩容。参数是根据不同集重要性进行调整,本次实验取值为。
[0036]
s6:结合未来资源需求情况、集弹性扩缩容指标和集资源状态,得到kubernetes pod的弹性扩缩容策略,所述集资源状态包括:资源受限和资源充足。
[0037]
结合自定义弹性缩容指标和softmax模型预测得出的结果,对kubernetes pod 进行弹性扩缩容,输入最新的监控数据到softmax模型中:如图2、图3所示,图2与图3在两图中“连接处”连接,共同构成kubernetes pod的弹性扩缩容策略结构图;当未来资源需求情况为稳定、集资源状态为资源充足、集弹性扩缩容指标 ela》0.6且cpu利用率δ》0.6时,对容器调度单元pod进行扩容,若集弹性扩缩容指标ela 《0.3且cpu利用率δ《0.3时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为增加、集资源状态为资源充足、集弹性扩缩容指标ela 》0.5且cpu利用率δ》0.5时,对容器调度单元pod进行扩容,其他情况则保持不变;当未来资源需求情况为减少,不考虑集资源状态,集弹性扩缩容指标ela 《0.5且cpu利用率δ《0.5时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为资源过剩,不考虑集资源状态,对容器调度单元pod进行缩容;当未来资源需求情况为资源瓶颈、集资源状态为资源充足,对容器调度单元pod进行扩容,其他情况则保持不变。
[0038]
进一步地,所述对容器调度单元pod进行缩容,指在一个预测周期内减少一个pod单位;所述对容器调度单元pod进行扩容,指在一个预测周期内增加一个pod单位。
[0039]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:


1.资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述包括:s1:获取容器编排工具kubernetes集的资源指标数据,所述资源指标数据包括:历史资源指标数据和当前资源指标数据;s2:对所述资源指标数据进行清洗,得到清洗后资源指标数据,清洗后资源指标数据包括:清洗后历史资源指标数据和清洗后当前资源指标数据;s3:构建softmax分类模型,用于预测未来资源需求情况,所述未来资源需求情况包括:稳定、增加、减少、资源过剩和资源瓶颈;s4:将清洗后当前资源指标数据输入softmax分类模型,得到未来资源需求情况;s5:构建集弹性扩缩容指标计算公式,计算集弹性扩缩容指标;s6:结合所述未来资源需求情况、集弹性扩缩容指标和集资源状态,得到kubernetes pod的弹性扩缩容策略,所述集资源状态包括:资源受限和资源充足。2.如权利要求1所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述s1,包括:所述历史资源指标数据,包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况、可用的容器调度单元pod数量、前五次非稳定结果发生时间;所述当前资源指标数据,包括:集连接数、磁盘读写情况、cpu利用率、网络延迟情况,可用的容器调度单元pod数量、历史最近一次非稳定结果发生时间。3.如权利要求1所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述s2,包括:所述清洗,是指对资源指标数据进行空值填充,对空值填充后的资源指标数据按照时间段进行分组聚合;最后对分组聚合后的一个时间段内的指标数据进行时间序列化和归一化后得到清洗后资源指标数据;所述一个时间段,时长优选为5分钟。4.如权利要求1所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述s3,包括:所述构建softmax分类模型,是将所述清洗后历史资源指标数据分为训练集和测试集,分别对所述softmax分类模型进行训练和预测;所述softmax分类模型,分类标签包括:稳定、增加、减少、资源过剩和资源瓶颈。5.如权利要求1所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述softmax分类模型的具体计算公式为:其中,为第i个清洗后历史资源指标数据的预测函数,为输入资源特征,为类标签,是模型参数的行向量矩阵,对每个清洗后历史资源指标数据,估计其所属
类别概率,为特征的分类权重,是对概率分布进行归一化,使属于每个类别概率之和为1,k为类别的整数个数;所述softmax分类模型的损失函数为:其中,m代表样本数,k代表类别数,c表示包含c类的实例的分类任务,表示类别权重,是样本特征和类别权重、尺度因子、边距因子的点积。6.如权利要求1所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述s5,包括:所述计算集弹性扩缩容指标ela,包括:集连接数、磁盘读写情况、网络延迟情况、cpu利用率、可用的容器调度单元pod数量,所述计算公式为:其中,ela指集弹性扩缩容指标,其中,ela的取值范围为[0,1],其中,参数可以根据不同集重要性进行调整。7.如权利要求1所述的一种资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述s6,包括:所述弹性扩缩容策略,包括:当未来资源需求情况为稳定、集资源状态为资源充足、集弹性扩缩容指标ela>0.6且cpu利用率δ>0.6时,对容器调度单元pod进行扩容,若集弹性扩缩容指标ela <0.3且cpu利用率δ<0.3时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为增加、集资源状态为资源充足、集弹性扩缩容指标ela >0.5且cpu利用率δ>0.5时,对容器调度单元pod进行扩容,其他情况则保持不变;当未来资源需求情况为减少,不考虑集资源状态,集弹性扩缩容指标ela <0.5且cpu利用率δ<0.5时,对容器调度单元pod进行缩容,其他情况则保持不变;当未来资源需求情况为资源过剩,不考虑集资源状态,对容器调度单元pod进行缩
容;当未来资源需求情况为资源瓶颈、集资源状态为资源充足,对容器调度单元pod进行扩容,其他情况则保持不变。8.如权利要求7所述的资源受限状态下的kubernetes pod弹性扩缩容方法,其特征在于,所述对容器调度单元pod进行缩容,指在一个预测周期内减少一个pod单位;所述对容器调度单元pod进行扩容,指在一个预测周期内增加一个pod单位。

技术总结


本发明公开了资源受限状态下的Kubernetes Pod弹性扩缩容方法。所述方法包括:获取Kubernetes集的资源指标数据,对资源指标数据进行清洗,得到清洗后资源指标数据;将清洗后当前资源指标数据输入Softmax分类模型,得到未来资源需求情况;构建集弹性扩缩容指标计算公式,计算集弹性扩缩容指标;结合未来资源需求情况、集弹性扩缩容指标和集资源状态,得到Kubernetes Pod的弹性扩缩容策略。通过上述方式,本发明在Kubernetes集的容器调度单元Pod弹性扩缩容策略中,考虑了资源受限状态下的执行方案,使本发明适配Kubernetes集可能出现的资源受限状态。限状态。限状态。


技术研发人员:

李凡 牛新征 黄明峰 王流一 许佳 郑云红 罗涛

受保护的技术使用者:

贵州海誉科技股份有限公司

技术研发日:

2022.11.03

技术公布日:

2022/12/12

本文发布于:2024-09-24 07:17:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/33046.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:资源   集群   指标   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议