k8s调度算法整理

简介: 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 平均使用量、内存平均使用量、用户自定义一些监控指标.


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
279 1
|
3月前
|
机器学习/深度学习 算法 调度
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
165 3
|
3月前
|
机器学习/深度学习 运维 算法
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
260 0
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
|
3月前
|
机器学习/深度学习 边缘计算 监控
【创新】【微电网多目标优化调度】五种多目标优化算法(MOJS、NSGA3、MOGWO、NSWOA、MOPSO)求解微电网多目标优化调度(Matlab代码实现)
【创新】【微电网多目标优化调度】五种多目标优化算法(MOJS、NSGA3、MOGWO、NSWOA、MOPSO)求解微电网多目标优化调度(Matlab代码实现)
263 0
|
3月前
|
机器学习/深度学习 算法 安全
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)
120 0
|
3月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
226 1
|
3月前
|
运维 算法 搜索推荐
基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
基于天牛须(BAS)与NSGA-Ⅱ混合算法的交直流混合微电网多场景多目标优化调度(Matlab代码实现)
191 1
|
3月前
|
机器学习/深度学习 边缘计算 分布式计算
基于差分进化算法的微电网调度研究(Matlab代码实现)
基于差分进化算法的微电网调度研究(Matlab代码实现)
150 1
|
3月前
|
机器学习/深度学习 存储 算法
【微电网优化调度】五种多目标优化算法(MOPSO、MOAHA、NSGA2、NSGA3、MOGWO)求解微电网多目标优化调度比较研究【创新未发表】(Matlab代码实现)
【微电网优化调度】五种多目标优化算法(MOPSO、MOAHA、NSGA2、NSGA3、MOGWO)求解微电网多目标优化调度比较研究【创新未发表】(Matlab代码实现)
155 8
|
3月前
|
机器学习/深度学习 存储 算法
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
161 0

热门文章

最新文章