System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于云计算容器调度领域,具体涉及一种基于服务等级协议和能耗感知的kubernetes容器调度方法。
技术介绍
1、云计算(cloud computing)作为一种基于互联网的计算方式,通过共享的计算资源和服务,以按需提供计算能力、存储空间和应用服务的模式而著称,其基础之一是虚拟化技术,虚拟化是将一台物理服务器划分为多台虚拟服务器,即虚拟机(vm),以实现资源的灵活调配和利用。容器是一种虚拟化技术,用于打包和运行应用程序及其所有依赖项的软件包。随着应用程序架构的演进,虚拟机中大型单体应用逐渐被分解为小型、独立运行的组件,即微服务。微服务之间解耦,可独立开发、部署、升级和扩展。随着部署的微服务数量增加,容器部署微服务变得越来越困难。因此,自动化措施如自动调度、配置、监督和故障处理变得不可或缺。
2、kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序,其作为容器集群管理平台被广泛应用,它最初唯一支持的容器类型是docker容器,docker容器又恰好是在不同集群服务器上运行应用程序的首选方式。目前,kubernetes默认的调度程序无法满足每个pod(容器组)的性能约束的同时,降低集群中虚拟机的使用能耗。现有的能耗调度研究工作通常集中于单个本地数据中心范围,并且对于多层网格结构的微服务调度策略尚未充分考虑,导致现有调度方法在调度微服务时效率低下且能耗较高。
技术实现思路
1、为解决以上现有技术存在的问题,本专利技术提出了一种基于服
2、s1.基于kubernetes容器管理平台构建调度管理模型;所述调度管理模型包括调度器、调度管理模型数据库、主节点和工作节点。
3、s2.提交yaml(可移植文件)任务,判断调度管理模型数据库是否存在yaml任务中各pod间的优先级信息;若存在,则执行步骤s3,若不存在,则计算yaml任务中各pod间的优先级信息,然后执行步骤s3;yaml任务包括多个微服务,每一微服务被部署为一个或多个pod。
4、s3.基于各pod间的优先级信息,以降低pod调度总能耗为目标建立能耗模型。
5、s4.采用麻雀搜索算法进行迭代搜索,使得能耗模型达到最优,获取对应的最优能耗值。
6、s5.根据最优能耗值确定最佳调度方案,根据该最佳调度方案进行pod调度。
7、进一步的,在步骤s2中,计算yaml任务中各pod间的优先级信息的过程包括:
8、s21.随机选取一个工作节点,将所有pod放置在该工作节点上,并记录每一pod的单位时间消耗电量;
9、s22.将所有pod根据单位时间耗电量大小降序排列,得到pod优先级队列。
10、进一步的,步骤s3基于各pod间优先级信息,以降低pod调度总能耗为目标建立能耗模型,所述能耗模型表示为:
11、
12、
13、s.t.scoretotal<=scoregiven
14、其中,fbest表示能耗模型的最佳函数,min()表示最小值函数;表示第i个工作节点的电力使用效率;mi表示第i个工作节点上所有微服务资源消耗优先级和,表示第i个工作节点上第k个微服务的资源消耗优先级;scoretotal表示工作节点响应时间分数总和;scoregiven表示工作节点响应时间分数阈值,ns表示工作节点数量,ni,m表示第i个工作节点上的微服务数量。
15、进一步的,根据pod的cpu利用率计算微服务的资源消耗优先级的过程为:
16、计算每一微服务在每一工作节点上的cpu利用率,表示为:
17、
18、其中,表示第k个微服务在第i个工作节点上的cpu利用率,npod表示第k个微服务部署在第i个工作节点的pod数量,表示第k个微服务中第j个pod的cpu利用率。
19、根据cpu利用率计算每一微服务的能耗pk,表示为:
20、
21、其中,nk表示第k个微服务所在的工作节点数量,表示第i个工作节点峰值电力消耗,表示第i个工作节点空闲时电力消耗;
22、将全部微服务根据能耗大小降序排列,为每一微服务标记相应的排列序号作为自身的资源消耗优先级。
23、进一步的,工作节点响应时间分数scoretotal总和表示为:
24、
25、其中,score(k)表示第k个微服务的响应时间分数,pall表示yaml任务中所有微服务。
26、进一步的,第k个微服务的响应时间分数表示为:
27、
28、其中,netflow(k,m)表示为第k个微服务与第m个微服务之间的网络流量,δ(k,m)表示第k个微服务所在的工作节点和第m个微服务所在的工作节点之间的传播延迟总和,a表示与第k个微服务具有通信关系的微服务集合。
29、进一步的,第k个微服务与第m个微服务之间的网络流量表示为:
30、
31、其中,netflowpod(podk,a,podm,b)代表两个pod之间的网络流量,podk,a表示第k个微服务的第a个pod,podm,b表示第m个微服务中第b个pod,ck表示第k个微服务中pod数量,cm表示第m个微服务中pod数量。
32、进一步的,在步骤s4中,采用麻雀搜索算法进行迭代搜索,包括:
33、s41.初始化麻雀种群,并将初始化麻雀种群划分为发现者种群和跟随者种群;
34、s42.获取初始调度方案,根据初始调度方案初始化发现者种群中每一麻雀的位置,然后根据能耗模型计算发现者种群中每一麻雀的适应度值;
35、s43.随机初始化跟随者种群中每一麻雀的位置,并根据能耗模型计算跟随者种群中每一麻雀的适应度值;设置最大迭代次数;
36、s44.获取当前最优适应度值作为目标适应度值;
37、s45.更新每一麻雀的位置,然后从中随机选择麻雀作为警戒者再次更新位置;
38、s46.计算并更新每一麻雀的适应度值,选取当前最优适应度值;
39、s47.判断当前最优适应度值是否优于目标适应度值,若是,则将当前最优适应度值作为目标适应度值;若不是,则目标适应度值保持不变;
40、s48.判断是否达到最大迭代次数,若是,则输出目标适应度值及其对应的调度方案,若不是,则令迭代次数加一,然后返回步骤s45。
41、进一步的,在步骤s42中,获取初始调度方案的具体过程包括:
42、s421.将所有工作节点按照电力使用效率pue大小升序排列,得到工作节点优先级队列;
43、s422.判断是否满足i>n,若是,则输出初始调度方案,若不是,则提取pod优先级队列中的第i个pod;
44、s423.提取工作节本文档来自技高网...
【技术保护点】
1.一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,该方法包括:
2.根据权利要求1所述的一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,在步骤S2中,计算YAML任务中各Pod间的优先级信息的过程包括:
3.根据权利要求1所述的一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,步骤S3基于各Pod间优先级信息,以降低Pod调度总能耗为目标建立能耗模型,所述能耗模型表示为:
4.根据权利要求3所述的一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,根据Pod的CPU利用率计算微服务的资源消耗优先级,具体过程为:
5.根据权利要求3所述的一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,工作节点响应时间分数总和Scoretotal表示为:
6.根据权利要求5所述的一种基于服务等级协议和能耗感知的Kubernetes容器调度方法,其特征在于,第k个微服务的响应时间分数表示为:
...【技术特征摘要】
1.一种基于服务等级协议和能耗感知的kubernetes容器调度方法,其特征在于,该方法包括:
2.根据权利要求1所述的一种基于服务等级协议和能耗感知的kubernetes容器调度方法,其特征在于,在步骤s2中,计算yaml任务中各pod间的优先级信息的过程包括:
3.根据权利要求1所述的一种基于服务等级协议和能耗感知的kubernetes容器调度方法,其特征在于,步骤s3基于各pod间优先级信息,以降低pod调度总能耗为目标建立能耗模型,所述能耗模型表示为:
4.根据权利要求3所述的一种基于服务等级协议和能耗感知的kubernetes容器调度方法,其特征在于,根据pod的cpu利用率计算微服务的资源消耗优先级,具体过程为:
5.根据权利要求3所述的一种基于服务等级协议和能耗感知的k...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。