Pod调度方法和系统与流程

文档序号:36738025发布日期:2024-01-16 12:53阅读:21来源:国知局
Pod调度方法和系统与流程

本发明涉及云计算,尤其涉及一种pod调度方法和系统。


背景技术:

1、kubernetes(简称k8s)为容器微服务提供了一个基础平台,消除了编排物理/虚拟计算、网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的基础上进行自助运营,因此,kubernetes在各领域的运用越来越普遍。但在实际应用的过程中,发现kubernetes集群中各个节点的资源使用率并不均衡,使得在负载很高的节点上的业务pod存在运行不稳定的风险,而负载很低的节点资源却被大量的浪费。因此,如何实现业务pod在各节点上的均衡调度,使得集群中各节点资源能高效利用,显得越来越重要。

2、从kubernetes 1.16版本开始,k8s的调度框架(scheduling framework)具备了扩展机制,用户可以根据需要对图中每个阶段进行定制开发,实现自定义的调度插件。

3、k8s社区也提供了一些常用调度插件,如基于实际负载的k8s调度插件trimaran,该调度插件由指标提供程序(metrics provider)、负载检测器(load-watcher)、数据库以及调度插件组成。trimaran集合了目标载荷包装(targetloadpacking)调度插件和负载变化风险平衡(loadvariationriskbalancing)调度插件。

4、targetloadpacking:它根据节点的实际资源利用率给节点打分,其打分算法其实是数学中的背包问题,采用的最佳匹配(best fit)近似算法(仅支持cpu资源)。

5、loadvariationriskbalancing:它根据节点资源利用率的平均值和标准差对节点排序(仅支持cpu和内存资源)。

6、trimaran调度插件的负载检测器(load-watcher)通过监控指标提供程序(metrics provider)获取集群内的资源使用指标,如cpu、内存等。

7、trimaran调度插件有其一定的局限性:

8、1.它会与k8s默认的评分插件节点资源最少分配(noderesourcesleastallocated)插件和节点资源均衡分配(noderesourcesbalancedallocation)插件产生冲突,因此使用时需要关闭默认评分插件。

9、2.节点计算打分的指标维度中没有考虑内存、网络和磁盘等重要资源的利用率。

10、3.需要预设集群理想值,而实际生产环境存在明显的业务高峰和低谷,没有办法配置一个固定的理想值。


技术实现思路

1、有鉴于此,本发明提供一种pod调度方法和系统,用于解决现有pod调度方案调度效率低、指标维度不够的技术缺陷。

2、基于本发明实施例的一方面,本发明提供了一种pod调度系统,该系统包括:

3、监控服务,用于对集群中各节点node和容器进行监控,提供所监控的各节点和容器的指标数据的查询接口;

4、节点数据采集器,用于采集集群中各节点指标数据并将采集的指标数据转换为监控服务支持的时序数据格式;

5、容器数据采集器,用于采集集群中各容器指标数据并将采集的指标数据转换为监控服务支持的时序数据格式;

6、调度插件,用于根据监控服务提供的各节点和容器的指标数据对各节点进行调度评分,调度评分用于kubernets的调度器对集群中的pod进行均衡调度,所述调度评分表征节点上未使用资源的综合评分。

7、进一步地,所述调度插件包括:

8、第一数据获取子模块,用于从监控服务获取各节点的指标数据;所述指标数据包括集群中每个节点的cpu使用率、内存使用率、磁盘i/o使用率、工作负载率,所述指标数据采用采集周期均值的方式提供;

9、得分计算子模块,用于根据获取的指标数据和指标权重计算节点的调度得分,所述节点的调度得分为1与该节点的综合指标使用率的差值,所述节点的综合指标使用率为该节点的各类指标数据均值与该类指标的指标权重占总指标权重的百分比的乘积之和。

10、进一步地,所述调度插件还包括:

11、得分调整子模块,用于从监控服务获取各节点在预设周期内新增的pod数量,当节点新增pod数量大于预设调整门限时,降低该节点的调度得分。

12、进一步地,所述监控服务通过监控在节点上产生的pod绑定事件的个数来获取各节点在预设周期内新增的pod数量。

13、进一步地,所述系统还包括:

14、均衡调度控制器,用于从监控服务获取各节点的指标数据,实时监控集群中各节点的综合指标使用率,根据节点综合指标使用率与集群平均综合指标使用率的差值进行pod均衡调度,对差值超过预设驱逐门限的节点进行pod驱逐。

15、进一步地,所述均衡调度控制器包括:

16、第二数据获取子模块,用于从监控服务获取指标数据;

17、均衡调度子模块,用于根据获取的指标数据计算集群中各节点的综合指标使用率,根据节点综合指标使用率与集群平均综合指标使用率的差值进行pod均衡调度,对差值超过预设驱逐门限的节点进行pod驱逐。

18、进一步地,所述均衡调度子模块在进行pod驱逐之前,对节点中符合筛选条件的pod进行过滤,所述筛选条件包括:

19、有节点绑定的pod不驱逐;

20、守护进程类型的pod不驱逐;

21、系统级pod不驱逐;

22、清单配置文件标记驱逐等级,按优先级进行驱逐的pod不驱逐。

23、基于本发明实施例的另一方面,本发明还提供一种pod调度方法,该方法包括:

24、采集集群中各节点和容器的指标数据;所述指标数据包括集群中每个节点的cpu使用率、内存使用率、磁盘i/o使用率、工作负载率,所述指标数据采用采集周期均值的方式提供;

25、根据所采集的各节点和容器的指标数据对节点进行调度评分,调度评分用于kubernets的调度器对集群中的pod进行均衡调度,所述调度评分表征节点上未使用资源的综合评分;

26、节点的调度得分为1与该节点的综合指标使用率的差值,所述节点的综合指标使用率为该节点的各类指标数据均值与该类指标的指标权重占总指标权重的百分比的乘积之和。

27、进一步地,所述方法还包括:从监控服务获取各节点在预设周期内新增的pod数量,当节点新增pod数量大于预设调整门限时,降低该节点的调度得分。

28、进一步地,所述方法还包括:从监控服务获取各节点的指标数据,实时监控集群中各节点的综合指标使用率,根据节点综合指标使用率与集群平均综合指标使用率的差值进行pod均衡调度,对差值超过预设驱逐门限的节点进行pod驱逐。

29、本发明还提供一种电子设备,该电子设备包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;

30、存储介质,用于存放计算机程序;

31、处理器,用于执行存储介质上所存放的计算机程序时,实施本发明提供的pod调度方法方法。

32、本发明在k8s调度器中扩展注册调度插件,调度插件基于采集的各节点的指标数据及指标权重计算出各节点的调度得分,调度器根据调度插件计算的调度得分进行pod调度,将pod调度到实际资源使用率较低的节点上。本发明技术方案避免了使用外挂负载均衡器,支持多维度的指标数据,能够提高调度pod的效率和均衡性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1