本发明属于集群资源调度,具体地,涉及一种基于k8s的pod调度方法、存储介质及设备。
背景技术:
1、随着云原生技术的普及,越来越多的企业使用kubernetes(k8s)来管理应用,并且集群规模也呈爆发式增长,企业也亟需应对随集群规模增长而带来的各种挑战。为了更好地提供高可用、弹性伸缩的应用,k8s提供了基于hpa(horizontal pod autoscaling)的应用弹性伸缩解决方案,它可以根据当前pod资源的使用率(如:cpu、磁盘、内存等),进行副本数的动态的扩容与缩容,以便减轻各个pod的压力。当pod负载达到一定的阈值后,会根据扩缩容的策略生成更多新的pod来分担压力,当pod的使用比较空闲时,在稳定空闲一段时间后,还会自动减少pod的副本数量。
2、但这种hpa弹性伸缩解决方案是基于pod资源使用率被动的触发pod副本数的动态扩容和缩容,当资源使用率达到设定的阈值动态调整pod副本数会存在集群资源不足的情况,进而pod副本资源调度失败,影响业务功能。
技术实现思路
1、针对现有技术中存在的问题,本发明提供了一种基于k8s的pod调度方法、存储介质及设备,通过预测未来同一时间段的业务访问量并结合每个pod单位时间的最大并发量,计算出需要的pod数量,并通过k8s集群的资源调度能力调度pod,进行资源的提前分配及释放,以达到资源有效利用,节约成本的效果。
2、为实现上述技术目的,本发明采用如下技术方案:一种基于k8s的pod调度方法,具体包括如下步骤:
3、步骤1、根据pod对应的业务资源类别,将pod进行分类;
4、步骤2、对于每一类pod,将每个pod在对应的cpu与内存规格下进行压测,在确认资源告警阈值不触发的前提下,计算出单位时间内每个pod处理请求的业务总量,得到每个pod单位时间内的最大并发量;
5、步骤3、根据不同业务某时间段内历史访问日志记录,统计出某时间段内历史业务访问量;并根据某时间段内历史业务访问量对未来同一时间段的业务访问量进行预测;
6、步骤4、将预测的未来同一时间段的业务访问量结合每个pod单位时间的最大并发量,计算出需要的pod数量,并通过k8s集群的资源调度能力调度pod。
7、进一步地,所述pod数量的计算过程为:
8、
9、其中,l表示pod数量,m表示预测的未来同一时间段的业务访问量,i表示每个pod单位时间内的最大并发量,t表示时间段。
10、进一步地,步骤4中当预测的业务访问量比历史同期业务访问量降低时,将预测的未来同一时间段的业务访问量结合每个pod单位时间的最大并发量,计算出需要的pod数量,通过k8s集群的资源调度能力调整pod数量,并将多余的pod释放供其他系统使用。
11、进一步地,步骤4中当预测的业务访问量比历史同期业务访问量增加时,将预测的未来同一时间段的业务访问量结合每个pod单位时间的最大并发量,计算出需要的pod数量,并根据计算出需要的pod数量与当前pod数量的差值,计算出增加的pod数量,并统计出增加的基础资源,判断k8s集群可分配的基础资源是否充足,若充足,通过k8s集群资源调度能力,直接调度对应所需pod;否则,调度新的服务器资源加入到k8s集群中,以满足业务资源需求,再通过k8s集群资源调度能力,调度对应所需pod数量,满足业务需求。
12、进一步地,本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行所述的基于k8s的pod调度方法。
13、进一步地,本发明还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现所述的基于k8s的pod调度方法。
14、与现有技术相比,本发明具有如下有益效果:本发明基于k8s的pod调度方法通过预测未来同一时间段的业务访问量并结合每个pod单位时间的最大并发量,计算出需要的pod数量,并主动地通过k8s集群的资源调度能力调度pod,实现pod的预调度,从而进行资源的提前分配及释放,以达到资源有效利用,节约成本的效果;同时,通过提前调度,避免当出现业务需求激增时,出现资源不足而影响业务正常使用的情况。
1.一种基于k8s的pod调度方法,其特征在于,具体包括如下步骤:
2.根据权利要求1所述的一种基于k8s的pod调度方法,其特征在于,所述pod数量的计算过程为:
3.根据权利要求1所述的一种基于k8s的pod调度方法,其特征在于,步骤4中当预测的业务访问量比历史同期业务访问量降低时,将预测的未来同一时间段的业务访问量结合每个pod单位时间的最大并发量,计算出需要的pod数量,通过k8s集群的资源调度能力调整pod数量,并将多余的pod释放供其他系统使用。
4.根据权利要求1所述的一种基于k8s的pod调度方法,其特征在于,步骤4中当预测的业务访问量比历史同期业务访问量增加时,将预测的未来同一时间段的业务访问量结合每个pod单位时间的最大并发量,计算出需要的pod数量,并根据计算出需要的pod数量与当前pod数量的差值,计算出增加的pod数量,并统计出增加的基础资源,判断k8s集群可分配的基础资源是否充足,若充足,通过k8s集群资源调度能力,直接调度对应所需pod;否则,调度新的服务器资源加入到k8s集群中,以满足业务资源需求,再通过k8s集群资源调度能力,调度对应所需pod数量,满足业务需求。
5.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1-4任一项所述的基于k8s的pod调度方法。
6.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1-4任一项所述的基于k8s的pod调度方法。