CN112799837A - 一种容器动态平衡调度方法 - Google Patents

一种容器动态平衡调度方法 Download PDF

Info

Publication number
CN112799837A
CN112799837A CN202110109167.1A CN202110109167A CN112799837A CN 112799837 A CN112799837 A CN 112799837A CN 202110109167 A CN202110109167 A CN 202110109167A CN 112799837 A CN112799837 A CN 112799837A
Authority
CN
China
Prior art keywords
container
node
resources
container group
scheduler
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.)
Pending
Application number
CN202110109167.1A
Other languages
English (en)
Inventor
石光银
蔡卫卫
高传集
孙思清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110109167.1A priority Critical patent/CN112799837A/zh
Publication of CN112799837A publication Critical patent/CN112799837A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

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)

Abstract

本发明涉及容器技术领域,具体提供了一种容器动态平衡调度方法,调度器监听新创建的容器组资源,并通过自定义调度断言和策略使容器调度到合适的节点上;均衡调度器监听节点资源利用率,当节点资源不均衡时,驱逐资源占用多的节点容器组;批量控制器监听作业资源,并创建容器组群资源;批量调度器监听到容器组群资源后,以容器组群为单位进行资源调度;容器管理器根据容器组绑定节点信息进行容器组的生命周期管理,并根据驱逐配置,在节点资源不足时,驱逐优先级低或浪费资源多的容器组。与现有技术相比,本发明提升了容器云资源调度的性能,降低了驱逐关键容器的概率,保证了容器云的高可用性。

Description

一种容器动态平衡调度方法
技术领域
本发明涉及容器技术领域,具体提供一种容器动态平衡调度方法。
背景技术
容器技术是比较流行的提供微服务的PaaS技术,而Kubernetes是容器编排调度的事实标准,基于Kubernetes提供容器云平台是各大云厂商的首选。Kubernetes提供默认的调度和驱逐算法,当容器组在调度时,依据这些调度算法把容器组调度到对应的节点上。
容器调度的断言和策略都可以定制,比如通过定义每次调度查询的节点个数来提升调度速度,通过修改断言和策略的加载顺序和权重,定制容器组调度动作,从而满足特定场景下的调度机制。
当节点资源不足时,会触发Kubernetes的容器组驱逐动作,通过合理定义容器组的资源请求和容器优先级,使用Kubernetes的驱逐策略,达到优先级驱逐或不驱逐个别容器的目的。
针对提供集群服务的应用,需要使用批量作业管理,可以把应用集群作为一个容器组群单位进行编排和调度,保证应用集群在资源不足时,不占用集群资源,并通过自定义策略,保证应用集群的行为,提升应用集群的高可用性。
当节点异常重启或新节点扩容后,Kubernetes不会自动均衡负载高的节点容器组到负载低的节点上,会造成集群节点间负载不均衡,迫切需要一种动态平衡各个节点的调度算法。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的容器动态平衡调度方法。
本发明解决其技术问题所采用的技术方案是:
一种容器动态平衡调度方法,包括调度器、均衡调度器、批量控制器、批量调度器和容器管理器;
所述调度器监听新创建的容器组资源,并通过自定义调度断言和策略使容器调度到合适的节点上;
所述均衡调度器监听节点资源利用率,当节点资源不均衡时,驱逐资源占用多的节点容器组;
所述批量控制器监听作业资源,并创建容器组群资源;
所述批量调度器监听到容器组群资源后,以容器组群为单位进行资源调度;
所述容器管理器根据容器组绑定节点信息进行容器组的生命周期管理,并根据驱逐配置,在节点资源不足时,驱逐优先级低或浪费资源多的容器组。
进一步的,所述调度器包括自定义配置、队列排序、过滤、打分和绑定,
所述自定义配置用于完成关闭抢占、自定义每次多少节点参与打分和自定义插件的启用和关闭;
所述队列默认使用优先级;
所述过滤包括节点不可调度、节点资源配合、节点名称、节点端口、节点亲和、磁盘限制、污点容忍、磁盘绑定、磁盘区域和容器组亲和过滤插件;
所述打分包括节点资源均衡分配、镜像位置、容器组亲和、节点资源最少分配、节点亲和、节点倾向避免容器组、默认容器组拓扑扩展和污点容忍
所述绑定使用默认绑定器。
进一步的,所述优先级排列为:系统级>平台级>公共组件级>业务级,优先级越高,则优先调度并且最后被驱逐,系统级不驱逐。
进一步的,所述容器管理器包含驱逐功能,当节点内存不足、节点磁盘和镜像磁盘不足和进程数不足时,会触发驱逐动作;
当驱逐容器时,若容器组属于系统级的优先级,则不驱逐;
当节点磁盘不足时,优先驱逐占用空间大的容器组;
当节点镜像磁盘不足时,优先级逐占用镜像空间大的容器组;
当节点内存不足时,优先驱逐优先级低的容器组,当容器组优先级一样时,根据使用内存与请求内存的差额排序,差值越大,越优先被驱逐。
进一步的,所述均衡调度器包括策略和驱逐功能,所述策略功能包括降低节点利用率、驱逐重复容器组、驱逐反容器组反亲和的容器、驱逐违反节点亲和的容器、驱逐违反节点污点的容器、驱逐重启次数过多的容器和按设定时间驱逐容器组。
进一步的,所述驱逐功能包括校验和驱逐两部分,优先级是系统级的容器组、静态容器组、守护进程组管理的容器组不驱逐,均衡调度器通过定时任务作业定时执行。
进一步的,所述批量控制器用于监听自定义资源,并执行对应的增删改动作。
作为优选,所述自定义资源包括作业、容器组群和队列。
进一步的,所述批量调度器用于对自定义资源进行调度,调度插件包括本包、一致性、主导资源公平、时间、节点排序、断言、优先级、比例和预定。
本发明的一种容器动态平衡调度方法和现有技术相比,具有以下突出的有益效果:
通过使用本发明,支持容器云在多CPU架构下的容器动态平衡调度能力,实现了自定义容器组调度配置、自定义容器优先级和驱逐行为、管理批量计算业务、动态均衡节点利用率等功能,从而提升了容器云资源调度的性能,降低了驱逐关键容器的概率,保证了容器云的高可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种容器动态平衡调度方法的流程示意图;
附图2是一种容器动态平衡调度方法的架构图;
附图3是一种容器动态平衡调度方法中调度和驱逐架构图;
附图4是一种容器动态平衡调度方法中均衡调度器架构图;
附图5是一种容器动态平衡调度方法中批量控制器和批量调度器的架构图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实施例中的一种容器动态平衡调度方法,包括调度器、均衡调度器、批量控制器、批量调度器和容器管理器。
调度器监听新创建的容器组资源,并通过自定义调度断言和策略,保证容器调度到合适的节点上。
均衡调度器监听节点资源利用率,当节点资源不均衡时,驱逐资源占用多的节点上的容器组,从而达到集群节点资源均衡的目的;
批量控制器监听作业资源,并创建容器组群资源。
批量调度器监听到容器组群资源后,以容器组群为单位进行资源调度,保证容器组群都有资源使用,并避免集群资源浪费。
容器管理器根据容器组绑定节点信息进行容器组的生命周期管理,并根据驱逐配置,在节点资源不足时,驱逐优先级低或浪费资源多的容器组。
如图2所示,配置容器管理器的驱逐策略,针对内存、节点存储、镜像存储配置驱逐策略。
自定义容器优先级:系统级>平台级>公共组件级>业务级,优先级越高,则优先调度并且最后被驱逐,系统级不驱逐。
使用均衡调度器的均衡节点利用率策略保证容器动态均衡调度,适用于节点异常恢复或新扩容节点时,集群中节点容器组不均衡的情况,通过驱逐过载节点的容器组达到节点资源动态均衡的目的。使用批量计算框架支持应用集群场景,当创建一个作业时,批量控制器会根据作业生成一个容器组群资源,当调度时,以容器组群作为一个单元进行调度编排,避免当集群资源不足以运行一个应用集群时,又创建了容器组,造成了集群资源的浪费。
如图3所示,调度器包括自定义配置、队列排序、过滤、打分、绑定几个部分:自定义配置可以完成关闭抢占、自定义每次多少节点参与打分、自定义插件的启用和关闭等功能;队列排序默认使用优先级排序;过滤包括节点不可调度、节点资源配合、节点名称、节点端口、节点亲和、磁盘限制、污点容忍、磁盘绑定、磁盘区域、容器组亲和等过滤插件;打分包括节点资源均衡分配、镜像位置、容器组亲和、节点资源最少分配、节点亲和、节点倾向避免容器组、默认容器组拓扑扩展、污点容忍等;绑定使用默认绑定器。
驱逐功能在容器管理器组件中,当节点内存不足、节点磁盘和镜像磁盘不足、进程数不足时,会触发驱逐动作;当驱逐容器时,若容器组属于系统级的优先级,则不驱逐;当节点磁盘不足时,优先驱逐占用空间大的容器组;当节点镜像磁盘不足时,优先驱逐占用镜像空间大的容器组;当节点内存不足时,优先驱逐优先级低的容器组;当容器组优先级一样时,根据使用内存与请求内存的差额排序,差值越大,越优先被驱逐。
如图4所示,均衡调度器包括策略和驱逐两部分功能:
策略包括降低节点利用率、驱逐重复容器组、驱逐违反容器组反亲和的容器、驱逐违反节点亲和的容器、驱逐违反节点污点的容器、驱逐重启次数过多的容器、按设定时间驱逐容器组。
其中,降低节点利用率比较符合节点异常恢复或新节点扩容,导致集群节点容器不均衡的场景;其他策略在Kubernetes自带的调度器中已有支持;驱逐部分包括校验和驱逐两部分,优先级是系统级的容器组、静态容器组、守护进程组管理的容器组不驱逐;均衡调度器通过定时任务作业定时执行,从而保证集群节点资源均衡。
如图5所示,批量控制器用于监听自定义资源,并执行对应的增删改动作。批量调度器用于对自定义资源进行调度,调度插件包括本包、一致性、主导资源公平(DRF)、时间、节点排序、断言、优先级、比例和预定,主要基于容器组群资源进行调度断言和打分。
自定义资源包括作业、容器组群和队列。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种容器动态平衡调度方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (9)

1.一种容器动态平衡调度方法,其特征在于,包括调度器、均衡调度器、批量控制器、批量调度器和容器管理器;
所述调度器监听新创建的容器组资源,并通过自定义调度断言和策略使容器调度到合适的节点上;
所述均衡调度器监听节点资源利用率,当节点资源不均衡时,驱逐资源占用多的节点容器组;
所述批量控制器监听作业资源,并创建容器组群资源;
所述批量调度器监听到容器组群资源后,以容器组群为单位进行资源调度;
所述容器管理器根据容器组绑定节点信息进行容器组的生命周期管理,并根据驱逐配置,在节点资源不足时,驱逐优先级低或浪费资源多的容器组。
2.根据权利要求1所述的一种容器动态平衡调度方法,其特征在于,所述调度器包括自定义配置、队列排序、过滤、打分和绑定,
所述自定义配置用于完成关闭抢占、自定义每次多少节点参与打分和自定义插件的启用和关闭;
所述队列默认使用优先级;
所述过滤包括节点不可调度、节点资源配合、节点名称、节点端口、节点亲和、磁盘限制、污点容忍、磁盘绑定、磁盘区域和容器组亲和过滤插件;
所述打分包括节点资源均衡分配、镜像位置、容器组亲和、节点资源最少分配、节点亲和、节点倾向避免容器组、默认容器组拓扑扩展和污点容忍
所述绑定使用默认绑定器。
3.根据权利要求2所述的一种容器动态平衡调度方法,其特征在于,所述优先级排列为:系统级>平台级>公共组件级>业务级,优先级越高,则优先调度并且最后被驱逐,系统级不驱逐。
4.根据权利要求3所述的一种容器动态平衡调度方法,其特征在于,所述容器管理器包含驱逐功能,当节点内存不足、节点磁盘和镜像磁盘不足和进程数不足时,会触发驱逐动作;
当驱逐容器时,若容器组属于系统级的优先级,则不驱逐;
当节点磁盘不足时,优先驱逐占用空间大的容器组;
当节点镜像磁盘不足时,优先级逐占用镜像空间大的容器组;
当节点内存不足时,优先驱逐优先级低的容器组,当容器组优先级一样时,根据使用内存与请求内存的差额排序,差值越大,越优先被驱逐。
5.根据权利要求4所述的一种容器动态平衡调度方法,其特征在于,所述均衡调度器包括策略和驱逐功能,所述策略功能包括降低节点利用率、驱逐重复容器组、驱逐反容器组反亲和的容器、驱逐违反节点亲和的容器、驱逐违反节点污点的容器、驱逐重启次数过多的容器和按设定时间驱逐容器组。
6.根据权利要求5所述的一种容器动态平衡调度方法,其特征在于,所述驱逐功能包括校验和驱逐两部分,优先级是系统级的容器组、静态容器组、守护进程组管理的容器组不驱逐,均衡调度器通过定时任务作业定时执行。
7.根据权利要求6所述的一种容器动态平衡调度方法,其特征在于,所述批量控制器用于监听自定义资源,并执行对应的增删改动作。
8.根据权利要求7所述的一种容器动态平衡调度方法,其特征在于,所述自定义资源包括作业、容器组群和队列。
9.根据权利要求8所述的一种容器动态平衡调度方法,其特征在于,所述批量调度器用于对自定义资源进行调度,调度插件包括本包、一致性、主导资源公平、时间、节点排序、断言、优先级、比例和预定。
CN202110109167.1A 2021-01-27 2021-01-27 一种容器动态平衡调度方法 Pending CN112799837A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110109167.1A CN112799837A (zh) 2021-01-27 2021-01-27 一种容器动态平衡调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110109167.1A CN112799837A (zh) 2021-01-27 2021-01-27 一种容器动态平衡调度方法

Publications (1)

Publication Number Publication Date
CN112799837A true CN112799837A (zh) 2021-05-14

Family

ID=75812049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110109167.1A Pending CN112799837A (zh) 2021-01-27 2021-01-27 一种容器动态平衡调度方法

Country Status (1)

Country Link
CN (1) CN112799837A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835840A (zh) * 2021-09-28 2021-12-24 广东浪潮智慧计算技术有限公司 一种集群资源管理方法、装置、设备及可读存储介质
CN114610480A (zh) * 2022-02-09 2022-06-10 阿里巴巴(中国)有限公司 一种弹性资源调度方法、控制设备、装置及可读存储介质
WO2023078194A1 (zh) * 2021-11-05 2023-05-11 华为技术有限公司 通信方法和装置
US11706105B2 (en) 2021-12-14 2023-07-18 International Business Machines Corporation Selecting low priority pods for guaranteed runs
CN118567819A (zh) * 2024-07-30 2024-08-30 浙江大华技术股份有限公司 容器调度系统及容器批量调度方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法
CN111522639A (zh) * 2020-04-16 2020-08-11 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法
CN111694633A (zh) * 2020-04-14 2020-09-22 新华三大数据技术有限公司 集群节点负载均衡方法、装置及计算机存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法
CN111694633A (zh) * 2020-04-14 2020-09-22 新华三大数据技术有限公司 集群节点负载均衡方法、装置及计算机存储介质
CN111522639A (zh) * 2020-04-16 2020-08-11 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李思达: "基于Kubernetes的调度方案研究与设计", 《中国优秀硕士学位论文全文数据库》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835840A (zh) * 2021-09-28 2021-12-24 广东浪潮智慧计算技术有限公司 一种集群资源管理方法、装置、设备及可读存储介质
WO2023078194A1 (zh) * 2021-11-05 2023-05-11 华为技术有限公司 通信方法和装置
US11706105B2 (en) 2021-12-14 2023-07-18 International Business Machines Corporation Selecting low priority pods for guaranteed runs
CN114610480A (zh) * 2022-02-09 2022-06-10 阿里巴巴(中国)有限公司 一种弹性资源调度方法、控制设备、装置及可读存储介质
CN118567819A (zh) * 2024-07-30 2024-08-30 浙江大华技术股份有限公司 容器调度系统及容器批量调度方法
CN118567819B (zh) * 2024-07-30 2024-10-08 浙江大华技术股份有限公司 容器调度系统及容器批量调度方法

Similar Documents

Publication Publication Date Title
CN112799837A (zh) 一种容器动态平衡调度方法
CN109960585B (zh) 一种基于kubernetes的资源调度方法
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
US8959515B2 (en) Task scheduling policy for limited memory systems
Wang et al. Pigeon: An effective distributed, hierarchical datacenter job scheduler
WO2018072687A1 (zh) 一种资源调度的方法、装置和过滤式调度器
CN108123980B (zh) 一种资源调度方法及系统
WO2023198061A1 (zh) 一种容器调度方法、电子设备和存储介质
CN111399989A (zh) 一种面向容器云的任务抢占调度方法及系统
CN112087503A (zh) 集群任务调度方法、系统、计算机和计算机可读存储介质
CN113672391B (zh) 一种基于Kubernetes的并行计算任务调度方法与系统
CN103179048A (zh) 云数据中心的主机QoS策略变换方法及系统
CN108509280B (zh) 一种基于推送模型的分布式计算集群本地性调度方法
CN107273200B (zh) 一种针对异构存储的任务调度方法
WO2015100995A1 (zh) 一种智能服务调度方法
JPH0816410A (ja) スケジュール制御装置とその方法
CN114995971A (zh) 实现kubernetes中pod批量调度方法及系统
CN118113432A (zh) K8s集群的更新调度方法、设备及存储介质
CN117608760A (zh) 应用于Kubernetes的云上应用混合部署方法
CN114764371A (zh) 任务调度方法及管理系统
Wu et al. ABP scheduler: Speeding up service spread in docker swarm
Yang et al. Elastic executor provisioning for iterative workloads on apache spark
Zhu et al. SAQA: a self-adaptive QoS-aware scheduling algorithm for real-time tasks on heterogeneous clusters
CN116360922A (zh) 集群资源调度方法、装置、计算机设备和存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210514

RJ01 Rejection of invention patent application after publication