k8s调度算法整理

大数据应用云平台在重大疫情防控中的应用_彭锋

Mesos 中实现的带权重的 DRF(Dominant Resource Fairness) 算法[7]实现资源分配。该算法是带权重的最大最小化公平 分配算法(Max-Min Fair Share Algorithm)[8],是在多种资源 情况下的一种实现,尽量满足容器应用资源请求中的最小 需求,然后将集群中剩余的资源公平地分配给剩下的容器 彭 锋,宋文欣,孙浩峰,等:大数据应用云平台在重大疫情防控中的应用 · 5 · 软 件 导 刊 2021 年 应用。带权重的 DRF 算法在实践中被证实比其他公平性 算法有更好的总体性能[7]。最近研究表明,该算法还可被 改进以进一步提高资源使用率[9

基于作战任务优先级的容器云弹性伸缩系统_尚小东

本文提出一种基于作战任务优 先级的资源调度算法和自适应弹性伸缩策略,基于 现有容器云环境设计并实现作战任务优先级管理的 弹性伸缩系统,实现资源受限条件下资源根据任务 优先级的动态调整。最后,构建测试环境,并对系统 能力进行测试,从而验证本文调度算法和弹性伸缩 策略的有效性

为实现基于任务优先级的调度管理,本文提出 一种基于作战任务优先级的调度算法,通过对任务‐ 资源进行建模描述,将所属作战任务、不同优先级的 资源尽量平均分配到所有节点,在此基础上将待分 配的资源分配到负载占比最小的工作节点上,减少 单个节点故障对任务完成造成的影响。

基于负载预测的容器弹性伸缩技术研究_罗良杰 (1)

(1)对Kubernetes现有的弹性伸缩策略进行了深入分析,总结现有策略存在的不足。针对当前Kubernetes现有的响应式弹性伸缩策略中存在扩容不及时以及频繁伸缩的问题,本文提出了一种新型的云资源组合预测模型VMD-TCN,对Kubernetes云平台上运行的应用负载进行预测。该模型结合了VMD优秀的信号分解能力和TCN强大的预测能力,先使用VMD将云资源负载序列分解成若干个具有不同中心频率且复杂度更低的本征模态分量,降低原负载序列的复杂度。再利用TCN网络对分解后的相对平稳的分量进行建模预测,提升了模型的预测精度。
(2)为了让Kubernetes能利用VMD-TCN模型的预测结果来指导弹性伸缩过程,本文设计了基于负载预测的资源弹性伸缩策略LPB-HPA。LPB-HPA综合分析当前资源负载值和预测负载值与预设资源阈值之间的关系,在做伸缩决策时能够优先保障应用的服务质量,降低应用的平均响应时间。
(3)设计实验分别对本文提出的VMD-TCN预测模型和LPB-HPA策略分别进行了验证。实验结果表明,VMD-TCN模型拥有比其它对比模型更高的预测精度;与Kubernetes默认的弹性伸缩策略HPA相比,本文提出的LPB-HPA策略能够降低服务的响应时间,减少频繁伸缩的次数,提高了应用在不同负载情况下的服务稳定性。

基于Kubernetes的资源调度与监控系统的设计与实现_宋霖

抢占式调度算法

基于云计算的Web应用部署与扩容系统_李渊

利用线性回归、多项式回归算法自动调度容器扩容或缩减

基于Kubernetes的云平台HPA算法的优化与实现_倪海峰

HPA 策略基于静态阈值算法,对服务质量要求较高的应用在扩容期间存在响应滞后现象,提出了基于请求负载预测的动态负载调度算法策略。通过使用差分自回归移动平均预测模型对负载变化进行预测,根据容器级开源监控工具Prometheus 从网络代理负载控制器节点获取到负载请求值进行计算,将预测结果反馈给调度器对当前负载进行计算,判断是否需要扩容,从而减少了应用响应时长,优化用户体验,提升应用对外服务质量。

基于Docker容器调度优化方法的研究_吴双艳

针对云资源的动态变化和节点资源碎片导致的资源利用不高的问题,本文提出在对资源节点负载评估的基础上,运用基于皮尔森相关系数的聚类算法的初始化部署方案。实验证明,本文的提出的初始化部署方案可以减少资源碎片的产生,提高资源利用率。
针对容器动态调度时存在的响应延迟的问题,运用多指标负载预测
算法为容器的动态调度提供依据。因节点资源碎片的问题,提出基于节点多
维资源平衡的动态调度算法。实验证明,本文的动态调度算法可以提高节点
资源的均衡度。
(3) 针对集群负载的不均衡问题和能源浪费现象严重的问题,提出
Docker 容器迁移的调度策略。实验证明,本文的迁移调度算法可以提高集
群负载均衡度、减少能耗。

面向应用的容器集群弹性伸缩方法的设计与实现_单朋荣

传统的伸缩服务往往是基于“资源”指标的,但是在实际场景中
同样也需根据应用的“业务”指标来触发伸缩,比如 HTTP 请求数、IOPS 和数据
库连接数等;
对现有伸缩策略支持 CPU、内存等资源指标的弹性伸缩,但在“业务”指
标等指标上支撑不足的问题,结合 kubernetes 中“自定义”指标设计流程,并集
成“监控模块”,实现了自定义指标的采集、融合等功能,并结合水平伸缩模块
完成了“自定义指标”伸缩方法的优化方案。同时,也设计了指标融合策略和奖
励队列等部分,使得弹性伸缩系统可以稳定的运行在大规模云平台上。

组合预测式容器弹性伸缩方案的研究与实现_赵尘

从前面分析可知,ARIMA模型在进行时间序列预测时考虑了数据的随机波动性,从现有研究成果来看,在短期预测中表现出了良好的效果,被认为是一种精确度较高。的线性时间序列预测模型,唯一不足之处在于建模过程比较繁琐。而SVM模型适合小
样本的快速预测,预测结果为全局最优,是一种性能优异的非线性分析模型。考虑到论文实验数据的不稳定、随机等特性,结合这两种算法的优点,本章将在ARIMA与SVM模型的基础上构建组合预测模型。用ARIMA模型捕捉性能数据的线性规律,用SVM模型捕捉性能数据中的非线性规律,从而创新地用组合预测算法模型对CPU利用率这一典型的非平稳时间序列进行预测。

基于Kubernetes容器云的资源调度算法研究_李想.caj

本文将 PaaS 平台中最流行的云平台 Kubernetes 作为主要的研究对象,并且针对Kubernetes 的默认调度器和自动扩缩容机制进行了深入的分析与研究,发现其有如下
的一些不足之处:
(1)Kubernetes 中默认调度器在进行 Pod 调度时,采用的优选调度策略主要是LeastRequestedPriority 和 BalancedResourceAllocation,但是在针对不同资源消耗类型
的 Pod 时,会导致每一个 Node 节点上面的资源利用不平衡。
(2)Kubernetes 中默认的自动扩缩容调度机制采用的是基于响应式的扩缩容调度机制,其伸缩策略在扩缩容时存在一定的响应延迟,从而导致用户的响应时间增加,
体验变差。
针对以上两个方面的不足之处,本文主要对 Kubernetes 云平台默认的调度策略以及自动伸缩机制做了一些优化工作。
(1)在针对不同资源消耗类型的应用时,提出了一种基于皮尔森系数法的优选
调度策略,可以有效的提高节点的资源均衡度。
(2)针对现有的扩缩容机制存在的响应延迟问题,提出了基于负载预测的扩缩
容算法,使用灰色预测法和平均自回归组合预测模型对云平台中的负载进行预测,在
负载高峰到来之前提前进行扩缩容,进而可以减少用户的响应时间,提高用户的体验
质量。

基于Kubernetes应用的弹性伸缩策略_陈雁

本文提出步长容忍度算法水平伸缩的控制器, 它能在当应用服务器中业务负载上升的时候, 迅速创建多个新的 Pod 来保证业务系统稳定运行, 当 Pod 中业务负载下降的时候, 在保证系统稳定运行的前提下逐步销毁 Pod 来提高资源利用率. 对于应用, 需要保障能够稳定平滑运行, 而不只是尽可能的节约成本. 步长容忍度算法在扩展的时候, 保证应用服务器能够承担不断增长的连接数, 做到快速扩展, 甚至过度扩展. 在收缩的时候采取较为宽松的收缩策略, 达到逐渐收缩的目的.

设计步长容忍度算法的时候, 考虑到自动扩展的决策需要一段时间才会生效, 若当前 Pod 的 CPU 负荷过大, 在创建一个新 Pod 的过程中, 应用系统的 CPU使用量可能会同样有一个攀升的过程. 所以在循环探测中, 在每一次作出决策后的一段时间内, 将不再进行扩展/收缩决策.对于扩容而言, 这个时间段为 3 分钟,缩容为 5 分钟. 因为需要尽可能满足 Pod 业务的正常使用, 所以扩容的优先级要大于缩容. 步长容忍度算法会通过调整副本数量使得检测指标使用率尽可能向期望值靠近, 而且不是完全相等. 步长容忍度算法在 HPAController 中引入一个tolerance (容忍度) 的概念, 它允许在一定范围内使用量的不稳定, 设置容忍度为 15%,这也是出于维护系统稳定性的考虑. 例如, 设定 HPA调度策略为 CPU 使用率高于 60% 触发扩容, 那么只有当使用率大于 75% 或者小于 45% 才会触发伸缩活动, HPA会尽力把 Pod 的使用率控制在这个范围之间. 自动伸缩的监测指标包括 CPU 平均使用量、内存平均使用量、用户自定义一些监控指标.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes(K8s)是一种用于容器编排和管理的开源平台,它提供了多维资源调度算法来实现高效的资源管理和利用。 K8s使用多维资源调度算法来平衡集群所有节点的资源负载,确保每个节点能够充分利用其可用的计算和存储资源。这些资源包括CPU、内存、存储和网络带宽等。K8s通过采集集群每个节点的资源使用情况,并将其报告给调度策略,从而实现资源的智能分配。 在K8s,多维资源调度算法主要涉及以下几个方面: 1. 资源分配:K8s通过分配节点上的资源来满足容器的需求。调度器会考虑所有容器的资源需求,并将其分配到合适的节点上。该算法会根据容器的资源请求和节点的可用资源进行匹配,从而避免资源的浪费和不平衡。 2. 负载均衡:K8s通过负载均衡算法将容器分散到不同的节点上,以避免资源瓶颈和单点故障。该算法会根据节点的负载情况和容器的资源需求,将容器分配到最佳节点上,从而实现负载的均衡。 3. 弹性调度:K8s具有弹性调度的能力,可以根据节点的可用资源和容器的优先级,自动对容器进行调度。当集群容量不足或节点发生故障时,该算法可以自动将容器从一个节点迁移到另一个节点上,以确保容器的正常运行。 总之,K8s的多维资源调度算法是为了实现高效、均衡和可靠的资源管理。通过合理分配和调度容器的资源需求,K8s可以最大化地利用集群的资源,并提供高可用性和可伸缩性的应用环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员石磊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值