System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于资源调度相关,尤其涉及一种基于分布式容器集群的调度方法和系统。
技术介绍
1、随着kubernetes的日益普及,企业拥有和管理的kubernetes集群数量也呈指数级增长,为了更方便的统一管理这些集群,云原生社区提出了集群联邦的理念和实现技术方案,用户基于集群联邦,可以轻松的构建分布式容器集群,用户的多个子集群可以分散在任意资源池,甚至位于idc机房和其他云厂商。
2、对于分布式容器集群,容器的资源调度由集群联邦系统来负责,此时,资源的精准调度显得更为重要,否则会导致调度失效,也就是容器被调度到表面上看资源充足,然而实际无法提供资源的集群中,造成容器在该子集群中长期处于pending状态而无法启动,但是其他子集群又有很多合适的资源。
3、这种调度失效发生的概率,和子集群资源的碎片化的严重程度有很大的关系,当子集群的碎片化程度越高,发生的概率越高。例如,当用户请求申请1c2g这种配额的容器时,集群联邦的调度器会读取各个集群的资源剩余情况,但是调度器看到的资源余量,是每个子集群的总剩余情况,只能看到子集群a还剩余10c10g,从表面上看,这个余量似乎满足业务容器的1c2g的配额需求,于是调度器将容器资源部署在子集群a,但是如果集群资源碎片化达到一定程度时,情况就会发生变好,比如子集群a有10个节点,每个节点只剩余1c1g,那么10个节点的总余量是10c10g,表面上看子集群a是满足该容器的调度需求,但是实际上任意一台节点都无法承载该容器的需求。
4、从上述描述可以看出,在分布式容器
技术实现思路
1、鉴于以上现有技术的不足,专利技术的目的在于提供一种基于分布式容器集群的调度方法和系统,采用基于分布式容器集群和集群联邦技术,引入resource-scheduler和resource-agent两个子模块,并抽象出一种层级的集群资源描述方式,实现了一套完全兼容原生kubernetes集群联邦的分布式容器集群调度的系统。
2、本专利技术的第一方面,提出了一种基于分布式容器集群的调度方法,该方法包括如下步骤:
3、步骤s1、各个kubernetes子集群中的资源代理模块resource-agent按照预设的频率,统计该kubernetes子集群中所有的计算节点kubelet的资源余量信息以及资源使用信息;
4、步骤s2、所述资源代理模块resource-agent向所述资源调度模块resource-scheduler发送统计得到的子集群中各个计算节点kubelet的各个资源等级所对应的资源余量信息和资源使用信息;
5、步骤s3、所述资源调度模块resource-scheduler在crd自定义列表中更新该kubernetes子集群对应的资源crd;
6、步骤s4、资源调度模块resource-scheduler实时监控crd自定义列表中的子集群的资源crd,并根据资源crd进行资源调度。
7、进一步地,上述步骤s1具体包括如下子步骤:
8、步骤s101、各个kubernetes子集群中的资源代理模块resource-agent向kubernetes主集群中的资源调度模块resource-scheduler发送子集群配置信息查询请求,并接收返回的子集群配置信息;
9、步骤s102、根据所述子集群配置信息,资源代理模块resource-agent确定资源等级信息resource-levels,并根据确定的资源等级信息resource-levels,获取并统计子集群中各个计算节点kubelet的各个资源等级所对应的资源余量信息和资源使用信息。
10、进一步地,在上述步骤s4中,根据资源crd进行资源调度,具体包括:资源调度模块resource-scheduler读取各个子集群上报的子集群的资源crd,并根据子集群的资源crd来判断容器的规格是否适合该子集群;若容器的规格是否适合该子集群,则允许该容器被调度到该子集群,否则拒绝该容器被调度到该子集群。
11、本专利技术的第二方面,提出了一种基于分布式容器集群的调度系统,该系统用于实现上述调度方法,该系统包括kubernetes主集群和多个kubernetes子集群;
12、kubernetes主集群作为分布式容器集群中的控制面集群,kubernetes子集群作为分布式容器集群中的受控面集群;
13、kubernetes主集群包括kubernetes集群联邦管理器模块、资源调度模块resource-scheduler、以及crd自定义列表;
14、kubernetes子集群包括集群联邦agent服务模块、资源代理模块resource-agent、以及多个计算节点kubelet。
15、进一步地,在kubernetes主集群中,kubernetes集群联邦管理器模块,创建资源调度模块resource-scheduler,并与资源调度模块resource-scheduler相连;分别与各个kubernetes子集群中的资源代理模块resource-agent相连。
16、进一步地,资源调度模块resource-scheduler与crd自定义列表相连;crd自定义列表,分别与各个kubernetes子集群中的资源代理模块resource-agent相连,用于保存各个kubernetes子集群的资源crd。
17、进一步地,在kubernetes子集群中,资源代理模块resource-agent分别与该子群中的各个计算节点kubelet相连,用于统计该子集群中各个计算节点kubelet的资源余量信息以及资源使用信息,并汇总生成该子集群的资源crd,将该子集群的资源crd上传至crd自定义列表中进行保存;
18、进一步地,所述资源调度模块resource-scheduler以层级关系的方式维护各个kubernetes子集群的资源crd,所述资源crd用于表示各个kubernetes子集群中能够创建的容器规格的数量。
19、进一步地,所述层级关系由高到低依次是子集群列表、资源级别、内存和cpu的配额以及可用量。
20、本专利技术的第三方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序能够被处理器加载和执行上述调度方法。
21、本专利技术有益效果如下:在现有技术的实现方案中,当集群资源碎片化达到一定程度的时候,是无法实现分布式容器集群中资源的精准调度,会偶发调度失效的问题。本专利技术抽象出一种集群的资源画像,以层级的方式描述了各个子集群的精准余量信息,包括子集群列表、资源类别列表、cpu和内存的规格以及对应的余量和使用量,并将这种层级本文档来自技高网...
【技术保护点】
1.一种基于分布式容器集群的调度方法,其特征在于,该方法包括如下步骤:
2.根据权利要求1所述的调度方法,其特征在于,上述步骤S1具体包括如下子步骤:
3.根据权利要求1所述的调度方法,其特征在于,在上述步骤S4中,根据资源CRD进行资源调度,具体包括:资源调度模块Resource-Scheduler读取各个子集群上报的子集群的资源CRD,并根据子集群的资源CRD来判断容器的规格是否适合该子集群;若容器的规格是否适合该子集群,则允许该容器被调度到该子集群,否则拒绝该容器被调度到该子集群。
4.一种基于分布式容器集群的调度系统,用于实现权利要求1至3之一所述的调度方法,其特征在于,所述系统包括Kubernetes主集群和多个Kubernetes子集群;
5.根据权利要求4所述的调度系统,其特征在于,在Kubernetes主集群中,Kubernetes集群联邦管理器模块,创建资源调度模块Resource-Scheduler,并与资源调度模块Resource-Scheduler相连;分别与各个Kubernetes子集群中的资源代理模块Re
6.根据权利要求4所述的调度系统,其特征在于,资源调度模块Resource-Scheduler与CRD自定义列表相连;CRD自定义列表,分别与各个Kubernetes子集群中的资源代理模块resource-agent相连,用于保存各个Kubernetes子集群的资源CRD。
7.根据权利要求4所述的调度系统,其特征在于,在Kubernetes子集群中,资源代理模块Resource-Agent分别与该子群中的各个计算节点Kubelet相连,用于统计该子集群中各个计算节点Kubelet的资源余量信息以及资源使用信息,并汇总生成该子集群的资源CRD,将该子集群的资源CRD上传至CRD自定义列表中进行保存。
8.根据权利要求4所述的调度系统,其特征在于,所述资源调度模块Resource-Scheduler以层级关系的方式维护各个Kubernetes子集群的资源CRD,所述资源CRD用于表示各个Kubernetes子集群中能够创建的容器规格的数量。
9.根据权利要求8所述的调度系统,其特征在于,所述层级关系由高到低依次是子集群列表、资源级别、内存和CPU的配额以及可用量。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序能够被处理器加载和执行如权利要求1至3之一所述的方法。
...【技术特征摘要】
1.一种基于分布式容器集群的调度方法,其特征在于,该方法包括如下步骤:
2.根据权利要求1所述的调度方法,其特征在于,上述步骤s1具体包括如下子步骤:
3.根据权利要求1所述的调度方法,其特征在于,在上述步骤s4中,根据资源crd进行资源调度,具体包括:资源调度模块resource-scheduler读取各个子集群上报的子集群的资源crd,并根据子集群的资源crd来判断容器的规格是否适合该子集群;若容器的规格是否适合该子集群,则允许该容器被调度到该子集群,否则拒绝该容器被调度到该子集群。
4.一种基于分布式容器集群的调度系统,用于实现权利要求1至3之一所述的调度方法,其特征在于,所述系统包括kubernetes主集群和多个kubernetes子集群;
5.根据权利要求4所述的调度系统,其特征在于,在kubernetes主集群中,kubernetes集群联邦管理器模块,创建资源调度模块resource-scheduler,并与资源调度模块resource-scheduler相连;分别与各个kubernetes子集群中的资源代理模块resource-agent相连。
6.根据权利要求4所述的调度系统,其特征在于,资源调度...
【专利技术属性】
技术研发人员:王玉君,祝美祺,张恒䶮,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。