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


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
算法 调度 UED
探索操作系统的心脏:调度算法的奥秘与影响
【10月更文挑战第9天】 本文深入探讨了操作系统中至关重要的组件——调度算法,它如同人体的心脏,维持着系统资源的有序流动和任务的高效执行。我们将揭开调度算法的神秘面纱,从基本概念到实际应用,全面剖析其在操作系统中的核心地位,以及如何通过优化调度算法来提升系统性能。
|
22天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
22天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
24天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
65 4
|
25天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
1月前
|
算法 大数据 Linux
深入理解操作系统之进程调度算法
【10月更文挑战第24天】本文旨在通过浅显易懂的语言,带领读者深入了解操作系统中的进程调度算法。我们将从进程的基本概念出发,逐步解析进程调度的目的、重要性以及常见的几种调度算法。文章将通过比喻和实例,使复杂的技术内容变得生动有趣,帮助读者建立对操作系统进程调度机制的清晰认识。最后,我们还将探讨这些调度算法在现代操作系统中的应用和发展趋势。
|
2月前
|
算法 调度 UED
深入理解操作系统的进程调度算法
【10月更文挑战第7天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。它不仅影响系统的性能和用户体验,还直接关系到资源的合理分配。本文将通过浅显易懂的语言和生动的比喻,带你一探进程调度的秘密花园,从最简单的先来先服务到复杂的多级反馈队列,我们将一起见证算法如何在微观世界里编织宏观世界的和谐乐章。
|
2月前
|
存储 算法 固态存储
IO调度算法
【10月更文挑战第5天】IO调度算法
40 3
|
2月前
|
存储 算法 固态存储
IO调度算法
【10月更文挑战第5天】IO调度算法
45 2
|
2月前
|
边缘计算 算法 调度
探究操作系统的心脏:调度算法的进化与影响
【10月更文挑战第2天】 本文深入探讨了操作系统中核心组件——调度算法的历史演变、关键技术突破及其对现代计算的影响。通过详细回顾从单任务到多任务、实时系统及分布式计算环境下调度算法的发展,文章揭示了这些算法如何塑造我们的数字世界,并对未来的趋势进行了展望。不同于传统的摘要,本文特别聚焦于技术细节与实际应用的结合点,为读者提供一幅清晰的技术演进蓝图。
52 4