CN111124619B - 一种面向二次调度的容器调度方法 - Google Patents
一种面向二次调度的容器调度方法 Download PDFInfo
- Publication number
- CN111124619B CN111124619B CN201911358582.XA CN201911358582A CN111124619B CN 111124619 B CN111124619 B CN 111124619B CN 201911358582 A CN201911358582 A CN 201911358582A CN 111124619 B CN111124619 B CN 111124619B
- Authority
- CN
- China
- Prior art keywords
- container
- scheduling
- node
- solution
- containers
- 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向二次调度的容器调度方法,该方法实时监控容器云平台上每个容器、节点和服务的实例,实时获取它们的实例运行状态、资源数据与亲和性特征,批量监听增加或减少容器的调度请求,基于贪心、模拟退火和遗传算法,采用资源均衡、亲和满足、服务容灾等策略,给出增加或减少容器操作要在哪个节点上进行的结果。本发明针对当前容器云平台默认调度器不支持删除容器操作、不支持批量调度、短期多个调度请求效果不佳的问题,引入了针对删除容器操作的资源均衡、服务容灾策略,以及面向容器云平台的批量调度优化算法,以满足二次调度系统的调度需求,改善平台的调度效果。
Description
技术领域
本发明属于云计算领域,具体属于容器云平台智能调度范畴,尤其涉及一种面向二次调度的容器调度方法。
背景技术
近些年来,随着云计算的发展,以Docker为代表的一种操作系统层虚拟化的技术——容器化,逐渐普及开来。从大型上市公司到创业公司,都在对机器集群进行容器化的改造。容器化能带来众多的好处,例如占用少、弹性增容、性能、即时迁移等。
渐渐地,要管理的容器越来越多,容器云平台成为了重要的需求。常见的容器云平台有:Docker公司于2014年开发的Swarm,脱胎于谷歌公司自用的Borg系统的K8s,国内阿里巴巴公司基于Pouch容器的Sigma等等。
以市场主流地位的容器集群管理平台Kubernetes(简称K8s)为例,谷歌在2014年开放了K8s项目,它建立在谷歌拥有大量运行生产工作量的十五年经验的基础上,结合了社区中的最佳创意和实践。它是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,可以声明性配置和自动化,协调计算、网络和存储基础架构,拥有类似平台即服务(PaaS)的简单性、基础架构即服务(IaaS)的灵活性和支持跨基础架构提供商的可移植性。它有庞大且快速发展的生态系统,其服务、支持和工具被广泛使用。
然而,随着互联网公司K8s集群规模的增长,集群可能出现资源利用率呈现时间上、空间上的不平衡,造成了资源和成本的浪费。重新设计和实现更高效的容器云平台的调度系统,在合适的场合进行二次调度,可以改善这种状况。一种包含二次调度功能的容器云平台调度系统结构由两部分组成:一部分是调控模块,负责分析应用的流量压力和集群资源状态,做出资源扩缩容和容器增删等二次调度决策;另一部分是调度器(即容器调度方法的实现),负责为新增加和要删除的容器选择不同的节点,以达到资源均衡等目的。如何在这里选用合适的调度器,成为了一个问题。
虽然K8s已经经过了多年的发展和迭代更新,但是它的调度器Kube-scheduler在上述的场合下,仍然不能满足所有的需求。它仅有逐个pod(调度的最小单位,包含一个或多个容器)调度的方式,不支持批量调度,没有利用调度请求队列里的信息,这在两种场景下尤为明显:二次调度系统,短时间内发出较多的pod调度请求;有些混部系统的实现对离线任务容器的调度即时性要求不高,有足够的时间优化调整放置方案。其次,它仅面向初次调度而设计,开发二次调度系统时,往往自带调度器不能满足需求,例如不支持在删除pod时使用优选策略,因为初次调度是没有删除pod这个需求的,更没有使用更复杂的调度器优选策略。
发明内容
本发明的目的在于针对现有技术的不足,提供一种面向二次调度的容器调度方法。用于解决二次调度系统中,容器云平台默认调度器不支持删除容器策略、不支持批量调度、短期多个调度请求效果不佳的问题。
本发明的目的是通过以下技术方案来实现的:一种面向二次调度的容器调度方法,包括以下步骤:
(1)从二次调度系统监听容器调度请求;
(2)获取容器云平台的实例数据,获取节点、服务、容器的实例运行状态,获取节点、服务、容器的资源数据与亲和性特征;
(3)触发运行设定的调度器,采用贪心算法、模拟退火算法、遗传算法中的一种进行容器调度,得到容器调度的逐个结果或批量结果;
所述容器调度请求包括要调度的容器的操作、容器服务类型、操作数量;所述要调度的容器的操作包括增加容器、减少容器两种;
所述节点资源数据包括CPU、内存和硬盘的使用率、可分配量、总容量、可分配容器数量和已有容器数量;所述节点亲和性特征包括标签、端口占用情况、节点状态标记、节点容器避免标记、污点属性;所述服务资源数据包括该服务下容器的列表、资源敏感类型;所述服务亲和性特征包括服务间亲和性和服务间反亲和性;所述容器资源数据包括CPU和内存的请求量、使用量;所述容器亲和性特征包括节点选择器、容器标签、节点亲和性、容器亲和性、容器反亲和性、需要的镜像列表、需要的端口、污点容忍属性。
进一步地,所述步骤(3)中采用贪心算法进行容器调度包括以下步骤:
(2.1)逐个处理容器调度请求,根据要调度的容器的操作对节点进行预选;
(2.2)对步骤(2.1)中预选通过的节点进行打分,选择得分最高的节点。
进一步地,所述步骤(3)中采用模拟退火算法进行容器调度包括以下步骤:
(3.1)读入容器调度请求序列,为每个容器随机分配一个满足该容器预选条件的节点,将该分配方案作为解S={s1,s2,s3,...,sn},并设定初始温度T、终止分数Wenough、退火系数r、最低温度Tmin;其中,si为容器调度操作,表示第i个容器分配的节点;n表示序列中容器调度请求总数;
(3.2)首先,从当前解S中,随机选取一个容器调度操作sj,将sj视为未执行,s1~sj-1和sj+1~sn视为已执行;在这个集群状态下对第j个容器调度请求进行节点的预选,在预选通过的节点中随机选取一个作为s′j,替换当前解S的sj,得到新解S′={s1,s2,s3,...,sj-1,s′j,sj+1,...,sn};然后,对s′j和sj进行打分,计算s′j减去sj的分差ΔW;如果ΔW>0,接受新解S′;否则,以概率eΔW/T接受新解S′;
(3.3)此时,如果温度T大于最低温度Tmin且解的得分W小于终止分数Wenough,则更新温度T=T*r,跳转至步骤(3.2)进行下一轮循环迭代;否则,停止迭代得到最终解。
进一步地,所述步骤(3)中采用遗传算法进行容器调度包括以下步骤:
(4.1)读入容器调度请求序列,为每个容器随机分配一个满足该容器预选条件的节点,将该分配方案作为一个解,并随机生成l个初始解,构成一个初始种群M={S1,S2,S3,...,Sl},其中Si表示第i个解,l表示种群的大小;设定算法迭代次数、近亲比率r、交叉概率pc、变异概率pm;
(4.2)去掉种群中的重复可行解,更新l的值;
(4.3)将当前种群中的解随机两两配对,将每一对解以交叉概率pc进行染色体交叉;所述染色体交叉为:两个解分别为Sa={sa,1,sa,2,sa,3,...,sa,n}、Sb={sb,1,sb,2,sb,3,...,sb,n};当时,放弃交叉;否则,从1~n中随机选择一个位置k,将两个解中第k+1~n个容器分配的节点对调,变成S′a={sa,1,sa,2,sa,3,...,sa,k,sb,k+1,...,sb,n}和S′b={sb,1,sb,2,sb,3,...,sb,k,sa,k+1,...,sa,n};
(4.4)对当前种群中每一个解以变异概率pm执行和步骤(3.2)相同的操作;
(4.5)计算每个解的得分;从当前种群中抽取两个解,保留两者中得分较高的解作为下一代种群的解;其中,第j个解Sj被抽中的概率为Wj为解Sj的得分,/>为对所有解的得分求和;
(4.6)重复执行l次步骤(4.5),得到下一代种群;
(4.7)以步骤(4.6)得到的下一代种群为当前种群,重复执行步骤(4.2)~(4.6),直至达到步骤(4.1)设定的算法迭代次数为止,最后将种群里得分最高的解作为最终调度方案。
进一步地,所述预选规则为:
(5.1)增加容器时,检查节点的运行状态,CPU、内存和硬盘的压力,检查容器间亲和性与反亲和性和对节点的硬约束亲和性,检查节点选择器,检查污点与容忍条件,检查资源是否充足、端口是否冲突;
(5.2)减少容器时,检查节点上是否有该类型的容器。
进一步地,所述打分规则为:根据多种优选策略分别对节点打分,每个节点的最终得分为:
其中,pi表示节点是否通过了预选阶段,通过为1否则为0;λi表示第i个优选策略的权重;Wi表示第i个优选策略的得分;m表示优选策略总数;所述解的得分为解中所有容器的调度节点的得分之和。
进一步地,所述优选策略为:
(7.1)当增加容器时,使用的优选策略为节点内资源均衡、镜像本地化、容器间软亲和约束、节点软约束亲和性、节点避免策略、节点间资源均衡策略、服务容灾策略、软约束污点容忍策略中的一种或几种;
(7.2)减少容器时,使用的优选策略为节点内资源均衡策略,节点间资源均衡策略,服务容灾策略中的一种或几种。
本发明的有益效果是:本发明提供了一种面向二次调度的容器调度方法,该方法引入了针对删除容器操作的资源均衡、服务容灾策略,以及面向容器云平台的批量调度优化算法,满足了二次调度系统的调度需求,改善平台的调度效果,解决了二次调度系统中,容器云平台默认调度器不支持删除容器操作、不支持批量调度、短期多个调度请求效果不佳的问题,提高了容器调度的效果。
附图说明
图1为整体流程图;
图2为贪心算法示意图;
图3为贪心算法流程图;
图4为贪心算法预选阶段流程图;
图5为贪心算法优选阶段流程图;
图6为模拟退火算法流程图;
图7为遗传算法流程图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。本发明容器调度方法的流程图如图1所示,包括以下步骤:
(1)从二次调度系统监听到容器调度请求,具体如下:
(11)请求包含要调度的容器的操作、容器服务类型、操作数量。
(12)调度请求可以是单个请求,也可以是连续多个请求。
(13)要调度的容器的操作包含增加和减少,容器服务类型包括容器的所属命名空间和服务名。
(2)自动化获取容器云平台的实例数据,获取节点、服务、容器的实例运行状态,获取它们的资源数据与亲和性特征。具体如下:
(21)获取的节点资源数据包括CPU、内存和硬盘使用率、可分配量、总容量,可分配容器数量和已有容器数量。
(22)获取的节点亲和性特征包括标签、端口占用情况、节点状态标记、节点容器避免标记、污点属性。
(23)获取的服务资源数据包括其下容器的列表、资源敏感类型。
(24)获取的服务亲和性特征包括服务间亲和性和服务间反亲和性。
(25)获取的容器资源数据包括CPU和内存的请求量、使用量。
(26)获取的容器亲和性特征包括节点选择器、容器标签、节点亲和性、容器亲和性、容器反亲和性、需要的镜像列表、需要的端口、污点容忍属性。
(3)触发运行设定的调度器,选择贪心、模拟退火和遗传算法之一,给出容器调度的逐个结果或批量结果。
(31)如图2~5所示,贪心算法使用逐个调度流程,调度器每次只处理一个容器调度请求,经过预选阶段处理后,给符合预选要求的各个节点使用优选策略打分,选择最高的得分的节点,步骤如下:
(311)增加容器时,检查节点的运行状态,CPU、内存和硬盘的压力,检查容器间亲和性与反亲和性和对节点的硬约束亲和性,检查节点选择器,检查污点与容忍条件,检查资源是否充足、端口是否冲突。
(3111)节点状态检查:排除未就绪、网络不可用或被标记为不可调度的节点。
(3112)CPU压力检查:如果新容器的服务质量等级较高(高于用户设定的阈值),则排除处于CPU压力状态(与CPU利用率有关,一般指CPU利用率大于60%)的节点。
(3113)内存压力检查:如果新容器的服务质量等级较高(高于用户设定的阈值),则排除处于内存压力状态(与内存使用量有关,一般指内存使用量大于60%)的节点。
(3114)硬盘压力检查:排除处于硬盘压力状态(与硬盘使用量有关,一般指硬盘使用量大于60%)的节点,否则新容器会被节点上的Kubelet进程驱逐。
(3115)进程分配压力检查,排除处于进程分配压力状态(进程个数大于用户配置的阈值)的节点。
(3116)容器间硬约束亲和性检查,新容器需要满足节点上已有容器的硬约束反亲和性,同时也要满足新容器本身的硬约束亲和性与反亲和性。
(3117)容器暴露主机端口检查,排除新容器需要暴露的端口已经被已有容器占用的节点。
(3118)最低资源满足检查,节点余下可分配的资源需要满足新容器需要的最低cpu和内存请求。
(3119)节点选择器检查,如果容器设置了对节点的选择器或对节点的硬约束亲和性,则需要节点满足对应的域描述的要求。
(31110)污点容忍检查,对于被标记上污点的节点,只有节点上所有类型的污点属于新容器可容忍污点类型的时候,此节点才不会被排除。
(312)减少容器时,检查节点上是否有该类型的容器。预选通过的节点才能进入下一阶段。
(313)增加容器时,根据多种策略分别对节点打分,设定不同策略的权重,得到加权的总得分。优选策略包括:节点内资源均衡、镜像本地化、容器间软亲和约束、节点软约束亲和性、节点避免策略、节点间资源均衡策略、服务容灾策略、软约束污点容忍策略。减少容器时,根据多种策略分别对节点打分,设定不同策略的权重,得到加权的总得分。使用的优选策略包括:节点内资源均衡策略,节点间资源均衡策略,服务容灾策略。
(3131)节点内资源均衡策略,节点分配此容器后,如果各项资源分配率相差很大,节点得分会变低。
(3132)镜像本地化策略,节点上已有的镜像越多,下载镜像的网络成本和存储成本越低,节点得分越高。
(3133)容器间软亲和约束策略,与预选约束的容器间硬约束亲和性检查类似,但是软亲和不要求一定满足,只是以一定权重影响最终得分。
(3134)节点软约束亲和性策略,与节点的硬约束亲和性类似。
(3135)节点负载预测策略,根据下个时间片里节点的负载趋势,提前调整节点的优选得分。
(3136)节点避免策略,有些节点可能标记了要特意尽量避开一些容器,但是这是一个软约束,实在无法避开时也可以接受。
(3137)节点间资源均衡策略,节点分配此容器后,剩余资源比例约高,节点得分越高。
(3138)服务容灾策略,如果同一个服务大部分容器都在少数几个节点上,那么节点宕机、故障造成的后果会较为严重,因此需要分散服务的容器到不同的节点上,该节点拥有此服务下容器越多,得分越低。
(3139)软约束污点容忍策略,与预选策略的污点容忍检查类似,但只是以一定权重影响最终得分。
(314)每个节点的最终得分表示为pi表示节点是否通过了预选阶段,通过为1否则为0,λi表示第i个策略的权重(由用户自主设置),Wi表示该策略的得分,m表示策略总数。
(32)如图6所示模拟退火算法使用批量调度流程,调度器每次可以读入多个容器调度请求,每个解包含所有容器的调度节点结果,不断迭代生成符合预选条件的临近解,最后得到一个较高的解得分。
(321)生成初始解:生成一个可行的解作为当前解输入迭代过程,并定义一个大数作为初始温度。
(3211)对于一个容器调度请求的输入序列,给其中每一个容器,在满足该容器所有预选条件的节点中,随机分配一个节点,每个可行的分配方案称为一个可行解。
(3212)每个可行解表达为S={s1,s2,s3,...,sn},si表示一个容器操作:从第1个到第i-1个容器操作完成后,第i个容器操作选择的节点是si,n表示容器调度请求总数。初始温度表示为T(通常设为100)。
(322)迭代过程,不断改变解,迭代生成新的解。
(3221)由一个产生函数从当前解产生一个位于解空间的新解,产生新解的方法如下。
(32211)对于当前解S={s1,s2,s3,...,sn},随机选取一个容器调度操作sj,假定sj尚未执行,s1~sj-1和sj+1~sn都已执行,计算此时的集群状态缓存并保存为Ck,k表示迭代次数。
(32212)在这个集群状态下对第j个容器调度请求进行节点的预选阶段,在预选通过的节点中随机选取一个,生成s′j,替换当前解的sj,得到新解S′={s1,s2,s3,...,sj-1,s′j,sj+1,...,sn}。
(3222)计算与新解所对应的目标函数差,计算的方法是,读取集群状态缓存Ck,在Ck下只计算新旧两解中s′j与sj的优选的分差ΔW作为最后的目标函数差,忽略其他容器操作。
(3223)如果ΔW>0,接受新解S′;否则,以概率eΔW/T接受新解S′。
(3224)温度T自乘以退火系数r,循环进行下一轮(k+1轮)迭代。
(323)每次迭代完成后检查温度T是否到达最低温度Tmin,或者解的实际得分W满足W>Wenough,已经足够高,此时停止迭代。
(33)如图7所示,遗传算法使用批量调度流程,调度器每次可以读入多个容器调度请求,每个解包含所有容器的调度节点结果,生成符合预选条件的解的集合,在解的集合中不断地淘汰、生成新的解,最后得到一个较高得分的解的集合,选取最高得分的解。
(331)生成初始种群:多次重复生成初始解过程,形成多个可行解,构成一个初始种群,表示为M={S1,S2,S3,...,Sl},Si表示可行解,l表示种群的大小。设置算法迭代次数。
(332)自然选择,淘汰重复的解。利用优选策略,求出种群每个解Si的优选策略得分Wi,定义为适应度函数值。
(333)染色体交叉,在当前种群中,将解两两配对,每一对解以交叉概率pc进行染色体交叉,交叉的方法如下:
(3331)当两个解Sa={sa,1,sa,2,sa,3,...,sa,n}和Sb={sb,1,sb,2,sb,3,...,sb,n}中的容器操作相等的比例超过近亲比率(范围为0.3-0.6),即时,放弃交叉。
(3332)如果未放弃交叉,从1~n中随机选择一个位置k,两个解在这个位置之后的pod分配的节点对调,变成S′a={sa,1,sa,2,sa,3,...,sa,k,sb,k+1,...,sb,n}和S′b={sb,1,sb,2,sb,3,...,sb,k,sa,k+1,...,sa,n}。
(334)变异:在当前种群中,每一个解以变异概率pm进行变异,变异的方法与模拟退火生成新解的方法相同。
(335)生成新的一代种群,以概率抽取当前种群中解,解Sj被抽取到的概率为每次抽取2个,选取其中得分高的那一个加入下一代种群,重复抽取过程,直至下一代种群的大小达到l。
(336)终止:重复上述(332)~(335)步骤,直至满足设定的循环次数为止,最后选择种群里得分Wi最高的Si最为最终选择调度方案。
Claims (6)
1.一种面向二次调度的容器调度方法,其特征在于,包括以下步骤:
(1)从二次调度系统监听容器调度请求;
(2)获取容器云平台的实例数据,获取节点、服务、容器的实例运行状态,获取节点、服务、容器的资源数据与亲和性特征;
(3)触发运行设定的调度器,采用贪心算法、模拟退火算法、遗传算法中的一种进行容器调度,得到容器调度的逐个结果或批量结果;
所述容器调度请求包括要调度的容器的操作、容器服务类型、操作数量;所述要调度的容器的操作包括增加容器、减少容器;
所述节点资源数据包括CPU、内存和硬盘的使用率、可分配量、总容量、可分配容器数量和已有容器数量;所述节点亲和性特征包括标签、端口占用情况、节点状态标记、节点容器避免标记、污点属性;所述服务资源数据包括该服务下容器的列表、资源敏感类型;所述服务亲和性特征包括服务间亲和性和服务间反亲和性;所述容器资源数据包括CPU和内存的请求量、使用量;所述容器亲和性特征包括节点选择器、容器标签、节点亲和性、容器亲和性、容器反亲和性、需要的镜像列表、需要的端口、污点容忍属性;
所述步骤(3)中采用模拟退火算法进行容器调度包括以下步骤:
(3.1)读入容器调度请求序列,为每个容器随机分配一个满足该容器预选条件的节点,将该分配方案作为解S={s1,s2,s3,…,sn},并设定初始温度T、终止分数Wenough、退火系数r、最低温度Tmin;其中,si为容器调度操作,表示第i个容器分配的节点;n表示序列中容器调度请求总数;
(3.2)首先,从当前解S中,随机选取一个容器调度操作sj,将sj视为未执行,s1~sj-1和sj+1~sn视为已执行;在这个集群状态下对第j个容器调度请求进行节点的预选,在预选通过的节点中随机选取一个作为s′j,替换当前解S的sj,得到新解S′={s1,s2,s3,…,sj-1,s′j,sj+1,…,sn};然后,对s′j和sj进行打分,计算s′j减去sj的分差ΔW;如果ΔW>0,接受新解S′;否则,以概率eΔW/T接受新解S′;
(3.3)此时,如果温度T大于最低温度Tmin且解的得分W小于终止分数Wenough,则更新温度T=T*r,跳转至步骤(3.2)进行下一轮循环迭代;否则,停止迭代得到最终解。
2.根据权利要求1所述面向二次调度的容器调度方法,其特征在于,所述步骤(3)中采用贪心算法进行容器调度包括以下步骤:
(2.1)逐个处理容器调度请求,根据要调度的容器的操作对节点进行预选;
(2.2)对步骤(2.1)中预选通过的节点进行打分,选择得分最高的节点作为调度节点。
3.根据权利要求1所述面向二次调度的容器调度方法,其特征在于,所述步骤(3)中采用遗传算法进行容器调度包括以下步骤:
(4.1)读入容器调度请求序列,为每个容器随机分配一个满足该容器预选条件的节点,将该分配方案作为一个解,并随机生成l个初始解,构成一个初始种群M={S1,S2,S3,…,Sl},其中Si表示第i个解,l表示种群的大小;设定算法迭代次数、近亲比率r、交叉概率pc、变异概率pm;
(4.2)去掉种群中的重复可行解,更新l的值;
(4.3)将当前种群中的解随机两两配对,将每一对解以交叉概率pc进行染色体交叉;所述染色体交叉为:两个解分别为Sa={sa,1,sa,2,sa,3,…,sa,n}、Sb={sb,1,sb,2,sb,3,…,sb,n};当时,放弃交叉;否则,从1~n中随机选择一个位置k,将两个解中第k+1~n个容器分配的节点对调,变成S′a={Sa,1,sa,2,sa,3,…,sa,k,sb,k+1,…,sb,n}和S′b={sb,1,sb,2,sb,3,…,sb,k,sa,k+1,…,sa,n};
(4.4)对当前种群中每一个解以变异概率pm执行和步骤(3.2)相同的操作;
(4.5)计算每个解的得分;从当前种群中抽取两个解,保留两者中得分较高的解作为下一代种群的解;其中,第j个解Sj被抽中的概率为Wj为解Sj的得分,/>为对所有解的得分求和;
(4.6)重复执行l次步骤(4.5),得到下一代种群;
(4.7)以步骤(4.6)得到的下一代种群为当前种群,重复执行步骤(4.2)~(4.6),直至达到步骤(4.1)设定的算法迭代次数为止,最后将种群里得分最高的解作为最终调度方案。
4.根据权利要求1~3中任一项所述面向二次调度的容器调度方法,其特征在于,预选规则为:
(5.1)增加容器时,检查节点的运行状态,CPU、内存和硬盘的压力,检查容器间亲和性与反亲和性和对节点的硬约束亲和性,检查节点选择器,检查污点与容忍条件,检查资源是否充足、端口是否冲突;
(5.2)减少容器时,检查节点上是否有该类型的容器。
5.根据权利要求1~3中任一项所述面向二次调度的容器调度方法,其特征在于,打分规则为:根据多种优选策略分别对节点打分,每个节点的最终得分为:
其中,pi表示节点是否通过了预选阶段,通过为1否则为0;λi表示第i个优选策略的权重;Wi表示第i个优选策略的得分;m表示优选策略总数;所述解的得分为解中所有容器的调度节点的得分之和。
6.根据权利要求5所述面向二次调度的容器调度方法,其特征在于,所述优选策略为:
(7.1)当增加容器时,使用的优选策略为节点内资源均衡、镜像本地化、容器间软亲和约束、节点软约束亲和性、节点避免策略、节点间资源均衡策略、服务容灾策略、软约束污点容忍策略中的一种或几种;
(7.2)减少容器时,使用的优选策略为节点内资源均衡策略,节点间资源均衡策略,服务容灾策略中的一种或几种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358582.XA CN111124619B (zh) | 2019-12-25 | 2019-12-25 | 一种面向二次调度的容器调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911358582.XA CN111124619B (zh) | 2019-12-25 | 2019-12-25 | 一种面向二次调度的容器调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124619A CN111124619A (zh) | 2020-05-08 |
CN111124619B true CN111124619B (zh) | 2023-07-21 |
Family
ID=70502295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911358582.XA Active CN111124619B (zh) | 2019-12-25 | 2019-12-25 | 一种面向二次调度的容器调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124619B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625338B (zh) * | 2020-05-28 | 2024-01-19 | 广东浪潮大数据研究有限公司 | 一种亲和性规则调度方法、装置及其相关设备 |
CN111737003B (zh) * | 2020-06-24 | 2023-04-28 | 重庆紫光华山智安科技有限公司 | Pod均衡调度方法、装置、主节点及存储介质 |
CN114253727A (zh) * | 2021-12-20 | 2022-03-29 | 北京创世云科技股份有限公司 | 一种容器分配方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018015779A1 (en) * | 2016-07-20 | 2018-01-25 | Worldline | Multi-criteria adaptive scheduling for a market-oriented hybrid cloud infrastructure |
CN108829494A (zh) * | 2018-06-25 | 2018-11-16 | 杭州谐云科技有限公司 | 基于负载预测的容器云平台智能资源优化方法 |
CN110389819A (zh) * | 2019-06-24 | 2019-10-29 | 华中科技大学 | 一种计算密集型批处理任务的调度方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7218637B1 (en) * | 2001-07-20 | 2007-05-15 | Yotta Networks, Llc | System for switching data using dynamic scheduling |
CN107547596B (zh) * | 2016-06-27 | 2022-01-25 | 中兴通讯股份有限公司 | 一种基于Docker的云平台控制方法及装置 |
CN108762923A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 采用差分进化算法作为Docker Swarm调度策略的方法 |
CN109783218B (zh) * | 2019-01-24 | 2020-09-08 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
CN110058924B (zh) * | 2019-04-23 | 2023-08-04 | 东华大学 | 一种多目标优化的容器调度方法 |
-
2019
- 2019-12-25 CN CN201911358582.XA patent/CN111124619B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018015779A1 (en) * | 2016-07-20 | 2018-01-25 | Worldline | Multi-criteria adaptive scheduling for a market-oriented hybrid cloud infrastructure |
CN108829494A (zh) * | 2018-06-25 | 2018-11-16 | 杭州谐云科技有限公司 | 基于负载预测的容器云平台智能资源优化方法 |
CN110389819A (zh) * | 2019-06-24 | 2019-10-29 | 华中科技大学 | 一种计算密集型批处理任务的调度方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111124619A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200287961A1 (en) | Balancing resources in distributed computing environments | |
US9571347B2 (en) | Reactive auto-scaling of capacity | |
CN110134495B (zh) | 一种容器跨主机在线迁移方法、存储介质及终端设备 | |
CN111124619B (zh) | 一种面向二次调度的容器调度方法 | |
CN111966500A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN107864211B (zh) | 集群资源调度方法及系统 | |
EP3191948A1 (en) | Computing instance launch time | |
EP4029197B1 (en) | Utilizing network analytics for service provisioning | |
CN104679594B (zh) | 一种中间件分布式计算方法 | |
Navimipour et al. | Replica selection in the cloud environments using an ant colony algorithm | |
CN110493317B (zh) | 处理云平台资源碎片的方法及相关设备 | |
Delavar et al. | A synthetic heuristic algorithm for independent task scheduling in cloud systems | |
CN111767145A (zh) | 容器调度系统、方法、装置和设备 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
Kumar et al. | QoS‐aware resource scheduling using whale optimization algorithm for microservice applications | |
CN107168805A (zh) | 一种基于虚拟机的资源调度方法 | |
US9942083B1 (en) | Capacity pool management | |
CN107402812A (zh) | 集群资源调度方法、装置、设备及存储介质 | |
CN114978913B (zh) | 一种基于切链的服务功能链跨域部署方法及系统 | |
CN115061811A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN107729150A (zh) | 一种异构集群安监设备最小能耗节点的寻址方法 | |
Karuppusamy et al. | An efficient placement algorithm for data replication and to improve system availability in cloud environment | |
CN117971505B (zh) | 部署容器应用的方法及装置 | |
US12045664B1 (en) | Classifying workloads for burstable compute platforms | |
CN114090220B (zh) | 一种分级cpu和内存资源调度方法 |
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 |