CN111143059B - 改进的Kubernetes资源调度方法 - Google Patents
改进的Kubernetes资源调度方法 Download PDFInfo
- Publication number
- CN111143059B CN111143059B CN201911305242.0A CN201911305242A CN111143059B CN 111143059 B CN111143059 B CN 111143059B CN 201911305242 A CN201911305242 A CN 201911305242A CN 111143059 B CN111143059 B CN 111143059B
- Authority
- CN
- China
- Prior art keywords
- node
- score
- memory
- millicpu
- pod
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及Kubernetes(K8s)运维技术,为提高网络服务质量,同时保证资源的高效利用。本发明采取的技术方案是,改进的Kubernetes资源调度方法,步骤如下:1)使用服务质量优化调度BalancedQoSPriority改进平台对服务质量QoS类别的分布预估不足的问题;2)将预选算法Predicate预筛选和优选Priority优先筛选加以权重,达到两种优化目标的综合实现。本发明主要应用于网络资源合理分配场合。
Description
技术领域
本发明涉及Kubernetes(K8s)运维技术,具体讲,涉及一种改进的Kubernetes资源调度方法。
背景技术
云计算(Cloud Computing)整合了计算资源、存储资源、网络资源、数据资源和软件资源,通过互联网传输计算服务,提供了一种按需供给的运营模式。用户可以租用不同类型的资源来满足自己的计算需要,如虚拟机(VM)、容器(Container)、专用硬件或裸机资源等。容器技术是一种轻量级的虚拟化技术,它将代码及其所有依赖关系打包,在无需启动任何虚拟机的情况下,能够快速可靠地迁移不同计算环境下的应用程序。
Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,K8s是由Google公司开发的开源容器编排平台,能够将容器编排成一个集群,对外提供易于管理、按需使用的容器化应用服务。K8s采用一主多从的集群架构,使用一个主节点(Master)管理多个子节点(Node),主节点是集群管理的中枢神经、是提供集群控制的访问入口。Kubernetes Scheduler是运行在主节点上的调度器,以Pod(一个或多个容器的组合)作为基本单元分配到合适的子节点上,依据启动阶段的先后可将默认的调度算法分为两类:预选算法(Predicate)和优选算法(Priority),预选算法率先执行,将磁盘空间的大小、是否具备足够计算资源、是否具备容忍该Pod的标签等作为硬性标准,形成备选子节点的潜在名单。优选算法打分评价将Pod调度到分数最高的子节点上,目前默认提供的优选算法主要有:LeastRequestedPriority(最少请求算法)、BalancedResourceAllocation(资源均衡分配算法)、ImageLocality(节点镜像评分)等。LeastRequestedPriority将该Pod请求的CPU和内存(MEM)作为输入参数,遍历可调度子节点从可支配的计算资源中分别减去上述参数计算百分比并相加求均值作为总分。BalancedResourceAllocation强调资源使用率的均衡程度,使用的CPU百分比和内存百分比越接近,分数越高。ImageLocality依据子节点是否存在Pod所需镜像及镜像大小进行打分排序。除了平台默认提供的调度算法之外,大量研究人员、企业等提出了诸如抢占式的资源调度算法、基于神经网络的资源调度算法、基于ARIMA(Autoregressive IntegratedMoving Average Model,自回归移动平均模型)模型以及面向服务质量的BalancedQoSPriority(服务质量优化调度算法)资源调度算法等。
发明内容
为了克服现有技术中,Kubernetes默认提供的LeastRequestedPriority算法虽然能够将Pod分配到计算资源最丰富的Node节点上,均匀的分摊工作单元,但不考虑不均衡的QoS(Quality of Service,服务质量)级别带来的服务质量可能带来的服务质量下降的问题,且已有的BalancedQoSPriority仅考虑尽可能的平衡QoS级别,但无法保证资源的高效利用的问题。为此,本发明采取的技术方案是,改进的Kubernetes资源调度方法,步骤如下:
1)使用服务质量优化调度BalancedQoSPriority改进平台对服务质量QoS类别的分布预估不足的问题;
2)将预选算法Predicate预筛选和优选Priority优先筛选加以权重,达到两种优化目标的综合实现。
具体步骤如下:
步骤1:读取Predicate的预筛选列表,将子节点Node与待调度的一个或多个容器的组合Pod作为改进的调度方法的输入;
Kubernetes的资源调度算法分为Predicate预筛选和Priority优先筛选两个流程,读取经Predicate的预筛选列表获取潜在可调度的Node节点,将预调度的Pod的作为改进的资源调度方法的输入,读取Pod的QoS类别qosClass字段、请求的处理器数量requested.MilliCPU字段、请求的内存数量requested.Memory字段,读取可调度Node的可分配的处理器数量allocable.MilliCPU(字段、可分配的内存数量allocable.Memory(字段;
步骤2:LeastRequestedPriority打分排序,获得Nodei对应的分数Li
将据步骤1所提取的requested.MilliCPU字段、requested.Memory字段、allocable.MilliCPU字段、allocable.Memory字段,如果allocable.MilliCPU大于requested.MilliCPU且allocable.Memory大于requested.Memory,使用LeastRequestedPriority打分排序,获得Nodei对应的分数Li,L=((allocable.MilliCPU-requested.MilliCPU)/allocable.MilliCPU+(allocable.Memory
-requested.Memory)/allocable.Memory))/2,否则结束调度流程,返回错误信息;
步骤3:BalancedQoSPriority打分排序,获得Nodei对应的分数Bi
步骤4:使Scorei=ω1Li+ω2Bi,按分数降序排列
为了得到最终的Node分数排名列表,将步骤2与步骤3所得的Nodei对应分数Li、Bi进行加权求和得到Nodei对应的总分数Scorei,ω1、ω2可由用户根据不同场景决定,但权重相加应为1,本发明设置ω1=ω2=0.5;
步骤5:得分最高的Node作为最佳的目的节点,由Master执行绑定操作Binding
对步骤4所得到的Scorei降序排列,将得分最高的Node作为最佳目的节点,进行Binding。
步骤3中,根据步骤1所提取的qosClass字段使用BalancedQoSPriority打分排序,获得Nodei对应的分数Bi,具体分数计算步骤如下:
步骤1.1:提取待调度Pod的QoS等级,设为P;
步骤1.2:遍历各Node节点,统计各Node节点上P等级的Pod数量与该Node中Pod数量,分别记为PL与Pall,并计算占比
步骤1.3:遍历各Node节点,统计集群中P等级Pod数量与集群中Pod数量的总数,分别记为CL与Call,并计算占比
步骤1.4:最后计算每个Node节点的分数,B=10×|1-(PL+1)/(Pall+1)+(CL+1)/(Call+1)|,||为取整数符号。
本发明的特点及有益效果是:
本发明提供了一种改进的Kubernetes资源调度方法,通过综合使用LeastRequestedPriority与BalancedQoSPriority算法对默认的LeastRequestedPriority加以改进。既能满足Kubernetes资源的高效利用,减少单点故障增强高可用性,又能均衡分布不同QoS级别的Pod,提高平台的服务质量。
附图说明:
图1为CPU/Memory离散度分布。
图2为QoS均衡度分布。
图3为综合离散度分布。
图4为本发明的步骤流程图。
具体实施方式
为了克服现有技术中,Kubernetes默认提供的LeastRequestedPriority算法虽然能够将Pod分配到计算资源最丰富的Node节点上,均匀的分摊工作单元,但不考虑不均衡的QoS级别带来的服务质量可能带来的服务质量下降的问题,且BalancedQoSPriority仅考虑尽可能的平衡QoS级别,但无法保证资源的高效利用的问题。
本发明技术方案如下:
1)使用BalancedQoSPriority改进平台对QoS类别的分布预估不足的问题。
2)将两种算法加以权重,达到两种优化目标的综合实现,既能满足计算资源高效利用又能提高平台的服务质量。
步骤1:读取Predicate的预筛选列表,将Node与待调度的Pod作为改进的调度方法的输入
Kubernetes的资源调度算法分为Predicate预筛选和Priority优先筛选两个流程。读取经Predicate的预筛选列表获取潜在可调度的Node节点。将预调度的Pod的作为改进的资源调度方法的输入,在Master主机上编写shell脚本作为自定义的调度程序,通过调用K8s的api获取资源信息,使用可提取指定JSON字段的jq工具读取预调度Pod的qosClass字段、requested.MilliCPU字段、requested.Memory字段,读取可调度Node的allocable.MilliCPU字段、allocable.Memory字段;
步骤2:LeastRequestedPriority打分排序,获得Nodei对应的分数Li
将据步骤1所提取的requested.MilliCPU字段、requested.Memory字段、allocable.MilliCPU字段、allocable.Memory字段,如果allocable.MilliCPU大于requested.MilliCPU且allocable.Memory大于requested.Memory,使用LeastRequestedPriority打分排序,获得Nodei对应的分数Li,L=((allocable.MilliCPU-requested.MilliCPU)/allocable.MilliCPU+(allocable.Memory-requested.Memory)/allocable.Memory))/2,否则结束调度流程,返回错误信息。若MilliCPU标注数字为核心个数则乘以1000,否则不变;
步骤3:BalancedQoSPriority打分排序,获得Nodei对应的分数Bi
根据步骤1所提取的qosClass字段使用BalancedQoSPriority打分排序,获得Nodei对应的分数Bi,具体分数计算步骤如下:
步骤1.1:提取待调度Pod的QoS等级,设为P;
步骤1.2:遍历各Node节点,统计各Node节点上P等级的Pod数量与该Node中Pod数量,分别记为PL与Pall,并计算占比
步骤1.3:遍历各Node节点,统计集群中P等级Pod数量与集群中Pod数量的总数,分别记为CL与Call,并计算占比
步骤1.4:最后计算每个Node节点的分数,B=10×|1-(PL+1)/(Pall+1)+(CL+1)/(Call+1)|。||为取整数符号。
步骤4:使Scorei=ω1Li+ω2Bi,按分数降序排列
为了得到最终的Node分数排名列表,将步骤2与步骤3所得的Nodei对应分数Li、Bi进行加权求和得到Nodei对应的总分数Scorei,ω1、ω2可由用户根据不同场景决定,但权重相加应为1,当ω1=1,ω2=0本算法转换为纯LeastRequestedPriority算法,当ω1=0,ω2=1本算法转换为纯BalancedQoSPriority算法,本发明建议设置ω1=ω2=0.5;
步骤5:得分最高的Node作为最佳的目的节点,进行Binding(由Master执行的绑定操作)
对步骤4所得到的Scorei降序排列,将得分最高的Node作为最佳目的节点,进行Binding。
本发明的有效性进行仿真验证如下:
实验采用1台Master(4核4GB)、3台Node(2核2GB),部署40个Pod,其中包括10个BestEffort(最低级别)、10个Guaranteed(最高级别)和20个Burstable(中等级别),各Pod申请的CPU与Memory不等。
CPU离散度的计算如式(1)、(2)、(3):
Memory离散度的计算如式(4)、(5)、(6):
QoS均衡度的计算采用各个Node上相同QoS级别Pod的标准差。
定义综合离散度为归一化的CPU离散度与Memory离散度之和的均值与归一化的QoS均衡度的均值的均值。
仿真实验测试4种调度方法分别为:默认调度算法(图中以Default表示)、一种改进的Kubernetes资源调度方法(图中以QL表示)、LeastRequestedPriority(图中以Least表示)、BalancedQoSPriority(图中以QoS表示)。得到的CPU/Memory离散度如图1所示,得到的QoS均衡度如图2所示,得到的综合离散度如图3所示,由实验结果可知,一种改进的Kubernetes资源调度方法综合离散度更小,既能够使计算资源高效利用又能使QoS级别均衡分布。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种改进的Kubernetes资源调度方法,其特征是,步骤如下:
1)使用服务质量优化调度BalancedQoSPriority改进平台对服务质量QoS类别的分布预估不足的问题;
2)将预选算法Predicate预筛选和优选Priority优先筛选加以权重,达到两种优化目标的综合实现;具体步骤如下:
步骤1:读取Predicate的预筛选列表,将子节点Node与待调度的一个或多个容器的组合Pod作为改进的调度方法的输入;
Kubernetes的资源调度算法分为Predicate预筛选和Priority优先筛选两个流程,读取经Predicate的预筛选列表获取潜在可调度的Node节点,将预调度的Pod的作为改进的资源调度方法的输入,读取Pod的QoS类别qosClass字段、请求的处理器数量requested.MilliCPU字段、请求的内存数量requested.Memory字段,读取可调度Node的可分配的处理器数量allocable.MilliCPU(字段、可分配的内存数量allocable.Memory字段;
步骤2:LeastRequestedPriority打分排序,获得Nodei对应的分数Li
将据步骤1所提取的requested.MilliCPU字段、requested.Memory字段、allocable.MilliCPU字段、allocable.Memory字段,如果allocable.MilliCPU大于requested.MilliCPU且allocable.Memory大于requested.Memory,使用LeastRequestedPriority打分排序,获得Nodei对应的分数Li,
L=((allocable.MilliCPU-requested.MilliCPU)/allocable.MilliCPU+(allocable.Memory-requested.Memory)/allocable.Memory))/2,否则结束调度流程,返回错误信息;
步骤3:BalancedQoSPriority打分排序,获得Nodei对应的分数Bi
步骤4:使Scorei=ω1Li+ω2Bi,按分数降序排列
为了得到最终的Node分数排名列表,将步骤2与步骤3所得的Nodei对应分数Li、Bi进行加权求和得到Nodei对应的总分数Scorei,ω1、ω2可由用户根据不同场景决定,但权重相加应为1,设置ω1=ω2=0.5;
步骤5:得分最高的Node作为最佳的目的节点,由Master执行绑定操作Binding
对步骤4所得到的Scorei降序排列,将得分最高的Node作为最佳目的节点,进行Binding。
2.如权利要求1所述的改进的Kubernetes资源调度方法,其特征是,步骤3中,根据步骤1所提取的qosClass字段使用BalancedQoSPriority打分排序,获得Nodei对应的分数Bi,具体分数计算步骤如下:
步骤1.1:提取待调度Pod的QoS等级,设为P;
步骤1.2:遍历各Node节点,统计各Node节点上P等级的Pod数量与该Node中Pod数量,分别记为PL与Pall,并计算占比
步骤1.3:遍历各Node节点,统计集群中P等级Pod数量与集群中Pod数量的总数,分别记为CL与Call,并计算占比
步骤1.4:最后计算每个Node节点的分数,B=10×|1-(PL+1)/(Pall+1)+(CL+1)/(Call+1)|,||为取整数符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911305242.0A CN111143059B (zh) | 2019-12-17 | 2019-12-17 | 改进的Kubernetes资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911305242.0A CN111143059B (zh) | 2019-12-17 | 2019-12-17 | 改进的Kubernetes资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143059A CN111143059A (zh) | 2020-05-12 |
CN111143059B true CN111143059B (zh) | 2023-10-20 |
Family
ID=70518670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911305242.0A Active CN111143059B (zh) | 2019-12-17 | 2019-12-17 | 改进的Kubernetes资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143059B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527486A (zh) * | 2020-12-17 | 2021-03-19 | 航天信息股份有限公司 | 调度优化方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844051A (zh) * | 2017-01-19 | 2017-06-13 | 河海大学 | 一种边缘计算环境中功耗优化的负载任务迁移算法 |
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及*** |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
CN110389820A (zh) * | 2019-06-28 | 2019-10-29 | 浙江大学 | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 |
-
2019
- 2019-12-17 CN CN201911305242.0A patent/CN111143059B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844051A (zh) * | 2017-01-19 | 2017-06-13 | 河海大学 | 一种边缘计算环境中功耗优化的负载任务迁移算法 |
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及*** |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
CN110389820A (zh) * | 2019-06-28 | 2019-10-29 | 浙江大学 | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 |
Non-Patent Citations (1)
Title |
---|
徐正伦 等.基于Kubernetes调度器的服务质量优化调度算法研究.软件导刊.2018,第17卷(第10期),第73-76页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111143059A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10701139B2 (en) | Life cycle management method and apparatus | |
Mustafa et al. | Resource management in cloud computing: Taxonomy, prospects, and challenges | |
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
Sandhu et al. | Scheduling of big data applications on distributed cloud based on QoS parameters | |
CN108076156B (zh) | 一种基于中国云产品的混合云*** | |
WO2017080391A1 (zh) | 一种网络服务部署方法和装置 | |
Patel et al. | Survey on resource allocation strategies in cloud computing | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
CN108667859A (zh) | 一种实现资源调度的方法及装置 | |
Liu et al. | Towards a multi-QoS human-centric cloud computing load balance resource allocation method | |
CN102622264A (zh) | 一种云计算中多虚拟化计算平台方法 | |
US11301284B2 (en) | Method for managing VNF instantiation and device | |
Ma et al. | vLocality: Revisiting data locality for MapReduce in virtualized clouds | |
CN103677983B (zh) | 应用的调度方法及装置 | |
US20210004267A1 (en) | Cooperative scheduling method and system for computing resource and network resource of container cloud platform | |
CN116089009A (zh) | 一种gpu资源管理方法、***、设备和存储介质 | |
Chien et al. | An efficient virtual machine migration algorithm based on minimization of migration in cloud computing | |
CN112925611A (zh) | 一种基于共享式gpu的分布式容器调度方法及其*** | |
CN111143059B (zh) | 改进的Kubernetes资源调度方法 | |
CN111405072B (zh) | 一种基于云厂家成本调度的混合云优化方法 | |
Venkata Subba Reddy et al. | A dynamic hierarchical load balancing service architecture for cloud data centre virtual machine migration | |
CN110300192B (zh) | 一种根据ip分配表更新分布式训练任务连接参数的方法 | |
Awasare et al. | Survey and comparative study on resource allocation strategies in cloud computing environment | |
Laha et al. | Issues, Challenges and Techniques for Resource Provisioning in Computing Environment | |
Dimolitsas et al. | AHP4HPA: An AHP-based Autoscaling Framework for Kubernetes Clusters at the Network Edge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |