CN111522639B - Kubernetes集群架构系统下多维资源调度方法 - Google Patents

Kubernetes集群架构系统下多维资源调度方法 Download PDF

Info

Publication number
CN111522639B
CN111522639B CN202010300356.2A CN202010300356A CN111522639B CN 111522639 B CN111522639 B CN 111522639B CN 202010300356 A CN202010300356 A CN 202010300356A CN 111522639 B CN111522639 B CN 111522639B
Authority
CN
China
Prior art keywords
pod
resource
server
node
server node
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
Application number
CN202010300356.2A
Other languages
English (en)
Other versions
CN111522639A (zh
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.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
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 Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202010300356.2A priority Critical patent/CN111522639B/zh
Publication of CN111522639A publication Critical patent/CN111522639A/zh
Priority to PCT/CN2021/072398 priority patent/WO2021208546A1/zh
Priority to US17/395,728 priority patent/US11983562B2/en
Application granted granted Critical
Publication of CN111522639B publication Critical patent/CN111522639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种Kubernetes集群架构系统下多维资源调度方法,对于计算密集型服务根据资源空闲度给集群内各个服务器节点打分,对于普通型服务,则根据调度任务的资源需求,服务器节点的资源优先级以及服务器节点的资源均衡度给集群内各个服务器节点打分,选取分值最高的服务器节点绑定pod调度任务并执行。本发明的调度方法满足各类服务的多样化资源请求,增加系统的灵活性和可扩展性。

Description

Kubernetes集群架构系统下多维资源调度方法
技术领域
本发明涉及一种Kubernetes集群架构系统下多维资源调度方法,属于互联网通信技术领域。
背景技术
随着云计算,分布式存储等各类技术的蓬勃发展,由于成本低、效率高以及测试轻量级的特点,Kubernetes集群架构系统的研究已经成为了互联网通信技术领域的大热方向,Kubernetes容器集群管理工具主要应用于管理云计算环境下计算密集型的大规模任务应用,然而容器资源请求是动态变化的,存在着除CPU、内存之外还包括存储、网络带宽等其他资源,类型是多样的,所对应的资源类型也是多维资源类型,但是Kubernetes的静态调度算法输入参数单一,对资源的占用情况分析粗糙,存在非常大的局限性,并不能充分利用各个服务器中的多种资源(包括架构中边缘节点上的异构资源),也不能针对容器多维资源请求提供相应的帮助。现有的调度算法无法满足需要调度多维资源类型的需求。
发明内容
本发明目的在于提出了一种Kubernetes集群架构系统下多维资源调度方法,能够动态地为云系统中的每个任务寻找最优的工作节点分配,解决了现阶段调度算法输入参数单一,无法满足任务对节点多样的资源类型需求的问题。
为了实现上述目标,本发明采用如下的技术方案:
Kubernetes集群架构系统下多维资源调度方法,包括:
发起Pod创建请求;
获取Pod所需要参数生成Pod调度任务;
将Pod调度任务序列化为对象送入调度器;
将调度器内Pod调度任务绑定到目标Node节点上执行。
进一步的,所述发起Pod创建请求包括:
通过kubectl客户端命令行发起的请求;
控制器为补足副本而创建的Pod请求;
通过Api Server发起的外部请求。
进一步的,还包括:
Pod创建请求需要通过鉴权认证后传入集群主节点的Api Server中,由ApiServer创建相应的Pod。
进一步的,还包括:
所有的Pod创建信息都将被持久化存储在分布式存储数据库etcd中。
进一步的,所述将Pod调度任务序列化为对象送入调度器,包括:
计算Pod调度任务的优先级指数,将Pod调度任务按优先级指数作降序排序,形成先入先出队列,按照队列顺序传入调度器;
所述优先级指数计算如下:
Figure BDA0002453763310000021
其中,αi表示第i个Pod调度任务的优先级指数,Di表示第i个Pod调度任务的截止期约束,Ai表示第i个Pod调度任务的提交时间,CPi表示第i个Pod调度任务的关键路径长度。
进一步的,所述将调度器内Pod调度任务绑定到目标服务器节点上执行,包括:
对服务器节点进行可行性检查,筛选出Pod调度任务能够运行的服务器节点;
为能够运行的服务器节点进行打分;
将Pod调度任务绑定到打分最高的服务器节点上。
进一步的,采用kubernetes默认的过滤算法筛选服务器节点:
过滤掉Pod所需端口已经被占用服务器节点,
过滤掉Pod所需资源无法满足的服务器节点,
过滤掉与Pod中的磁盘卷标存在冲突的服务器节点,
筛选出与Pod NodeSelector属性匹配以及HostName匹配的服务器节点。
进一步的,所述为能够运行的服务器节点进行优先级打分,包括:
判定此次Pod调度任务事件是计算密集型服务还是普通型服务,如果是计算密集型服务则根据资源空闲度给集群内各个服务器节点打分;如果是普通型服务,则根据Pod调度任务的资源需求,服务器节点的资源优先级以及服务器节点的资源均衡度给集群内各个服务器节点打分。
进一步的,所述根据资源空闲度给集群内各个服务器节点打分,包括:
Figure BDA0002453763310000022
其中,score表示服务器节点分值,cpu表示CPU空闲度,memory表示内存空闲度,capacity表示服务器节点对应资源的资源总量,requested表示服务器节点其他运行的任务占用的资源量。
进一步的,所述根据Pod调度任务的资源需求,服务器节点的资源优先级以及服务器节点的资源均衡度给集群内各个服务器节点打分,包括:
计算服务器节点的资源优先级:
Figure BDA0002453763310000031
Figure BDA0002453763310000032
其中,Tij代表集群内部第i个服务器节点的第j类资源的资源总量,Wij代表集群内部第i个服务器节点的第j类资源的优先级,Tijused集群内部第i个服务器节点已部署的Pod和其他应用消耗的第j类资源总量,Tijreq代表当前待调度Pod任务请求的第j类资源量,Gi表示第i个服务器节点的资源优先级,Ci表示第i个服务器节点的资源比重系数,i=1,2,…k,j=1,2,…s,k表示服务器节点数,s表示服务器节点中资源类型总数,所述资源类型包括cpu、内存、i/o读写速率、网络带宽、显卡和硬盘;
计算服务器节点的资源均衡度:
Figure BDA0002453763310000033
其中,Bi表示第i个服务器节点的资源均衡度;
计算服务器节点打分:
scorei=K(Gi+Bi)
其中,scorei表示第i个服务器节点分值,K为+1或者-1表示经过过滤流程后的结果,通过过滤阶段K=+1,未通过过滤阶段K=-1,scorei为负值时,表示此服务器节点不可用,scorei为正时表示此服务器节点可用。
本发明所达到的有益效果为:
本发明提供一种基于Kubernetes集群系统下多维资源的调度方法,能够针对集群内节点的各类资源进行调度,满足各类服务的多样化资源请求,增加系统的灵活性和可扩展性。
附图说明
图1为本发明的Kubernetes集群架构系统框架图;
图2为本发明的Kubernetes集群系统下多维资源调度物理流程图;
图3为本发明的Kubernetes集群系统下多维资源调度算法流程图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
参见图1,本发明的Kubernetes集群架构系统如下:
集群主节点(Master):它是整个集群的核心节点,所有对于Kubernetes集群的执行命令操作都是由它执行,它负责整个集群的调度和管理工作,一般是集群中独立的服务器。Master包括非常多的组件,主要包括Api Server、控制器以及调度器。Api Server是整个系统的数据总线和数据中心,提供了集群系统的各类资源对象的增删改查,集群管理的REST API接口(包括认证授权、数据校验以及集群状态变更)以及其他模块之间的数据交互和通信。其他模块通过Api Server查询或修改数据,只有Api Server才直接操作etcd。控制器是集群内部管理和控制中心,负责获取用户所需要的开发依赖库、系统配置等相关参数并将这些参数生成任务发送至调度器。调度器接受控制器发送的任务,监测Pod合法性并将Pod根据调度策略找到一个合适的节点运行,并将绑定的信息通过API Server发送到etcd中存储。
节点(Node):Kubernetes集群中除了集群主节点(Master)以外,其余的节点都称为节点(Node),Node节点都是工作节点,每一个Node节点都会被Master节点按照调度规则分配到合理的工作负载,是任务的执行者。每个Node节点上都运行一个kubelet服务进程,监听端口,接收并执行Master发来的指令,管理Pod以及Pod中的容器。每个kubelet进程会在Api Server上注册节点自身信息,定期向Master节点汇报资源使用情况,并通过cAdvisor监控节点和容器的资源。
命令行工具(kubectl):kubectl一般安装在客户端,它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。kubectl作为Kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等,从而实现对kebernetes集群的管理。
分布式存储数据库(etcd):etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和所有对象的状态信息。
基于上述Kubernetes集群架构系统,本发明提供一种Kubernetes集群架构系统下多维资源调度方法,包括:
步骤1),发起Pod创建请求,包括:a、通过kubectl客户端命令行发起的请求;b、控制器为补足副本而创建的Pod请求;c、通过Api Server发起的外部请求。
所有的Pod创建请求需要通过鉴权认证后传入集群主节点的Api Server中,经过鉴权认证后确认该创建请求是否通过,若Pod创建请求合法,Api server则创建相应的Pod,与此同时,所有的Pod创建信息都将被持久化存储在分布式存储数据库etcd中。集群主节点(Master)中的控制器以及调度器通过实时访问Api Server来查询Pod创建信息,当有新的创建对象时,控制器负责获取Pod所需要的开发依赖库、系统配置等相关参数并生成Pod调度任务发送至调度器,同时将Pod调度任务添加到挂起队列当中。控制器将Pod调度任务序列化为对象送入调度器中。调度器接受到控制器发送的任务,监测任务合法性并且调度程序异步的扫描这些任务。
步骤2)调度器通过访问Api Server查询是否存在待调度的Pod任务。若存在,则获取待调度的Pod资源信息和集群中所有的Node节点资源使用情况。然后根据制定的调度策略进行调度,将Pod任务绑定到目标Node节点上,并将绑定信息写入etcd中;若不存在,则不执行任何操作,继续等待下一轮通知查询。
Pod在提交时会携带Pod的创建信息以及需要的资源信息,前者是为了Pod在具体部署的时候搭建环境,后者是为了完成调度任务所需要的资源,例如cpu、内存等计算资源,还包括i/o读写速率、网络带宽、显卡、硬盘等多样化的资源。这些信息通常在Pod的yaml文件中设置。
调度策略包括两个部分:
预选阶段,主要进行可行性检查,具体为,
调度器用过滤规则过滤掉不符合要求的服务器节点,找出任务可以运行的服务器节点。
优选阶段,为可以运行的服务器节点进行优先级打分,具体为,
将上一阶段过滤出来的服务器节点进行打分,选择打分最高的服务器节点和Pod任务进行绑定操作,并在相应节点上部署容器运行任务。如果有足够的可用资源满足作业的约束,调度程序就将任务分配给节点。从高优先级到低优先级的扫描,通过一个优先级内的循环方案进行调整,以确保用户之间的公平性,并避免在大型作业之后的前端阻塞。
调度策略的具体实施过程为:
在先入先出调度队列中弹出调度事件即待调度的Pod任务,进入调度流程;
根据调度事件对运行端口、资源要求(例如cpu、内存、I/O读写速度等)以及一系列个性化的自定义需求;
调用一组过滤算法进行可行性检查,通过对调度器缓存区内集群中所有节点的节点信息进行过滤,得到符合要求的一组节点,就是所有可以运行该调度事件的服务器节点列表。在这一过程中,可用资源比任务需要的资源少的服务器节点就会被过滤掉;
然后为可以运行的服务器节点列表中的各个服务器节点进行打分。
本发明的调度策略考虑到每个Pod的不同的资源类型请求,为每个调度任务提供特定的调度服务。最终的调度结果,就是根据任务的需求并考虑一些整体的优化策略,选择得分最高的那个服务器节点,进而将该服务器节点与调度任务进行绑定,在该服务器节点上部署容器环境运行任务。
步骤3)位于Node节点上的kubelet进行定期的访问,接收从调度器传来的调度任务并执行这些调度任务,当有新的Pod绑定时,则下载Pod所需要的容器镜像并申请相应的资源进行Pod的部署,执行完毕将结果返回至调度器。同时,目标节点中的kubelet会监听调度信息以及负责节点的具体创建工作。
步骤4)kubelet通过容器启动时间取得Pod的最新状态,并将新的状态通过ApiServer更新到etcd中。
调度过程中,Kubernetes集群系统工作流程如图2所示。
作为本发明的一个优选实施例,具体实施过程参见图3,如下:
步骤1),kublectl向Kubernetes集群发送Pod创建请求,经过鉴权认证后确认该创建请求是否通过,若Pod创建请求合法,Api server则创建相应的Pod。与此同时,所有的创建信息都将被持久化存储在分布式存储数据库etcd中。
Master中的控制器以及调度器通过访问Api Server来查询Pod创建信息,当有新的创建对象时,控制器负责获取Pod所需要的开发依赖库、系统配置等相关参数并将这些参数生成Pod调度任务发送至调度器,同时将Pod调度任务添加到挂起队列当中。控制器将Pod调度任务序列化为对象送入调度器,调度器将检测对象合法性。
进一步的,控制器将Pod调度任务序列化为对象送入调度器,包括:
根据etcd中待调度任务,获取任务Wi的提交时间Ai和截止期约束Di,并计算出关键路径的长度CPi,计算任务优先级指数:
Figure BDA0002453763310000071
αi该值越小表示任务的CPi越接近与Di-Ai,即此调度任务就越紧急,需要优先处理,CPi主要是通过节点提供的cpu以及内存资源预测Pod任务运行时间。
将etcd中待调度任务基于此值作降序排序,形成先入先出队列,按照队列顺序传入调度器。
步骤2),调度器经过访问Api Server获取待调度事件,如查询到先入先出队列中出现了新的调度事件,则由调度器执行调度流程。若未收集到有最新的调度请求,则不执行任何操作,继续等待下一轮通知查询。
执行调度流程,首先调用一组过滤算法,根据调度器缓存区中拿到的调度事件信息对集群内所有节点进行过滤,得到任务可以运行的服务器节点,在此,按照Kubernetes默认的过滤算法进行过滤,主要包括以下五个步骤:
2-1)PodFitsPorts:检查Pod申请的端口是不是与已经被使用的端口有冲突,筛选Pod所需端口是否被占用,如果被占用即存在端口已经被使用的情况则过滤该节点。
2-2)PodFitsResources:筛选Pod所需资源是否满足,即检查Pod的主要特征需求字段,例如CPU、内存、IO资源以及网络资源等需求,如果不满足则过滤该节点。
2-3)NoDiskConflict:筛选节点上的磁盘卷标与Pod中的磁盘卷标是否存在冲突,如果存在冲突则过滤该节点。
2-4)PodSelectorMatches:如果Pod指定了NodeSelector属性,则筛选出与PodNodeSelector属性匹配的节点;Pod的节点选择器或者节点亲和性指定的节点,是否与待考察节点匹配。
2-5)PodCFitsHost:如果Pod指定了HostName,则筛选出与HostName匹配的节点。
然后为可以运行的服务器节点列表中的各个服务器节点进行打分,分数范围为0~10,最终的调度结果,就是得分最高的那个服务器节点,进而将该服务器节点与任务进行绑定,并在服务器节点名称字段写入最终的调度节点名称。
打分过程如下:
根据Pod类型与资源需求判定此次调度事件是计算密集型服务还是普通型服务。Pod类型是根据Pod的资源需求类型决定的,如果Pod调度任务所需要的资源需求信息中只包含cpu、内存等计算资源则是计算密集型服务,若Pod调度任务所需要的资源需求信息中包含资源类型比较多样复杂,例如cpu、内存、i/o读写速率、网络带宽、显卡、硬盘等多样化的资源的组合则为普通型服务。
若属于计算密集型服务,则根据资源空闲度(CPU和内存)给集群内各个服务器节点打分并记录分值:
Figure BDA0002453763310000081
其中,cpu表示CPU空闲度,memory表示内存空闲度,capacity表示服务器节点对应资源的资源总量,requested表示本服务器节点其他运行的任务占用的资源量,都是已知的。
此处采用了默认调度器中资源优先级的打分策略。资源优先级方法实际上就是在选择集群内部空闲资源(CPU和Memory)最多的节点。根据上述打分准则给集群内各个可用服务器节点打分后,得分最高的服务器节点就是最后被Pod绑定的最佳服务器节点。由于计算密集型服务往往需要大量CPU以及内存的支撑,所以在处理资源密集型任务时,采用资源优先级打分策略能够快速高效的处理调度的任务。
若属于普通型服务,则根据调度任务的资源需求,自动生成资源比重列表,根据资源比重列表以及系数动态的给集群内各个服务器节点进行打分。由于资源需求多样,在这里,忽略资源的类型,根据任务的标签,找出任务需求占重较大,影响任务性能的要素,生成多维的资源比重列表:
假设待调度的Pod任务序列为:
P=[p1,p2,p3,…pn],
其中,pi,i=1,2,…n表示第i个待调度Pod任务;
集群内服务器节点为:
N=[n1,n2,n3,…nk],k表示服务器节点数;
Pod任务序列需要的资源类型列表为:
T=[t1,t2…tn],
其中,ti,i=1,2,…n,表示第i个待调度Pod任务需要的资源类型;
集群内服务器节点的资源优先级为:
G=[G1,G2,…Gk],
其中,Gi,i=1,2,…k,表示第i个服务器节点的资源优先级;
每个服务器节点的资源配额根据工作任务流中任务的资源需求而定,资源比重系数为:
Figure BDA0002453763310000091
其中,cj,j=1,2,…s为服务器节点中第j个资源的比重系数,s为服务器节点中资源类型总数,资源包括cpu、内存、i/o读写速率、网络带宽、显卡、硬盘等。ci可以根据任务需求动态的设定,对哪项资源需求要求较高则资源比重系数较大,资源需求要求较低则资源比重系数较小。
通过动态的调节资源比重系数,来控制各项资源在优先级评判中的比重。
资源优先级:新的任务容器调度到一个节点上,这个节点的资源优先级为节点空闲的那部分与总容量的比值所得,即资源总容量减去节点上已用资源减去新任务调度资源与总资源量的比值决定,计算公式如下:
Figure BDA0002453763310000092
Figure BDA0002453763310000093
其中,Tij代表集群内部第i个节点的第j类资源的资源总量,Wij代表集群内部第i个节点的第j类资源的优先级,Tijused集群内部第i个节点已部署的Pod和其他应用消耗的第j类资源总量,Tijreq代表当前待调度Pod请求的第j类资源量,Gi表示第i个节点的资源优先级,该值统计了各项资源的优先级之和,比值越大,节点的优先级就越高,i=1,2,…k,j=1,2,…s。
资源均衡度:就是空闲节点的各类资源的相对比例。此设置主要是减少Pod部署在节点资源不均衡的节点上,也是比较节点出现资源耗尽,另一种资源剩余较多的手段。节点资源均衡度越好选择该节点的可能性就越大,根据二维资源均衡度的参考公式:
B=1-abs(Wcpu-Wmem)
该公式主要是求节点的cpu以及内存这两种资源的相对比例,从而选择调度后,所有节点里各种资源分配最均衡的那个节点,从而避免一个节点上CPU被大量分配、而Memory大量剩余的情况。本发明设计出多维资源均衡度评判公式:
Figure BDA0002453763310000101
其中,Bi表示第i个节点的资源均衡度。
然后,综合资源优先级以及资源均衡度,给各个服务器节点进行打分:
scorei=K(Gi+Bi)
其中,K为+1或者-1表示经过过滤流程后的结果,通过过滤阶段K=+1,未通过过滤阶段K=-1。scorei为负值时,表示此节点不可用;scorei为正时表示此节点可用。
最终选取打分最高的服务器节点。
步骤3),循环上述步骤直至待调度任务列表为空。
默认调度器在部署Pod所运行的物理节点时,通常把内存、CPU作为衡量各类节点性能的重要指标参数,基于这两类因素对各个节点进行打分排序,对于默认调度算法的各类优化也仅仅加上了类似网络负载量、IO读取速度等指标参数,忽略了在服务任务组中,各类服务资源需求的多样性,往往各类服务的指标参数各不相同,资源的多样化调度集群调度策略中,不局限于资源的种类,根据任务自带标签优选资源需求列表,不同资源需求进行节点打分。在调度部署Pod时,静态调度可以使集群保持负载的相对均衡,然而,在集群长时间的运行之后,集群系统会出现负载不均衡的问题,因此,在调度过程中,也结合动态负载均衡机制,采用动态比重系数保证集群在长时间运行的情况下,维持集群系统的稳定均衡性,从而更好地保持集群系统的稳定。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (6)

1.Kubernetes集群架构系统下多维资源调度方法,其特征在于,包括:
发起Pod创建请求;
获取Pod所需要参数生成Pod调度任务;
将Pod调度任务序列化为对象送入调度器,包括:
计算Pod调度任务的优先级指数,将Pod调度任务按优先级指数作降序排序,形成先入先出队列,按照队列顺序传入调度器;
所述优先级指数计算如下:
Figure FDA0003810390040000011
其中,αi表示第i个Pod调度任务的优先级指数,Di表示第i个Pod调度任务的截止期约束,Ai表示第i个Pod调度任务的提交时间,CPi表示第i个Pod调度任务的关键路径长度;
将调度器内Pod调度任务绑定到目标Node节点上执行,包括:
对服务器节点进行可行性检查,筛选出Pod调度任务能够运行的服务器节点;
为能够运行的服务器节点进行打分;
将Pod调度任务绑定到打分最高的服务器节点上;
所述为能够运行的服务器节点进行打分,包括:
判定此次Pod调度任务事件是计算密集型服务还是普通型服务,如果是计算密集型服务则根据资源空闲度给集群内各个服务器节点打分,如下:
Figure FDA0003810390040000012
其中,score表示服务器节点分值,cpu表示CPU空闲度,memory表示内存空闲度,capacity表示服务器节点对应资源的资源总量,requested表示服务器节点其他运行的任务占用的资源量;
如果是普通型服务,则根据Pod调度任务的资源需求,服务器节点的资源优先级以及服务器节点的资源均衡度给集群内各个服务器节点打分。
2.根据权利要求1所述的Kubernetes集群架构系统下多维资源调度方法,其特征在于,所述发起Pod创建请求包括:
通过kubectl客户端命令行发起的请求;
控制器为补足副本而创建的Pod请求;
通过Api Server发起的外部请求。
3.根据权利要求1所述的Kubernetes集群架构系统下多维资源调度方法,其特征在于,还包括:
Pod创建请求需要通过鉴权认证后传入集群主节点的Api Server中,由Api Server创建相应的Pod。
4.根据权利要求3所述的Kubernetes集群架构系统下多维资源调度方法,其特征在于,还包括:
所有的Pod创建信息都将被持久化存储在分布式存储数据库etcd中。
5.根据权利要求1所述的Kubernetes集群架构系统下多维资源调度方法,其特征在于,采用kubernetes默认的过滤算法筛选服务器节点,如下:
过滤掉Pod所需端口已经被占用服务器节点,
过滤掉Pod所需资源无法满足的服务器节点,
过滤掉与Pod中的磁盘卷标存在冲突的服务器节点,
筛选出与Pod NodeSelector属性匹配以及HostName匹配的服务器节点。
6.根据权利要求1所述的Kubernetes集群架构系统下多维资源调度方法,其特征在于,所述根据Pod调度任务的资源需求,服务器节点的资源优先级以及服务器节点的资源均衡度给集群内各个服务器节点打分,包括:
计算服务器节点的资源优先级:
Figure FDA0003810390040000021
Figure FDA0003810390040000022
其中,Tij代表集群内部第i个服务器节点的第j类资源的资源总量,Wij代表集群内部第i个服务器节点的第j类资源的优先级,Tijused集群内部第i个服务器节点已部署的Pod和其他应用消耗的第j类资源总量,Tijreq代表当前待调度Pod任务请求的第j类资源量,Gi表示第i个服务器节点的资源优先级,Ci表示第i个服务器节点的资源比重系数,i=1,2,…k,j=1,2,…s,k表示服务器节点数,s表示服务器节点中资源类型总数,所述资源类型包括cpu、内存、i/o读写速率、网络带宽、显卡和硬盘;
计算服务器节点的资源均衡度:
Figure FDA0003810390040000031
其中,Bi表示第i个服务器节点的资源均衡度;
计算服务器节点打分:
scorei=K(Gi+Bi),
其中,scorei表示第i个服务器节点分值,K为+1或者-1表示经过过滤流程后的结果,通过过滤阶段K=+1,未通过过滤阶段K=-1,scorei为负值时,表示此服务器节点不可用,scorei为正时表示此服务器节点可用。
CN202010300356.2A 2020-04-16 2020-04-16 Kubernetes集群架构系统下多维资源调度方法 Active CN111522639B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010300356.2A CN111522639B (zh) 2020-04-16 2020-04-16 Kubernetes集群架构系统下多维资源调度方法
PCT/CN2021/072398 WO2021208546A1 (zh) 2020-04-16 2021-01-18 Kubernetes集群架构系统下多维资源调度方法
US17/395,728 US11983562B2 (en) 2020-04-16 2021-08-06 Multidimensional resource scheduling method in Kubernetes cluster architecture system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010300356.2A CN111522639B (zh) 2020-04-16 2020-04-16 Kubernetes集群架构系统下多维资源调度方法

Publications (2)

Publication Number Publication Date
CN111522639A CN111522639A (zh) 2020-08-11
CN111522639B true CN111522639B (zh) 2022-11-01

Family

ID=71910641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010300356.2A Active CN111522639B (zh) 2020-04-16 2020-04-16 Kubernetes集群架构系统下多维资源调度方法

Country Status (3)

Country Link
US (1) US11983562B2 (zh)
CN (1) CN111522639B (zh)
WO (1) WO2021208546A1 (zh)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111522639B (zh) * 2020-04-16 2022-11-01 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法
CN112019628A (zh) * 2020-09-01 2020-12-01 江西凌峰售电有限公司 一种基于物联网的低延迟低能耗的智慧平台系统
CN112231075B (zh) * 2020-09-07 2023-09-01 武汉市九格合众科技有限责任公司 一种基于云服务的服务器集群负载均衡控制方法及系统
CN112130961B (zh) * 2020-09-29 2023-08-25 中国工商银行股份有限公司 基于numa架构的容器绑定方法及系统
CN112379971B (zh) * 2020-11-17 2021-09-14 深圳前海微众银行股份有限公司 应用容器管理方法、装置及设备
CN112527449B (zh) * 2020-11-19 2024-07-02 北京浪潮数据技术有限公司 一种集群节点标签创建方法、系统及电子设备和存储介质
CN112416523A (zh) * 2020-11-24 2021-02-26 浪潮云信息技术股份公司 一种使用RuntimeClass实现多容器运行时的方法
CN112540829A (zh) * 2020-12-16 2021-03-23 恒生电子股份有限公司 容器组驱逐方法、装置、节点设备及存储介质
CN112671923B (zh) * 2020-12-29 2021-11-30 深圳一科互联有限公司 一种统一接口服务通讯调度方法及装置
CN112799837A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 一种容器动态平衡调度方法
CN112835714B (zh) * 2021-01-29 2023-07-28 中国人民解放军国防科技大学 云边环境中面向cpu异构集群的容器编排方法、系统及介质
CN112764886B (zh) * 2021-01-29 2024-06-25 上海弘积信息科技有限公司 一种基于Kubernetes平台的负载均衡控制器
CN112532751B (zh) * 2021-02-09 2021-05-07 中关村科学城城市大脑股份有限公司 城市大脑ai计算中心分布式异构算力的调度方法及系统
CN113114715B (zh) * 2021-02-24 2024-01-23 网宿科技股份有限公司 一种基于边缘计算的调度方法及边缘设备集群
CN112925611A (zh) * 2021-03-11 2021-06-08 南京邮电大学 一种基于共享式gpu的分布式容器调度方法及其系统
CN113110923B (zh) * 2021-03-25 2023-10-20 南京飞灵智能科技有限公司 基于k8s的工作流引擎的使用方法及装置
CN112835989B (zh) * 2021-03-31 2024-02-09 中国工商银行股份有限公司 一种单应用多MySQL Set的部署方法及系统
US11768713B2 (en) * 2021-04-19 2023-09-26 Microsoft Technology Licensing, Llc Dynamic relocation of pods to optimize inter-pod networking
CN113590255A (zh) * 2021-05-19 2021-11-02 北京中电飞华通信有限公司 基于YARN和Kubernetes的容器化双层调度方法及系统
CN113448685B (zh) * 2021-06-07 2024-03-22 新浪技术(中国)有限公司 一种基于Kubernetes的Pod调度方法及系统
US20220398134A1 (en) * 2021-06-11 2022-12-15 International Business Machines Corporation Allocation of services to containers
CN113391921B (zh) * 2021-06-16 2023-04-28 浪潮云信息技术股份公司 一种应用实例的资源配额校验方法
US11928503B2 (en) 2021-06-22 2024-03-12 International Business Machines Corporation Cognitive scheduler for Kubernetes
US11778045B2 (en) 2021-07-12 2023-10-03 Red Hat, Inc. Communication system for micro-frontends of a web application
US11838206B2 (en) * 2021-07-23 2023-12-05 Vmware, Inc. Edge node with datapath split between pods
CN113672347A (zh) * 2021-08-09 2021-11-19 新华三大数据技术有限公司 一种容器组调度方法及装置
CN113645300B (zh) * 2021-08-10 2023-11-28 上海道客网络科技有限公司 一种基于Kubernetes集群的节点智能调度方法和系统
CN113672391B (zh) * 2021-08-23 2023-11-28 烽火通信科技股份有限公司 一种基于Kubernetes的并行计算任务调度方法与系统
CN113687935A (zh) * 2021-09-10 2021-11-23 大连华信计算机技术股份有限公司 一种基于超融合设计的云原生存储调度方式
CN113835865A (zh) * 2021-09-30 2021-12-24 北京金山云网络技术有限公司 一种任务部署方法和装置、电子设备和存储介质
CN113900822A (zh) * 2021-10-27 2022-01-07 哈尔滨理工大学 一种新的权重可变的资源调度方法
CN114374696A (zh) * 2021-12-15 2022-04-19 深圳前海微众银行股份有限公司 一种容器负载均衡方法、装置、设备及存储介质
CN114301911B (zh) * 2021-12-17 2023-08-04 杭州谐云科技有限公司 一种基于边边协同的任务管理方法和系统
CN113934515A (zh) * 2021-12-17 2022-01-14 飞诺门阵(北京)科技有限公司 一种基于数据域和计算域的容器组调度方法、装置
CN114064296B (zh) * 2022-01-18 2022-04-26 北京建筑大学 一种Kubernetes调度方法、装置和存储介质
CN114461147B (zh) * 2022-01-28 2024-07-16 新浪技术(中国)有限公司 一种为kubernetes集群提供不同存储类型的方法及系统
CN114928606B (zh) * 2022-01-29 2024-04-23 上海瀚银信息技术有限公司 一种服务器资源的调度方法及系统
CN114610480A (zh) * 2022-02-09 2022-06-10 阿里巴巴(中国)有限公司 一种弹性资源调度方法、控制设备、装置及可读存储介质
CN116644119A (zh) * 2022-02-16 2023-08-25 华为技术有限公司 一种数据存储系统及方法
CN114679451B (zh) * 2022-02-18 2023-04-25 北京邮电大学 面向边缘计算的服务调度系统及其调度方法
CN114327841B (zh) * 2022-03-16 2022-06-21 上海闪马智能科技有限公司 一种资源调度方法、装置、存储介质及电子装置
US12067429B2 (en) 2022-03-18 2024-08-20 Red Hat, Inc. Synchronizing variable values between an application shell and micro-frontends of a web application
CN114390106B (zh) * 2022-03-24 2022-07-05 广州医科大学附属第五医院 基于Kubernetes容器资源的调度方法、调度器及调度系统
CN114826964B (zh) * 2022-04-11 2024-04-05 京东科技信息技术有限公司 一种资源监控方法、装置和系统
CN114840304B (zh) * 2022-04-15 2023-03-21 中兴通讯股份有限公司 一种容器调度方法、电子设备和存储介质
CN114816931A (zh) * 2022-05-09 2022-07-29 新华智云科技有限公司 微服务重要性评估方法及系统、计算机可读存储介质
CN114826908B (zh) * 2022-05-09 2024-03-26 新华智云科技有限公司 kubernetes集群服务保障方法、组件、系统
CN114995971A (zh) * 2022-05-10 2022-09-02 兴业银行股份有限公司 实现kubernetes中pod批量调度方法及系统
CN114840343A (zh) * 2022-05-16 2022-08-02 江苏安超云软件有限公司 基于分布式系统的任务调度方法及系统
CN115250197B (zh) * 2022-06-02 2024-04-12 苏州思萃工业互联网技术研究所有限公司 一种自动化创建容器发现服务的装置
CN114995961A (zh) * 2022-08-04 2022-09-02 浙江大学 一种请求调度方法、装置及存储介质
CN115543577B (zh) * 2022-08-08 2023-08-04 广东技术师范大学 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN115426373A (zh) * 2022-08-23 2022-12-02 浪潮软件科技有限公司 私有云中部署分布式存储系统的方法及部署系统
CN115460089A (zh) * 2022-08-30 2022-12-09 兴业银行股份有限公司 开放、多云、多集群联邦实现的方法及系统
CN115168057B (zh) * 2022-09-02 2022-12-20 浙江大华技术股份有限公司 基于k8s集群的资源调度方法及装置
CN115242660B (zh) * 2022-09-21 2022-12-13 之江实验室 基于中心化的异构算力联邦系统及组网和执行方法
CN115237608A (zh) * 2022-09-21 2022-10-25 之江实验室 一种基于多集群统一算力的多模式调度系统和方法
CN115562870B (zh) * 2022-10-25 2023-07-21 北京京航计算通讯研究所 一种集群的任务节点资源构建方法
CN115865933B (zh) * 2022-11-11 2024-08-09 西北工业大学 一种面向工业任务边缘节点的计算资源架构及调度方法
CN115665157B (zh) * 2022-11-14 2023-03-14 杭州谐云科技有限公司 一种基于应用资源类型的均衡调度方法和系统
CN115865693A (zh) * 2022-11-14 2023-03-28 华南理工大学 一种面向边缘计算的Kubernetes调度方法和系统
CN115550371B (zh) * 2022-12-05 2023-03-21 安超云软件有限公司 基于Kubernetes的Pod调度方法、系统及云平台
CN116204286B (zh) * 2022-12-21 2023-12-12 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) 一种支持拓扑感知的Kubernetes调度方法
CN116132498A (zh) * 2022-12-22 2023-05-16 北京蔚领时代科技有限公司 适用于应用更新期间的云渲染调度方法、系统及存储介质
CN115865922A (zh) * 2022-12-31 2023-03-28 天翼物联科技有限公司 基于SRv6协议的集群Pod调度方法、装置、设备及介质
CN115827206B (zh) * 2023-01-18 2023-05-05 太极计算机股份有限公司 一种基于机器学习的显卡任务资源的调度方法及系统
CN115834714B (zh) * 2023-02-09 2023-06-16 中国证券登记结算有限责任公司 一种跨平台任务调度方法、服务器和系统
CN116010111B (zh) * 2023-03-22 2023-12-22 安超云软件有限公司 一种跨集群资源调度方法、系统及终端设备
CN116170518B (zh) * 2023-04-26 2023-07-18 北京太极信息系统技术有限公司 一种国产芯片容器云跨架构管理的方法及设备
CN116340005B (zh) * 2023-05-26 2023-08-15 北京好心情互联网医院有限公司 容器集群的调度方法、装置、设备及存储介质
CN116541134B (zh) * 2023-07-05 2023-09-19 苏州浪潮智能科技有限公司 多架构集群中容器的部署方法及装置
CN116860461B (zh) * 2023-09-04 2023-12-19 深圳大道云科技有限公司 K8s集群的资源调度方法、设备及存储介质
CN117170811A (zh) * 2023-09-07 2023-12-05 中国人民解放军国防科技大学 一种基于volcano的节点分组作业调度方法及系统
CN117170812B (zh) * 2023-09-07 2024-05-03 中国人民解放军国防科技大学 一种基于研发运维一体化架构的数值预报计算云系统
CN117114623B (zh) * 2023-09-18 2024-04-26 广东泰一高新技术发展有限公司 一种园区内监控设备的智慧管理方法及系统
CN117155939B (zh) * 2023-10-31 2024-02-27 北京比格大数据有限公司 一种实现跨集群资源调度的方法
CN117519994B (zh) * 2024-01-05 2024-04-16 银河麒麟软件(长沙)有限公司 一种基于k8s的NUMA感知调度方法及系统
CN117729204B (zh) * 2024-02-06 2024-05-10 山东大学 一种基于监控感知的k8s容器调度方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124591A1 (en) * 2010-11-17 2012-05-17 Nec Laboratories America, Inc. scheduler and resource manager for coprocessor-based heterogeneous clusters
CN109960585A (zh) * 2019-02-02 2019-07-02 浙江工业大学 一种基于kubernetes的资源调度方法
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191778B1 (en) * 2015-11-16 2019-01-29 Turbonomic, Inc. Systems, apparatus and methods for management of software containers
CN106027643B (zh) * 2016-05-18 2018-10-23 无锡华云数据技术服务有限公司 一种基于Kubernetes容器集群管理系统的资源调度方法
US11243807B2 (en) * 2017-05-04 2022-02-08 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a scheduler and workload manager with workload re-execution functionality for bad execution runs
US11294726B2 (en) * 2017-05-04 2022-04-05 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS
US10545796B2 (en) * 2017-05-04 2020-01-28 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items
US10514951B2 (en) * 2017-05-04 2019-12-24 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN109783218B (zh) * 2019-01-24 2020-09-08 中国—东盟信息港股份有限公司 一种基于Kubernetes容器集群的与时间相关联的容器调度方法
US11422844B1 (en) * 2019-11-27 2022-08-23 Amazon Technologies, Inc. Client-specified network interface configuration for serverless container management service
US11392422B1 (en) * 2019-11-27 2022-07-19 Amazon Technologies, Inc. Service-managed containers for container orchestration service
CN111522639B (zh) * 2020-04-16 2022-11-01 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124591A1 (en) * 2010-11-17 2012-05-17 Nec Laboratories America, Inc. scheduler and resource manager for coprocessor-based heterogeneous clusters
CN109960585A (zh) * 2019-02-02 2019-07-02 浙江工业大学 一种基于kubernetes的资源调度方法
CN110780998A (zh) * 2019-09-29 2020-02-11 武汉大学 基于Kubernetes的动态负载均衡资源调度方法

Also Published As

Publication number Publication date
US11983562B2 (en) 2024-05-14
WO2021208546A1 (zh) 2021-10-21
US20210365290A1 (en) 2021-11-25
CN111522639A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN111522639B (zh) Kubernetes集群架构系统下多维资源调度方法
CN109960585B (zh) 一种基于kubernetes的资源调度方法
US6711607B1 (en) Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
JP6100712B2 (ja) 記憶側記憶要求管理
US5325526A (en) Task scheduling in a multicomputer system
US7756940B2 (en) Transaction processing system having service level control capabilities
US6591262B1 (en) Collaborative workload management incorporating work unit attributes in resource allocation
US6651125B2 (en) Processing channel subsystem pending I/O work queues based on priorities
US11263066B2 (en) Producer-side prioritization of message processing
US5504894A (en) Workload manager for achieving transaction class response time goals in a multiprocessing system
US6587938B1 (en) Method, system and program products for managing central processing unit resources of a computing environment
US7007276B1 (en) Method, system and program products for managing groups of partitions of a computing environment
US20060206894A1 (en) Method of scheduling jobs using database management system for real-time processing
EP0969382A2 (en) Method for efficient non-virtual main memory management
CN113454614A (zh) 用于分布式计算中的资源划分的系统和方法
US20050081208A1 (en) Framework for pluggable schedulers
US7769715B2 (en) Synchronization of access permissions in a database network
US20060167966A1 (en) Grid computing system having node scheduler
GB2483737A (en) Workflow scheduler for server cluster with blocking assignment of order sensitive flows and non blocking assignment of other flows
US7920282B2 (en) Job preempt set generation for resource management
CN109150759B (zh) 一种渐进式非阻塞机会资源预留方法及系统
JP2005107632A (ja) Eaiサーバおよびeaiサーバのプログラム
CN116841751B (zh) 一种多任务线程池的策略配置方法、装置和存储介质
Lee et al. zStream: towards a low latency micro-batch streaming system
CN114217733A (zh) 一种面向io转发系统的io处理框架及io请求处理方法

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