CN109582452B - 一种容器调度方法、调度装置及电子设备 - Google Patents
一种容器调度方法、调度装置及电子设备 Download PDFInfo
- Publication number
- CN109582452B CN109582452B CN201811426360.2A CN201811426360A CN109582452B CN 109582452 B CN109582452 B CN 109582452B CN 201811426360 A CN201811426360 A CN 201811426360A CN 109582452 B CN109582452 B CN 109582452B
- Authority
- CN
- China
- Prior art keywords
- container
- score
- candidate server
- scheduled
- server
- 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
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施了一种容器调度方法、调度装置及电子设备。该容器调度方法包括:确定待调度容器,并确定所述待调度容器对应的各个候选服务器;计算各个候选服务器的各种业务调度得分;计算各个候选服务器的资源调度得分;根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分;根据候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算候选服务器的节点得分,并将待调度容器调度至节点得分最高的候选服务器。这样,在对软件应用的容器进行调度时,既兼顾了资源调度和业务需求调度两个方面,又考虑了网络通信情况,从而降低了网络通信情况对软件应用的运行效率的影响。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及一种容器调度方法、调度装置及电子设备。
背景技术
容器技术是一种内核虚拟化技术,通过内核和用户态进程组的支持,实现独立网络IP、进程树等类似虚拟机的隔离运行。其中,容器调度是容器技术中的重要内容,其所解决的问题是:如何将容器调度至合适的候选服务器,以实现业务需求和系统资源的最大利用率。
此外,随着容器技术的发展,大规模的软件应用逐渐被大量子应用替代,承载各个子应用的容器之间存在大量的网络通信,而不良的网络通信情况对整个软件的运行效率有很大的影响。
因此,在容器调度时,如何兼顾系统资源调度和业务需求调度两个方面,并降低网络通信情况对容器承载的软件应用的运行效率的影响,是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种容器调度方法、调度装置及电子设备,以兼顾系统资源调度和业务需求调度两个方面,并降低网络通信情况对软件应用的运行效率的影响。具体技术方案如下:
一种容器调度方法,包括:
确定待调度容器,并确定所述待调度容器对应的各个候选服务器;
针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分;其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签;
根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分;
根据所述各个候选服务器与预设服务器之间的网络通信指标,计算所述各个候选服务器的网络通信得分;所述预设服务器为:目标数据所在的数据源服务器,所述目标数据为在运行所述待调度容器时所需的数据;
针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分;
从所述各个候选服务器中,确定节点得分最高的候选服务器,并将所述待调度容器调度至所述节点得分最高的候选服务器。
可选地,所述业务关系,包括:互斥关系、相近关系以及亲和关系中的一种或多种;
所述互斥关系对应的业务调度得分为:互斥得分;
所述相近关系对应的业务调度得分为:相近得分;
所述亲和关系对应的业务调度得分为:亲和得分。
可选地,所述针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分,包括:
针对预设的至少一种业务关系中的互斥关系,按照第一预设计算方式,计算所述各个候选服务器的、与该互斥关系对应的互斥得分;
其中,所述第一预设计算方式包括:
针对各个候选服务器的每一已有容器,计算该已有容器与所述待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与所述待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断所述互斥关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第一业务规则,如果有,将所述第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将所述互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与所述待调度容器的差异度,按照下述方式计算:
判断该已有容器的镜像与所述待调度容器的镜像是否相同,以及该已有容器的标签与所述待调度容器的标签是否相同;
如果均相同,将该已有容器与所述待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与所述待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与所述待调度容器的差异度设置为第三差异度;
其中,第一差异度、第二差异度和第三差异度的大小关系为:第一差异度<第二差异度<第三差异度。
可选地,所述针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分,包括:
针对预设的至少一种业务关系中的相近关系,按照第二预设计算方式,计算所述各个候选服务器的、与该相近关系对应的相近得分;
其中,所述第二预设计算方式包括:
判断所述相近关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将所述第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个所述相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为该候选服务器的参考网络时延;将所述参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,所述归一化分母为所述获取的网络时延中的最大值与最小值的差。
可选地,所述针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分,包括:
针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算所述各个候选服务器的、与该亲和关系对应的亲和得分;
其中,所述第三预设计算方式包括:
判断所述亲和关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将所述第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将所述亲和容器所在的候选服务器的亲和得分设置为1,将不包含所述亲和容器的其他候选服务器的亲和得分设置为0。
可选地,所述待调度容器所请求的硬件资源,包括:所述待调度容器所请求的CPU核数和内存;
任一候选服务器的已用硬件资源,包括:该候选服务器已被占用的CPU核数和内存;
所述根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分,包括:
利用资源调度计分公式,计算所述各个候选服务器的资源调度得分;其中,所述资源调度计分公式为:
其中,Z为任一候选服务器的资源调度得分,cc为所述待调度容器所请求的CPU核数,cn为该候选服务器已被占用的CPU核数,mc为所述待调度容器所请求的内存,mn为该候选服务器已被占用的内存。
可选地,任一候选服务器与预设服务器之间的网络通信指标,包括该候选服务器与预设服务器之间的网络时延;
所述根据所述各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分,包括:
获取所述各个候选服务器到预设服务器的网络时延;
利用网络通信计分公式,计算所述各个候选服务器的网络通信得分;其中,所述网络通信计分公式为:
其中,X为任一候选服务器的网络通信得分,t为该候选服务器到所述预设服务器的网络时延;tmax为所述各个候选服务器到所述预设服务器的网络时延中的最大值;tmin为所述各个候选服务器到所述预设服务器的网络时延中的最小值。
可选地,所述针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分,包括:
针对每一候选服务器,利用节点计分公式,计算该候选服务器的节点得分;其中,所述节点计分公式为:
其中,S为任一候选服务器的节点得分,A为该候选服务器的所述网络通信得分,B为该候选服务器的所述资源调度得分,为该候选服务器的各种业务调度得分的加权求和所得的总分值,C为该候选服务器的任一种业务调度得分;x为所述网络通信得分的权重因子,y为所述资源调度得分的权重因子,z为所述任一种业务调度得分的权重因子,n为各类业务调度得分的种类数量。
一种容器调度装置,包括:
确定模块,用于确定待调度容器,并确定所述待调度容器对应的各个候选服务器;
业务调度得分计算模块,用于针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分;其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签;
资源调度得分计算模块,用于根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分;
网络通信得分计算模块,用于根据所述各个候选服务器与预设服务器之间的网络通信指标,计算所述各个候选服务器的网络通信得分;所述预设服务器为:目标数据所在的数据源服务器,所述目标数据为在运行所述待调度容器时所需的数据;
节点得分计算模块,用于针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分;
调度模块,用于从所述各个候选服务器中,确定节点得分最高的候选服务器,并将所述待调度容器调度至所述节点得分最高的候选服务器。
可选地,所述业务关系,包括:互斥关系、相近关系以及亲和关系中的一种或多种;
所述互斥关系对应的业务调度得分为:互斥得分;所述相近关系对应的业务调度得分为:相近得分;所述亲和关系对应的业务调度得分为:亲和得分。
可选地,所述业务调度得分计算模块,具体用于:针对预设的至少一种业务关系中的互斥关系,按照第一预设计算方式,计算各个候选服务器的、与该互斥关系对应的互斥得分;
其中,所述第一预设计算方式包括:
针对各个候选服务器的每一已有容器,计算该已有容器与所述待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与所述待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断所述互斥关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第一业务规则,如果有,将所述第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将所述互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与所述待调度容器的差异度,按照下述方式计算:
判断该已有容器的镜像与所述待调度容器的镜像是否相同,以及该已有容器的标签与所述待调度容器的标签是否相同;
如果均相同,将该已有容器与所述待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与所述待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与所述待调度容器的差异度设置为第三差异度;
其中,第一差异度、第二差异度和第三差异度的大小关系为:第一差异度<第二差异度<第三差异度。
可选地,所述业务调度得分计算模块,具体用于:
针对预设的至少一种业务关系中的相近关系,按照第二预设计算方式,计算所述各个候选服务器的、与该相近关系对应的相近得分;
其中,所述第二预设计算方式包括:
判断所述相近关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将所述第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个所述相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为该候选服务器的参考网络时延;将所述参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,所述归一化分母为所述获取的网络时延中的最大值与最小值的差。
可选地,所述业务调度得分计算模块,具体用于:
针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算所述各个候选服务器的、与该亲和关系对应的亲和得分;
其中,所述第三预设计算方式包括:
判断所述亲和关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将所述第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将所述亲和容器所在的候选服务器的亲和得分设置为1,将不包含所述亲和容器的其他候选服务器的亲和得分设置为0。
可选地,所述待调度容器所请求的硬件资源,包括:待调度容器所请求的CPU核数和内存;任一候选服务器的已用硬件资源,包括:该候选服务器已被占用的CPU核数和内存;
所述资源调度得分计算模块,具体用于:利用资源调度计分公式,计算各个候选服务器的资源调度得分。其中,资源调度计分公式为:
其中,Z为任一候选服务器的资源调度得分,cc为待调度容器所请求的CPU核数,cn为该候选服务器已被占用的CPU核数,mc为待调度容器所请求的内存,mn为该候选服务器已被占用的内存。
可选地,任一候选服务器与预设服务器之间的网络通信指标,包括:该候选服务器与预设服务器之间的网络时延;
所述网络通信得分计算模块,包括:网络时延获取子模块和网络通信得分计算子模块;
其中,网络时延获取子模块,用于获取各个候选服务器到预设服务器的网络时延;
网络通信得分计算子模块,用于利用网络通信计分公式,计算各个候选服务器的网络通信得分;其中,网络通信计分公式为:
其中,X为任一候选服务器的网络通信得分,t为该候选服务器到预设服务器的网络时延;tmax为各个候选服务器到预设服务器的网络时延中的最大值;tmin为各个候选服务器到预设服务器的网络时延中的最小值。
可选地,所述节点得分计算模块,具体用于:针对每一候选服务器,利用节点计分公式,计算该候选服务器的节点得分;其中,节点计分公式为:
其中,S为任一候选服务器的节点得分,A为该候选服务器的网络通信得分,B为该候选服务器的资源调度得分,为各种业务调度得分的加权求和所得的总分值,C为该候选服务器的任一种业务调度得分;x为网络通信得分的权重因子,y为资源调度得分的权重因子,z为任一种业务调度得分的权重因子,n为各类资源调度得分的种类数量。
一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种容器调度方法所述的方法步骤。
本发明实施例提供容器调度方法,计算各个候选服务器的网络通信得分、资源调度得分以及业务调度得分,从而根据计算的各个得分计算各个候选服务器的节点得分,然后将待调度容器调度至得分最高的候选服务器。这样,在对软件应用的容器进行调度时,既兼顾了资源调度和业务需求调度两个方面,又考虑了网络通信情况,从而降低了网络通信情况对软件应用的运行效率的影响。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种容器调度方法的流程图;
图2为本发明实施例提供的一种容器调度装置的结构示意图;
图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了兼顾系统资源调度和业务需求调度两个方面,并降低网络通信情况对软件应用的运行效率的影响。本发明实施例提供了一种容器调度方法、调度装置及电子设备。
需要说明的是,容器是对软件和其运行所需环境的标准化打包,可以实现各个软件应用之间相互隔离。容器调度是将打包好的软件及其运行所需环境调度至某一节点,即将打包好的软件及其运行所需环境调度至某一候选服务器上运行的技术。
此外,每个容器都拥有镜像和标签,其中,镜像是容器的只读模板,一个容器只有一个容器镜像。标签是容器的识别符号。一个容器可以有多个标签。需要说明的是,在本发明各个实施例中,容器的标签指容器的多个标签中,可用于记录业务规则的一个标签,而不是容器的全部标签。
首先,对本发明实施例提供的一种容器调度方法进行详细说明。
需要说明的是,本发明实施例提供的一种容器调度方法的执行主体可以为一种容器调度装置,该容器调度装置可以应用于电子设备中,该电子设备可以与多个服务器进行通信,从而容器调度装置可以访问这些服务器,并将容器调度至这些服务器上运行。具体的,上述电子设备可以为是服务器或是终端设备,在具体应用中,该终端设备可以为移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备,或个人数字助理等。
如图1所示,本发明实施例提供的容器调度方法,包括以下步骤:
S101:确定待调度容器,并确定待调度容器对应的各个候选服务器。
可以理解的是,对于待调度容器来说,待调度容器对应的各个候选服务器可以是应用容器调度装置的电子设备可以访问的全部服务器,当然,也可以是预先规定的候选服务器。
S102:针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、待调度容器的标签和各个候选服务器的已有容器的标签,计算各个候选服务器的、与该种业务关系对应的业务调度得分。其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签。
可以理解的是,虽然每个容器的运行是独立的,但这仅仅是从计算机执行程序的角度来看的,一旦容器承载了具体的服务后,就符合了一定的业务关系,因此,在对容器进行调度时,就需要根据容器所符合的业务关系来进行容器调度。
在实际应用中,可以预先设置多种业务关系,业务关系是针对一个以上的容器之间的关系来说的。因此,可以在每种业务关系下具体地记录需要符合该业务关系的两个容器的标签。这样,既不需要花费人工为每个容器单独配置用于定义该容器的业务规则的配置文件,又可以避免在进行大规模容器部署时容易出现的人为差错。
示例性的,可以预先设置一个业务规则总表。在该业务规则总表中,按照业务关系的不同划分了多个子表,每个子表中记录着符合该子表所对应的业务关系的多对容器的标签。
示例性的,上述业务关系可以包括互斥关系、相近关系以及亲和关系中的一种或多种。相应的,各个候选服务器的、与上述三种业务关系对应的业务调度得分,可以分别为:互斥得分、相近得分,以及亲和得分。为了方案清楚及布局清晰,后续对各个候选服务器的、与上述三种业务关系对应的业务调度得分的具体实现方式进行举例说明。
在其他实施方式中,不一定每种业务关系都是关于一对容器的业务关系的限定,也可能有些业务关系是关于两个以上容器的业务关系的限定。因此,在这种业务关系对应的业务规则中,记录的就可以是符合该业务关系的两个以上的容器的标签。
S103:根据各个候选服务器的已用硬件资源和待调度容器所请求的硬件资源,计算各个候选服务器的资源调度得分。
可以理解的是,将容器调度至可用硬件资源充足的候选服务器上,可以使容器的运行速度更快,而将容器调度至可用硬件资源紧张甚至不足的候选服务器上,容器的运行速度将会受到影响。因此,在对容器进行调度时,可以权衡待调度容器所请求的硬件资源和候选服务器的已用硬件资源两个方面,实现硬件资源的高效利用。
为了方案清楚及布局清晰,后续对根据各个候选服务器的已用硬件资源和待调度容器所请求的硬件资源,计算各个候选服务器的资源调度得分的具体实现方式进行举例介绍。
S104:根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分。其中,预设服务器可以为:目标数据所在的数据源服务器,而目标数据可以为:运行待调度容器时所需的数据。
可以理解的,容器是软件程序,而运行软件程序除了程序本身,还包括程序的各项输入参数,即上述目标数据。如果将容器调度至与预设服务器通信不良好的候选服务器上,那么容器的运行将会受到很大影响。因此,对容器进行调度时,可以将容器调度至距离预设服务器较近的候选服务器。
在实际应用中,衡量候选服务器与预设服务器之间的距离,可以预先设定一种网络通信参数,然后计算或者获取各个候选服务器与预设服务器之间的网络通信参数的值,即网络通信指标,从而利用网络通信指标来衡量候选服务器与预设服务器之间的距离。
为了方案清楚及布局清晰,后续对根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分的具体实现方式进行举例介绍。
S105:针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分。
针对每一候选服务器,计算出该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,就可以根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,来计算该候选服务器的节点得分。这里,节点即候选服务器。
在其他实施方式中,也可以从候选服务器的各种业务调度得分、资源调度得分以及网络通信得分中选出一个或多个,然后根据选取的各个得分项来计算候选服务器的节点得分。
在一种实施方式中,可以采用求和的方式计算候选服务器的节点得分,即将候选服务器的各种业务调度得分、资源调度得分以及网络通信得分分别乘以预先设置的各项权重之后再相加,将相加得到的和作为候选服务器的节点得分。
S106:从各个候选服务器中,确定节点得分最高的候选服务器,并将待调度容器调度至节点得分最高的候选服务器。
可以理解的是,节点得分最高的候选服务器可能并不是唯一的,因此,可以将待调度容器随机调度至任一节点得分最高的候选服务器,也可以将节点得分最高的几个候选服务器再次作为候选服务器,并从各项业务得分、资源调度得分或网络通信得分中选取一种或多种,再次计算节点得分,然后将待调度容器调度至唯一的一个得分最高的候选服务器。当然,也可以不采用重复计算节点得分的方法,而是直接根据其他因素来对待调度容器调度执行调度,对此,本发明不做限定。
本发明实施例提供容器调度方法,计算各个候选服务器的网络通信得分、资源调度得分,以及业务调度得分,从而根据计算的各个得分计算各个候选服务器的节点得分,然后将待调度容器调度至得分最高的候选服务器。这样,在对软件应用的容器进行调度时,既兼顾了资源调度和业务需求调度两个方面,又考虑了网络通信情况,从而降低了网络通信情况对软件应用的运行效率的影响。
为了方案清楚及布局清晰,下面对各个候选服务器的、与上述三种业务关系对应的业务调度得分的具体实现方式进行举例说明。
首先,对各个候选服务器的、与互斥关系对应的业务调度得分的具体实现方式进行举例说明。
针对预设的至少一种业务关系中的互斥关系,可以根据待调度容器的标签和各个候选服务器的已有容器的标签,按照第一预设计算方式,计算各个候选服务器的、与互斥关系对应的互斥得分。
其中,第一预设计算方式,可以包括:
针对各个候选服务器的每一已有容器,计算该已有容器与待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断互斥关系对应的至少一条业务规则中,是否存在记录有待调度容器的标签的第一业务规则,如果有,将第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与待调度容器的差异度,可以按照下述方式计算:
判断该已有容器的镜像与待调度容器的镜像是否相同,以及该已有容器的标签与待调度容器的标签是否相同;
如果均相同,将该已有容器与待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与待调度容器的差异度设置为第三差异度。
可以理解的是,两个容器之间,如果镜像与标签均相同,那么这两个容器的相似度最高,相应的差异度就最低;而如果镜像与标签均不相同,那么这两个容器的差异度就最高。因此,上述三种差异度中,第一差异度、第二差异度和第三差异度的大小关系可以为:第一差异度<第二差异度<第三差异度。
示例性的,第一差异度可以为0,第二差异度0.5,第三差异度可以为1。
在其他实施方式中,可以按照上述给出的大小关系,任意设置第一差异度、第二差异度和第三差异度的具体值。
在实际应用中,为保障服务的可靠性,通常将承载同类型服务的容器调度至不同的候选服务器,从而避免因为单个候选服务器故障而导致整个服务瘫痪的风险。此外,若候选服务器的已有容器中,包含有与待调度容器符合互斥关系的已有容器,也应尽量避免将待调度容器调度至该候选服务器。
因此,将互斥容器所在的候选服务器的互斥得分设置为0,可以在通过上述求和的方式计算候选服务器的节点得分时,使互斥容器所在的候选服务器的互斥得分,为该候选服务器的节点得分贡献为0。相应的,将待调度容器调度至该候选服务器的可能性就低。同理,将候选服务器的每个已有容器与待调度容器的差异度中,分值最低的差异度作为候选服务器的互斥得分,可以避免与待调度容器的差异较大的已有容器所在候选服务器的节点得分高,从而可以降低将待调度容器调度至这种候选服务器的可能性。
上述实施例中已经提到,为了避免因为单个候选服务器故障而导致整个服务瘫痪的风险,需要将承载同类型服务的容器设置在不同的候选服务器,但是,承载同类型服务的容器之间可能会有频繁交互的需求,如果有交互需求的两个容器各自所在的候选服务器距离较远,也会影响到容器的运行效率。因此,可以将有交互需求的两个容器设置在相邻的候选服务器,此时,这两个有交互需求的容器即符合业务关系中的相近关系。
下面,对各个候选服务器的、与相近关系对应的业务调度得分的具体实现方式进行举例说明。
针对预设的至少一种业务关系中的相近关系,可以按照第二预设计算方式,计算各个候选服务器的、与该相近关系对应的相近得分。
其中,第二预设计算方式可以包括:
判断相近关系对应的至少一条业务规则中,是否存在记录有待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为针对的候选服务器的参考网络时延;将参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,归一化分母为所述获取的网络时延中的最大值与最小值的差。
可以理解的是,在对待调度容器进行调度时,应尽量将待调度容器调度至相近容器所在的候选服务器附近的候选服务器。然而,相近容器并不只有一个,相应的,相近容器所在的候选服务器也就不只有一个,因此,每一个候选服务器到多个相近容器所在的候选服务器的网络时延也不只有一个。之所以将候选服务的多个网络时延中的最小值归一化后作为候选服务器的相近得分,是因为这样可以在对待调度容器进行调度时,将距离相近容器所在的候选服务器最近的候选服务器,即到相近容器所在的候选服务器的网络时延最小的候选服务器,作为待调度容器最终被调往的候选服务器。
此外,如果相近关系对应的至少一条业务规则中,不存在记录有待调度容器的标签的第二业务规则,则说明各个候选服务器中,均没有与待调度容器符合相近关系的已有容器。那么,从相近关系这一方面考虑,各个候选服务器对于待调度容器来说没有差别,最终被调度至哪个候选服务器都一样。因此,将各个候选服务器的相近得分均设置为0,可以在通过上述求和的方式计算各个候选服务器的节点得分时,不会因相近得分的差别导致各个候选服务器的节点得分出现差异,此外,也不会对各个候选服务器的节点得分造成任何影响。
上述的各个业务关系中,除了互斥关系和相近关系之外,还有亲和关系。亲和关系可以用于实现将需要协同工作的两个容器设置在同一个候选服务器上。这样,两个需要协同工作的容器可以高效地协同工作。
下面,对各个候选服务器的、与亲和关系对应的业务调度得分的具体实现方式进行举例说明。
针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算各个候选服务器的、与该亲和关系对应的亲和得分。
其中,第三预设计算方式可以包括:
判断亲和关系对应的至少一条业务规则中,是否存在记录有待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将亲和容器所在的候选服务器的亲和得分设置为1,将不包含亲和容器的其他候选服务器的亲和得分设置为0。
可以理解的是,如果亲和关系对应的至少一条业务规则中,不存在记录有待调度容器的标签的第三业务规则,则说明各个候选服务器中,都没有与待调度容器符合亲和关系的已有容器。那么,从亲和关系这一方面考虑,各个候选服务器对于待调度容器来说没有差别,最终被调度至哪个候选服务器都一样。因此,将各个候选服务器的亲和得分均设置为0,可以在通过上述求和的方式计算各个候选服务器的节点得分时,不会因亲和得分的差别导致各个候选服务器的节点得分存在差异,此外,也不会对各个候选服务器的节点得分造成任何影响。
此外,在其他实施方式中,也可以任意选择两组差距较大的分值,分别作为亲和容器所在的候选服务器的亲和得分,以及不包含亲和容器的其他候选服务器的亲和得分。
以上,为各个候选服务器的、与上述三种业务关系对应的业务调度得分的具体实现方式的示例性说明。
另外,所述根据各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算各个候选服务器的资源调度得分的具体实现方式存在多种。
可选地,在一种具体实现方式中,所述待调度容器所请求的硬件资源,可以包括:所述待调度容器所请求的CPU核数和内存;
任一候选服务器的已用硬件资源,可以包括:该候选服务器已被占用的CPU核数和内存;
相应的,所述根据各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算各个候选服务器的资源调度得分,可以包括:
根据各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,利用资源调度计分公式,计算各个候选服务器的资源调度得分。
示例性的,资源调度计分公式为:
其中,Z为任一候选服务器的资源调度得分,cc为所述待调度容器所请求的CPU核数,cn为该候选服务器已被占用的CPU核数,mc为所述待调度容器所请求的内存,mn为该候选服务器已被占用的内存。
当然,硬件资源并不局限于此,在对容器进行调度时,还可考虑其他类型的硬件资源,如计算资源、存储资源以及输入输出I/O设备的资源。其中,存储资源包括内存和外存。此外,当硬件资源还包括其他类型的硬件资源时,也可以参照该资源调度计分公式的形式来计算。
另外,所述根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分的具体实现方法存在多种。
可选地,在一种实现方式中,任一候选服务器与预设服务器之间的网络通信指标,可以包括:该候选服务器与预设服务器之间的网络时延;
相应的,根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分,可以包括:
获取各个候选服务器到预设服务器的网络时延;
利用网络通信计分公式,计算各个候选服务器的网络通信得分;
其中,网络通信计分公式为:
上述公式中,X为任一候选服务器的网络通信得分,t为该候选服务器到所述预设服务器的网络时延;tmax为所述各个候选服务器到所述预设服务器的网络时延中的最大值;tmin为所述各个候选服务器到所述预设服务器的网络时延中的最小值。
在实际应用中,任一候选服务器到预设服务器的网络时延,可以通过测试的方式获得,如从候选服务器发送一数据包,并记录发送时间,然后确认预设服务器接收到数据包的接收时间,用接收时间减去发送时间,就得到了候选服务器到预设服务器的网络时延。
当然,网络通信指标并不限于网络时延,还可以包括:数据传输速率、误码率或吞吐量等中的一种或多种,关于数据传输速率、误码率或吞吐量的获取方式,本发明不做限定。
另外,所述针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分的具体实现方式存在多种。
可选地,在一种具体实现方式中,所述针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分,可以包括:
针对每一候选服务器,利用节点计分公式,计算该候选服务器的节点得分;其中,节点计分公式为:
其中,S为任一候选服务器的节点得分,A为该候选服务器的所述网络通信得分,B为该候选服务器的资源调度得分,为各种业务调度得分的加权求和所得的总分值,C为该候选服务器的任一种业务调度得分;x为网络通信得分的权重因子,y为资源调度得分的权重因子,z为任一种业务调度得分的权重因子,n为各类业务调度得分的种类数量。这里,各项权重因子可以实际的需求预先分配设置,从而可以灵活地调整调度容器时的偏好因素。
示例性的,当调度容器所利用的业务调度得分为:互斥得分、相近得分和亲和得分三种得分时,节点计分公式为:
S=A×x+B×y+C1×z1+C2×z2+C3×z3;
其中,S为任一候选服务器的节点得分,A为该候选服务器的所述网络通信得分,B为该候选服务器的资源调度得分,C1为互斥得分,C2为相近得分,C3为亲和得分;x为网络通信得分的权重因子,y为资源调度得分的权重因子,z1为互斥得分的权重因子,z2为相近得分的权重因子,z3为亲和得分的权重因子。
在实际应用中,网络通信得分、资源调度得分以及各种业务调度得分的分值的数量级可能不统一,而数量级较高的得分项可能会主导候选服务器的节点得分,从而无法真实的反映其他得分项为候选服务器的节点得分所带来的贡献。因此,在利用节点计分公式计算候选服务器的节点得分之前,可以将网络通信得分、资源调度得分以及各种业务调度得分分别归一化处理至小于等于1,这样,每种得分项的数量级相同,从而可以真实的反映各个得分项为候选服务器的节点得分所带来的贡献。例如,在计算互斥得分时,可以将候选服务器的每个已有容器与待调度容器的差异度中分值最低的差异度,除以各项差异度的极差,即除以分值最高的差异度与分值最低的差异度之差。然后将归一化后的差异度作为上述节点计分公式中的资源调度得分。同理,其他得分项的归一化处理也可以利用除以极差的方式来执行,此处不再赘述。
此外,在其他实施例中,如果容器调度装置强制限制了仅按照互斥关系和亲和关系来对容器进行调度,那么,在利用节点得分公式,计算各个候选服务器的节点得分时,可以将网络通信得分的权重因子、资源调度得分的权重因子,以及业务调度得分中的相近得分的权重因子均设置为0。当然,如果容器调度装置还做了其他调度方式的限定,也可以参照将权重因子设置为0的方式,来配合容器调度装置所限定的调度方式。
本发明实施例提供容器调度方法,计算各个候选服务器的网络通信得分、资源调度得分,以及业务调度得分,从而根据计算的各个得分计算各个候选服务器的节点得分,然后将待调度容器调度至得分最高的候选服务器。这样,在对软件应用的容器进行调度时,既兼顾了资源调度和业务需求调度两个方面,又考虑了网络通信情况,从而降低了网络通信情况对软件应用的运行效率的影响。并且,本发明实施例提供容器调度方法中,可以预先设置业务调度得分、资源调度得分和网络通信得分的权重因子,从而可以灵活地调整调度容器时的偏好因素。
相应于上述的一种容器调度方法,本发明实施例还提供了一种容器调度装置。如图2所示,本发明实施例提供的一种容器调度装置,包括确定模块201、业务调度得分计算模块202、资源调度得分计算模块203、网络通信得分计算模块204、节点得分计算模块205和调度模块206。
确定模块201,用于确定待调度容器,并确定待调度容器对应的各个候选服务器。
业务调度得分计算模块202,用于针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、待调度容器的标签和各个候选服务器的已有容器的标签,计算各个候选服务器的、与该种业务关系对应的业务调度得分。其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签。
资源调度得分计算模块203,用于根据各个候选服务器的已用硬件资源和待调度容器所请求的硬件资源,计算各个候选服务器的资源调度得分。
网络通信得分计算模块204,用于根据各个候选服务器与预设服务器之间的网络通信指标,计算各个候选服务器的网络通信得分。其中,预设服务器为:目标数据所在的数据源服务器,目标数据为在运行待调度容器时所需的数据。
节点得分计算模块205,用于针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分。
调度模块206,用于从各个候选服务器中,确定节点得分最高的候选服务器,并将待调度容器调度至节点得分最高的候选服务器。
可选地,所述业务关系,可以包括:互斥关系、相近关系以及亲和关系中的一种或多种;
相应的,互斥关系对应的业务调度得分为:互斥得分;相近关系对应的业务调度得分为:相近得分;亲和关系对应的业务调度得分为:亲和得分。
可选地,业务调度得分计算模块202具体用于:针对预设的至少一种业务关系中的互斥关系,按照第一预设计算方式,计算各个候选服务器的、与该互斥关系对应的互斥得分;
其中,所述第一预设计算方式包括:
针对各个候选服务器的每一已有容器,计算该已有容器与所述待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与所述待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断所述互斥关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第一业务规则,如果有,将所述第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将所述互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与所述待调度容器的差异度,按照下述方式计算:
判断该已有容器的镜像与所述待调度容器的镜像是否相同,以及该已有容器的标签与所述待调度容器的标签是否相同;
如果均相同,将该已有容器与所述待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与所述待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与所述待调度容器的差异度设置为第三差异度;
其中,第一差异度、第二差异度和第三差异度的大小关系为:第一差异度<第二差异度<第三差异度。
可选地,业务调度得分计算模块202具体用于:
针对预设的至少一种业务关系中的相近关系,按照第二预设计算方式,计算所述各个候选服务器的、与该相近关系对应的相近得分;
其中,所述第二预设计算方式包括:
判断所述相近关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将所述第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个所述相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为该候选服务器的参考网络时延;将所述参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,所述归一化分母为所述获取的网络时延中的最大值与最小值的差。
可选地,业务调度得分计算模块202具体用于:
针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算所述各个候选服务器的、与该亲和关系对应的亲和得分;
其中,所述第三预设计算方式包括:
判断所述亲和关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将所述第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将所述亲和容器所在的候选服务器的亲和得分设置为1,将不包含所述亲和容器的其他候选服务器的亲和得分设置为0。
可选地,待调度容器所请求的硬件资源,可以包括:待调度容器所请求的CPU核数和内存;任一候选服务器的已用硬件资源,可以包括:该候选服务器已被占用的CPU核数和内存;
相应的,资源调度得分计算模块203,可以具体用于:利用资源调度计分公式,计算各个候选服务器的资源调度得分。其中,资源调度计分公式为:
其中,Z为任一候选服务器的资源调度得分,cc为待调度容器所请求的CPU核数,cn为该候选服务器已被占用的CPU核数,mc为待调度容器所请求的内存,mn为该候选服务器已被占用的内存。
可选地,任一候选服务器与预设服务器之间的网络通信指标,可以包括该候选服务器与预设服务器之间的网络时延;
相应的,网络通信得分计算模块204,可以包括:网络时延获取子模块和网络通信得分计算子模块;
其中,网络时延获取子模块,用于获取各个候选服务器到预设服务器的网络时延;
网络通信得分计算子模块,用于利用网络通信计分公式,计算各个候选服务器的网络通信得分;其中,网络通信计分公式为:
其中,X为任一候选服务器的网络通信得分,t为该候选服务器到预设服务器的网络时延;tmax为各个候选服务器到预设服务器的网络时延中的最大值;tmin为各个候选服务器到预设服务器的网络时延中的最小值。
可选地,节点得分计算模块205具体用于:针对每一候选服务器,利用节点计分公式,计算该候选服务器的节点得分;其中,节点计分公式为:
其中,S为任一候选服务器的节点得分,A为该候选服务器的网络通信得分,B为该候选服务器的资源调度得分,为各种业务调度得分的加权求和所得的总分值,C为该候选服务器的任一种业务调度得分;x为网络通信得分的权重因子,y为资源调度得分的权重因子,z为任一种业务调度得分的权重因子,n为各类资源调度得分的种类数量。
本发明实施例提供容器调度装置,计算各个候选服务器的网络通信得分、资源调度得分,以及业务调度得分,从而根据计算的各个得分计算各个候选服务器的节点得分,然后将待调度容器调度至得分最高的候选服务器。这样,在对软件应用的容器进行调度时,既兼顾了资源调度和业务需求调度两个方面,又考虑了网络通信情况,从而降低了网络通信情况对软件应用的运行效率的影响。并且,本发明实施例提供容器调度装置,可以预先设置业务调度得分、资源调度得分和网络通信得分的权重因子,从而可以灵活地调整调度容器时的偏好因素。
本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现上述任一种容器调度方法所述的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,当计算机程序被处理器执行时,可以实现上述任一种容器调度的方法所述的方法步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (5)
1.一种容器调度方法,其特征在于,包括:
确定待调度容器,并确定所述待调度容器对应的各个候选服务器;
针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分;其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签;
根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分;
根据所述各个候选服务器与预设服务器之间的网络通信指标,计算所述各个候选服务器的网络通信得分;所述预设服务器为:目标数据所在的数据源服务器,所述目标数据为在运行所述待调度容器时所需的数据;
针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分;
从所述各个候选服务器中,确定节点得分最高的候选服务器,并将所述待调度容器调度至所述节点得分最高的候选服务器;
所述业务关系,包括:互斥关系、相近关系以及亲和关系中的一种或多种;
所述互斥关系对应的业务调度得分为:互斥得分;
所述相近关系对应的业务调度得分为:相近得分;
所述亲和关系对应的业务调度得分为:亲和得分;
所述针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分,包括:
针对预设的至少一种业务关系中的互斥关系,按照第一预设计算方式,计算所述各个候选服务器的、与该互斥关系对应的互斥得分;
其中,所述第一预设计算方式包括:
针对各个候选服务器的每一已有容器,计算该已有容器与所述待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与所述待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断所述互斥关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第一业务规则,如果有,将所述第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将所述互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与所述待调度容器的差异度,按照下述方式计算:
判断该已有容器的镜像与所述待调度容器的镜像是否相同,以及该已有容器的标签与所述待调度容器的标签是否相同;
如果均相同,将该已有容器与所述待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与所述待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与所述待调度容器的差异度设置为第三差异度;
其中,第一差异度、第二差异度和第三差异度的大小关系为:第一差异度<第二差异度<第三差异度;
和/或针对预设的至少一种业务关系中的相近关系,按照第二预设计算方式,计算所述各个候选服务器的、与该相近关系对应的相近得分;
其中,所述第二预设计算方式包括:
判断所述相近关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将所述第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个所述相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为该候选服务器的参考网络时延;将所述参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,所述归一化分母为所述获取的网络时延中的最大值与最小值的差;
和/或针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算所述各个候选服务器的、与该亲和关系对应的亲和得分;
其中,所述第三预设计算方式包括:
判断所述亲和关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将所述第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将所述亲和容器所在的候选服务器的亲和得分设置为1,将不包含所述亲和容器的其他候选服务器的亲和得分设置为0;
所述根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分,包括:
将待调度容器调度至可用硬件资源充足的候选服务器上,则待调度容器的运行速度加快,将待调度容器调度至可用硬件资源紧张或者不足的候选服务器上,则待调度容器的运行速度减慢。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分,包括:
针对每一候选服务器,利用节点计分公式,计算该候选服务器的节点得分;其中,所述节点计分公式为:
4.一种容器调度装置,其特征在于,包括:
确定模块,用于确定待调度容器,并确定所述待调度容器对应的各个候选服务器;
业务调度得分计算模块,用于针对预设的至少一种业务关系中每一种业务关系,根据该种业务关系对应的至少一条业务规则、所述待调度容器的标签和所述各个候选服务器的已有容器的标签,计算所述各个候选服务器的、与该种业务关系对应的业务调度得分;其中,任一条业务规则所记录的内容为符合该业务关系的一对容器的标签;
资源调度得分计算模块,用于根据所述各个候选服务器的已用硬件资源和所述待调度容器所请求的硬件资源,计算所述各个候选服务器的资源调度得分;
网络通信得分计算模块,用于根据所述各个候选服务器与预设服务器之间的网络通信指标,计算所述各个候选服务器的网络通信得分;所述预设服务器为:目标数据所在的数据源服务器,所述目标数据为在运行所述待调度容器时所需的数据;
节点得分计算模块,用于针对每一候选服务器,根据该候选服务器的各种业务调度得分、资源调度得分以及网络通信得分,计算该候选服务器的节点得分;
调度模块,用于从所述各个候选服务器中,确定节点得分最高的候选服务器,并将所述待调度容器调度至所述节点得分最高的候选服务器;
所述业务关系,包括:互斥关系、相近关系以及亲和关系中的一种或多种;
所述互斥关系对应的业务调度得分为:互斥得分;所述相近关系对应的业务调度得分为:相近得分;所述亲和关系对应的业务调度得分为:亲和得分;
所述业务调度得分计算模块,具体用于:针对预设的至少一种业务关系中的互斥关系,按照第一预设计算方式,计算各个候选服务器的、与该互斥关系对应的互斥得分;
其中,所述第一预设计算方式包括:
针对各个候选服务器的每一已有容器,计算该已有容器与所述待调度容器的差异度;
针对每一候选服务器,将该候选服务器的每个已有容器与所述待调度容器的差异度中,分值最低的差异度作为该候选服务器的互斥得分;
判断所述互斥关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第一业务规则,如果有,将所述第一业务规则中另一个标签所对应的已有容器,确定为互斥容器,并将所述互斥容器所在的候选服务器的互斥得分调整为0;
其中,任一已有容器与所述待调度容器的差异度,按照下述方式计算:
判断该已有容器的镜像与所述待调度容器的镜像是否相同,以及该已有容器的标签与所述待调度容器的标签是否相同;
如果均相同,将该已有容器与所述待调度容器的差异度设置为第一差异度;
如果只有一个相同,将该已有容器与所述待调度容器的差异度设置为第二差异度;
如果均不相同,将该已有容器与所述待调度容器的差异度设置为第三差异度;
其中,第一差异度、第二差异度和第三差异度的大小关系为:第一差异度<第二差异度<第三差异度;
和/或针对预设的至少一种业务关系中的相近关系,按照第二预设计算方式,计算所述各个候选服务器的、与该相近关系对应的相近得分;
其中,所述第二预设计算方式包括:
判断所述相近关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第二业务规则,如果没有,将各个候选服务器的相近得分均设置为0,如果有,将所述第二业务规则中另一个标签所对应的已有容器,确定为相近容器;
针对每一候选服务器,确定该候选服务器与每个所述相近容器所在候选服务器的网络时延,将获取的网络时延中的最小值作为该候选服务器的参考网络时延;将所述参考网络时延除以归一化分母后的值作为该候选服务器的相近得分;其中,所述归一化分母为所述获取的网络时延中的最大值与最小值的差;
和/或针对预设的至少一种业务关系中的亲和关系,按照第三预设计算方式,计算所述各个候选服务器的、与该亲和关系对应的亲和得分;
其中,所述第三预设计算方式包括:
判断所述亲和关系对应的至少一条业务规则中,是否存在记录有所述待调度容器的标签的第三业务规则,如果没有,将各个候选服务器的亲和得分均设置为0,如果有,将所述第三业务规则中另一个标签所对应的已有容器,确定为亲和容器;
将所述亲和容器所在的候选服务器的亲和得分设置为1,将不包含所述亲和容器的其他候选服务器的亲和得分设置为0
所述资源调度得分计算模块,具体用于:
将待调度容器调度至可用硬件资源充足的候选服务器上,则待调度容器的运行速度加快,将待调度容器调度至可用硬件资源紧张或者不足的候选服务器上,则待调度容器的运行速度减慢。
5.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811426360.2A CN109582452B (zh) | 2018-11-27 | 2018-11-27 | 一种容器调度方法、调度装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811426360.2A CN109582452B (zh) | 2018-11-27 | 2018-11-27 | 一种容器调度方法、调度装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582452A CN109582452A (zh) | 2019-04-05 |
CN109582452B true CN109582452B (zh) | 2021-03-02 |
Family
ID=65924513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811426360.2A Active CN109582452B (zh) | 2018-11-27 | 2018-11-27 | 一种容器调度方法、调度装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582452B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413380A (zh) * | 2019-08-02 | 2019-11-05 | 北京智芯微电子科技有限公司 | 容器集群的调度方法 |
CN110968424B (zh) * | 2019-09-12 | 2023-04-07 | 广东浪潮大数据研究有限公司 | 一种基于K8s的资源调度方法、装置和存储介质 |
CN113037800B (zh) * | 2019-12-09 | 2024-03-05 | 华为云计算技术有限公司 | 作业调度方法以及作业调度装置 |
CN113032112A (zh) * | 2019-12-25 | 2021-06-25 | 上海商汤智能科技有限公司 | 资源调度方法及装置、电子设备和存储介质 |
CN111614484B (zh) * | 2020-04-13 | 2021-11-02 | 网宿科技股份有限公司 | 一种节点流量的调入、恢复方法、系统及中心服务器 |
CN112968897B (zh) * | 2021-02-25 | 2022-04-08 | 浙江清华长三角研究院 | 一种在去中心化系统中运行的容器计算方法 |
CN113934515A (zh) * | 2021-12-17 | 2022-01-14 | 飞诺门阵(北京)科技有限公司 | 一种基于数据域和计算域的容器组调度方法、装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866382B (zh) * | 2014-02-21 | 2019-02-22 | 中国电信股份有限公司 | 虚拟资源调度方法与装置 |
US20160378545A1 (en) * | 2015-05-10 | 2016-12-29 | Apl Software Inc. | Methods and architecture for enhanced computer performance |
US10015278B2 (en) * | 2015-09-11 | 2018-07-03 | Verizon Patent And Licensing Inc. | Adaptive scheduling and orchestration in a networked environment |
CN106027643B (zh) * | 2016-05-18 | 2018-10-23 | 无锡华云数据技术服务有限公司 | 一种基于Kubernetes容器集群管理系统的资源调度方法 |
US20180203736A1 (en) * | 2017-01-13 | 2018-07-19 | Red Hat, Inc. | Affinity based hierarchical container scheduling |
US10614117B2 (en) * | 2017-03-21 | 2020-04-07 | International Business Machines Corporation | Sharing container images between mulitple hosts through container orchestration |
CN107291551B (zh) * | 2017-06-22 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 一种容器的负载均衡调度方法和装置 |
CN107315643A (zh) * | 2017-06-23 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种容器资源调度方法 |
CN107734052B (zh) * | 2017-11-02 | 2019-12-10 | 华南理工大学 | 面向组件依赖的负载均衡容器调度方法 |
CN108829509A (zh) * | 2018-05-03 | 2018-11-16 | 山东汇贸电子口岸有限公司 | 基于国产cpu和操作系统的分布式容器集群框架资源管理方法 |
-
2018
- 2018-11-27 CN CN201811426360.2A patent/CN109582452B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109582452A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582452B (zh) | 一种容器调度方法、调度装置及电子设备 | |
US20210326729A1 (en) | Recommendation Model Training Method and Related Apparatus | |
US10824483B2 (en) | Application programming interface scoring, ranking and selection | |
US10831530B2 (en) | Secure consensus-based endorsement for self-monitoring blockchain | |
US20180247265A1 (en) | Task grouping method and apparatus, electronic device, and computer storage medium | |
US11637889B2 (en) | Configuration recommendation for a microservice architecture | |
TWI727467B (zh) | 聯盟鏈的可信度驗證方法、系統、裝置及設備 | |
WO2020042290A1 (zh) | 风控方法、装置及计算机可读存储介质 | |
CN109413175B (zh) | 一种信息处理方法、装置及电子设备 | |
WO2019120217A1 (zh) | 一种令牌获取方法、装置、服务器、用户终端及介质 | |
CN111327647B (zh) | 一种容器对外提供服务的方法、装置及电子设备 | |
US20210295231A1 (en) | Machine learning model training outliers | |
US11586480B2 (en) | Edge computing workload balancing | |
CN111562884B (zh) | 一种数据存储方法、装置及电子设备 | |
US11164086B2 (en) | Real time ensemble scoring optimization | |
US11755954B2 (en) | Scheduled federated learning for enhanced search | |
Lera et al. | Analyzing the applicability of a multi-criteria decision method in fog computing placement problem | |
US9311146B2 (en) | Strategic placement of jobs for spatial elasticity in a high-performance computing environment | |
CN109862134B (zh) | 一种ip地址的租约时间配置方法和系统及dhcp客户端 | |
CN116962419A (zh) | 服务器分配策略的生成方法及装置、电子设备及存储介质 | |
CN111338607A (zh) | 一种用于测试的业务数据的选择方法、装置及电子设备 | |
CN112000657A (zh) | 数据管理方法、装置、服务器及存储介质 | |
CN113516065B (zh) | 基于区块链的资料权重测算方法、装置、服务器及存储介质 | |
CN105703964A (zh) | 一种在线应用系统测试方法与设备 | |
CN115587392B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |