本发明涉及资源调度,具体地,涉及一种基于机器学习的kubernetes集群动态资源调度方法和系统。
背景技术:
1、目前基于kubernetes集群进行容器资源调度的方法大部分是使用随机、轮询等默认的调度策略,这种默认的调度方式缺乏灵活性,不能随着系统类型的不同,系统运行状态的不同而动态的变化,并且当部署的系统所配置的调度策略不合适的时候,也会造成系统资源的浪费,提高了运营成本。
2、因此,现有技术中(申请号为cn201910118945的中国专利,公开了“基于用户特征预测的仿真云平台负载调度方法”)的这种基于用户特征来预测的调度方法,需要大量的用户特征,但是对于普通的企业应用管理系统,用户特征是比较少的,基于此方法的预测结果往往是不准确的。而容器集群中应用数据最多最全面的是部署的应用系统资源的使用数据,基于此数据来预测应用资源消耗情况,从而调整对应的资源调度策略,是一种合适的方案。
3、专利文献cn107423134a(申请号:cn201710571962.6)公开了一种大规模计算集群的动态资源调度方法。本方法为:1)预先设定各资源使用者可使用的最大、最小计算资源数量;2)采集当前整体可用计算资源总量wn、各资源使用者占用的计算资源数量和当前资源使用者总数;3)若当前空余计算资源数量free,则将该free个空闲计算资源分配给有运行作业需求的资源使用者;如果当前没有空余计算资源且存在有运行作业需求的资源使用者,则从当前各资源使用者使用的计算资源中抽取若干计算资源或是逐步减少当前计算资源使用者的可用计算资源量并将其分配给有运行作业需求的新资源使用者。然而对于大型平台级应用,固定一种或者几种资源调度方式都不是一个合理的解决方案,产生的调度结果也并不能达到系统资源的最优使用效果。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种基于机器学习的kubernetes集群动态资源调度方法和系统。
2、根据本发明提供的基于机器学习的kubernetes集群动态资源调度方法,包括:
3、步骤1:通过客户端或者命令行工具操作kubernetes,在kubernetes中汇总部署系统的基本信息;
4、步骤2:将部署系统的基本信息输入到预测模型中,结合行业类相似系统的历史调度数据,对不同的调度策略进行评价;
5、步骤3:结合机器学习进行预测,得到部署系统的最优调度策略;
6、步骤4:将预测的最优调度策略发送至kubernetes,并执行该调度策略,完成系统的部署过程和调度过程。
7、优选的,所述步骤1包括:
8、步骤1.1:通过页面或者命令行工具操作kubernetes,创建部署系统的资源对象,创建过程中,提供部署系统的基本信息;
9、步骤1.2:在kubernetes内部封装部署系统的基本信息,并传输到预测模型,将没有配置的信息使用默认值代替。
10、优选的,所述步骤2包括:
11、步骤2.1:根据系统行业信息、系统资源限制条件数据、部署系统的全局历史数据、系统资源使用历史数据、调度策略评价数据,建立预测模型,并根据系统行业信息和限制条件信息得到最优的kubernetes资源调度策略;
12、步骤2.2:根据历史数据训练预测模型;
13、步骤2.3:使用训练后的预测模型,根据输入的系统基本信息得到预测的资源调度策略,在kubernetes资源创建、扩容和缩容过程中,同样使用预测模型实时预测最优的资源调度策略。
14、优选的,所述步骤3包括:在kubernetes中添加基于预测模型的自定义调度器scheduler,并将调度器文件夹上传到kubernetes对应的调度器算法目录下;
15、在kubernetes中部署系统时,使用自定义调度器scheduler执行部署过程。
16、优选的,所述部署系统的基本信息包括:系统所属行业信息、cpu、内存限制条件、网络宽带和磁盘io信息。
17、根据本发明提供的基于机器学习的kubernetes集群动态资源调度系统,包括:
18、模块m1:通过客户端或者命令行工具操作kubernetes,在kubernetes中汇总部署系统的基本信息;
19、模块m2:将部署系统的基本信息输入到预测模型中,结合行业类相似系统的历史调度数据,对不同的调度策略进行评价;
20、模块m3:结合机器学习进行预测,得到部署系统的最优调度策略;
21、模块m4:将预测的最优调度策略发送至kubernetes,并执行该调度策略,完成系统的部署过程和调度过程。
22、优选的,所述模块m1包括:
23、模块m1.1:通过页面或者命令行工具操作kubernetes,创建部署系统的资源对象,创建过程中,提供部署系统的基本信息;
24、模块m1.2:在kubernetes内部封装部署系统的基本信息,并传输到预测模型,将没有配置的信息使用默认值代替。
25、优选的,所述模块m2包括:
26、模块m2.1:根据系统行业信息、系统资源限制条件数据、部署系统的全局历史数据、系统资源使用历史数据、调度策略评价数据,建立预测模型,并根据系统行业信息和限制条件信息得到最优的kubernetes资源调度策略;
27、模块m2.2:根据历史数据训练预测模型;
28、模块m2.3:使用训练后的预测模型,根据输入的系统基本信息得到预测的资源调度策略,在kubernetes资源创建、扩容和缩容过程中,同样使用预测模型实时预测最优的资源调度策略。
29、优选的,所述模块m3包括:在kubernetes中添加基于预测模型的自定义调度器scheduler,并将调度器文件夹上传到kubernetes对应的调度器算法目录下;
30、在kubernetes中部署系统时,使用自定义调度器scheduler执行部署过程。
31、优选的,所述部署系统的基本信息包括:系统所属行业信息、cpu、内存限制条件、网络宽带和磁盘io信息。
32、与现有技术相比,本发明具有如下的有益效果:
33、本发明在kubernetes的调度框架基础上,通过采用机器学习模型预测的方式,结合系统的基本信息、系统调度策略历史数据等,可以动态预测kubernetes中部署系统的最优调度策略,实现实时自动调整系统运行环境的目的,从而规避系统潜在资源使用风险,减少工作人员的干预,实现自动化运维。
1.一种基于机器学习的kubernetes集群动态资源调度方法,其特征在于,包括:
2.根据权利要求1所述的基于机器学习的kubernetes集群动态资源调度方法,其特征在于,所述步骤1包括:
3.根据权利要求1所述的基于机器学习的kubernetes集群动态资源调度方法,其特征在于,所述步骤2包括:
4.根据权利要求1所述的基于机器学习的kubernetes集群动态资源调度方法,其特征在于,所述步骤3包括:在kubernetes中添加基于预测模型的自定义调度器scheduler,并将调度器文件夹上传到kubernetes对应的调度器算法目录下;
5.根据权利要求1所述的基于机器学习的kubernetes集群动态资源调度方法,其特征在于,所述部署系统的基本信息包括:系统所属行业信息、cpu、内存限制条件、网络宽带和磁盘io信息。
6.一种基于机器学习的kubernetes集群动态资源调度系统,其特征在于,包括:
7.根据权利要求6所述的基于机器学习的kubernetes集群动态资源调度系统,其特征在于,所述模块m1包括:
8.根据权利要求6所述的基于机器学习的kubernetes集群动态资源调度系统,其特征在于,所述模块m2包括:
9.根据权利要求6所述的基于机器学习的kubernetes集群动态资源调度系统,其特征在于,所述模块m3包括:在kubernetes中添加基于预测模型的自定义调度器scheduler,并将调度器文件夹上传到kubernetes对应的调度器算法目录下;
10.根据权利要求6所述的基于机器学习的kubernetes集群动态资源调度系统,其特征在于,所述部署系统的基本信息包括:系统所属行业信息、cpu、内存限制条件、网络宽带和磁盘io信息。