CN111124619B - 一种面向二次调度的容器调度方法 - Google Patents

一种面向二次调度的容器调度方法 Download PDF

Info

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
Application number
CN201911358582.XA
Other languages
English (en)
Other versions
CN111124619A (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.)
Zhejiang University ZJU
China Mobile Online Services Co Ltd
Original Assignee
Zhejiang University ZJU
China Mobile Online Services 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 Zhejiang University ZJU, China Mobile Online Services Co Ltd filed Critical Zhejiang University ZJU
Priority to CN201911358582.XA priority Critical patent/CN111124619B/zh
Publication of CN111124619A publication Critical patent/CN111124619A/zh
Application granted granted Critical
Publication of CN111124619B publication Critical patent/CN111124619B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)减少容器时,使用的优选策略为节点内资源均衡策略,节点间资源均衡策略,服务容灾策略中的一种或几种。
CN201911358582.XA 2019-12-25 2019-12-25 一种面向二次调度的容器调度方法 Active CN111124619B (zh)

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 (2)

* Cited by examiner, † Cited by third party
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均衡调度方法、装置、主节点及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 东华大学 一种多目标优化的容器调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
JP5998206B2 (ja) クラスタデータグリッドにおける拡張可能な中央集中型動的リソース分散
CN107864211B (zh) 集群资源调度方法及系统
CN111966500A (zh) 资源调度方法、装置、电子设备及存储介质
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
WO2016040699A1 (en) Computing instance launch time
Navimipour et al. Replica selection in the cloud environments using an ant colony algorithm
CN111124619B (zh) 一种面向二次调度的容器调度方法
EP4029197B1 (en) Utilizing network analytics for service provisioning
CN113032102B (zh) 资源重调度方法、装置、设备和介质
Delavar et al. A synthetic heuristic algorithm for independent task scheduling in cloud systems
CN111767145A (zh) 容器调度系统、方法、装置和设备
CN107168805A (zh) 一种基于虚拟机的资源调度方法
CN106506229B (zh) 一种sbs云应用自适应资源优化调整系统及方法
CN117056018A (zh) 资源调度方法、装置、设备、程序产品和存储介质
CN107402812A (zh) 集群资源调度方法、装置、设备及存储介质
US9942083B1 (en) Capacity pool management
CN115061811A (zh) 一种资源调度方法、装置、设备及存储介质
Jagadish Kumar et al. Cost-efficient resource scheduling in cloud for big data processing using metaheuristic search black widow optimization (MS-BWO) algorithm
CN107729150A (zh) 一种异构集群安监设备最小能耗节点的寻址方法
CN117971505B (zh) 部署容器应用的方法及装置
Karuppusamy et al. An efficient placement algorithm for data replication and to improve system availability in cloud environment
Zhang et al. Task assignment optimization in geographically distributed data centers
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