适用于混合架构容器云的调度方法及系统与流程

文档序号:29310785发布日期:2022-03-19 20:01阅读:382来源:国知局
适用于混合架构容器云的调度方法及系统与流程

1.本发明涉及节点调度技术领域,具体地,涉及一种适用于混合架构容器云的调度方法及系统。


背景技术:

2.传统的k8s集群多副本应用编排,对副本控制能力较弱,在混合架构场景下,k8s集群工作节点架构不同,性能各异,按照目前的调度算法,难以实现应用各个副本较为一致的性能表现。
3.专利文献cn108108245b(申请号:cn201711364950.2)公开了一种云平台宽节点科学工作流的混合型调度方法及系统。该方法包括:每个调度阶段初始化时,利用键能算法变换将任务构建成任务多层聚类树结构;在全局初始化阶段,利用键能算法变换和基本二叉多层划分将调度资源构建为云资源多层树结构;根据任务组的映射截止时间和调度资源的各维资源分布将任务多层聚类树结构中的任务子树的节点与云资源多层树结构中的节点进行映射操作;阶段调度末尾,判定完成映射操作的所述任务数量是否超过设定阈值;若是,则将未映射完成的任务归至下一个所述调度阶段,重新分配剩余任务的截止时间。
4.然而,当前大部分镜像仅支持单一架构,但调度算法没有对镜像架构进行识别,在混合架构场景下,存在极大概率镜像和工作节点架构不匹配的现象。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种适用于混合架构容器云的调度方法及系统。
6.根据本发明提供的适用于混合架构容器云的调度方法,包括:
7.步骤1:在调度的预过滤阶段,过滤掉与应用镜像架构不匹配的工作节点;
8.步骤2:在调度的打分阶段,同时根据硬件性能和余量,对k8s工作节点进行打分排序;
9.步骤3:在评分评估阶段,根据应用已调度过的k8s工作节点信息,调整打分排序结果,得出最优的应用调度结果。
10.优选的,所述步骤1包括:
11.步骤1.1:从应用编排文件中获取镜像地址,访问镜像地址获取镜像的详细信息并解析出镜像所支持的操作系统、硬件架构;
12.步骤1.2:遍历备选的k8s工作节点,获取k8s工作节点支持的操作系统和镜像架构,若与应用镜像所支持的操作系统和硬件架构不同,则从备选k8s工作节点中剔除;
13.步骤1.3:在遍历完成后保留匹配应用镜像架构的k8s工作节点。
14.优选的,所述步骤2包括:
15.步骤2.1:获取k8s工作节点的cpu主频、内存主频,通过加权k8s工作节点cpu主频、内存主频得出硬件性能,通过硬件性能对k8s工作节点打分;
16.步骤2.2:获取k8s工作节点的cpu、内存未分配量,根据cpu和内存未分配量加权得出k8s工作节点资源余量,通过资源余量对k8s工作节点打分;
17.步骤2.3:加权步骤2.1和步骤2.2的k8s工作节点打分结果,并根据结果对k8s工作节点进行排序;
18.步骤2.3:根据排序结果进行工作节点调度。
19.优选的,获取应用已有副本所运行的工作节点,当不存在时,则将pod调度到步骤2.3中排序最优的k8s工作节点;当存在时,识别其cpu型号、内存型号,优先将pod调度到硬件相同的k8s工作节点;当无相同硬件的工作节点时,识别已有副本所运行工作节点的cpu主频、内存主频,通过加权计算出硬件性能,并与步骤2.1中得出的k8s工作节点性能进行对比,按照性能接近原则,优先将pod调度到性能最为接近的k8s工作节点。
20.优选的,所述步骤3包括:获取多副本应用已调度副本所在k8s工作节点的分布情况;当不存在已调度副本时,不对打分阶段k8s工作节点排序进行调整,将打分阶段得分最高的k8s工作节点作为调度节点;当存在已调度副本时,根据已调度副本数占比,降低已调度过的k8s工作节点得分,从而调整打分阶段得到的k8s工作节点排序情况。
21.根据本发明提供的适用于混合架构容器云的调度系统,包括:
22.模块m1:在调度的预过滤阶段,过滤掉与应用镜像架构不匹配的工作节点;
23.模块m2:在调度的打分阶段,同时根据硬件性能和余量,对k8s工作节点进行打分排序;
24.模块m3:在评分评估阶段,根据应用已调度过的k8s工作节点信息,调整打分排序结果,得出最优的应用调度结果。
25.优选的,所述模块m1包括:
26.模块m1.1:从应用编排文件中获取镜像地址,访问镜像地址获取镜像的详细信息并解析出镜像所支持的操作系统、硬件架构;
27.模块m1.2:遍历备选的k8s工作节点,获取k8s工作节点支持的操作系统和镜像架构,若与应用镜像所支持的操作系统和硬件架构不同,则从备选k8s工作节点中剔除;
28.模块m1.3:在遍历完成后保留匹配应用镜像架构的k8s工作节点。
29.优选的,所述模块m2包括:
30.模块m2.1:获取k8s工作节点的cpu主频、内存主频,通过加权k8s工作节点cpu主频、内存主频得出硬件性能,通过硬件性能对k8s工作节点打分;
31.模块m2.2:获取k8s工作节点的cpu、内存未分配量,根据cpu和内存未分配量加权得出k8s工作节点资源余量,通过资源余量对k8s工作节点打分;
32.模块m2.3:加权模块m2.1和模块m2.2的k8s工作节点打分结果,并根据结果对k8s工作节点进行排序;
33.模块m2.3:根据排序结果进行工作节点调度。
34.优选的,获取应用已有副本所运行的工作节点,当不存在时,则将pod调度到模块m2.3中排序最优的k8s工作节点;当存在时,识别其cpu型号、内存型号,优先将pod调度到硬件相同的k8s工作节点;当无相同硬件的工作节点时,识别已有副本所运行工作节点的cpu主频、内存主频,通过加权计算出硬件性能,并与模块m2.1中得出的k8s工作节点性能进行对比,按照性能接近原则,优先将pod调度到性能最为接近的k8s工作节点。
35.优选的,所述模块m3包括:获取多副本应用已调度副本所在k8s工作节点的分布情况;当不存在已调度副本时,不对打分阶段k8s工作节点排序进行调整,将打分阶段得分最高的k8s工作节点作为调度节点;当存在已调度副本时,根据已调度副本数占比,降低已调度过的k8s工作节点得分,从而调整打分阶段得到的k8s工作节点排序情况。
36.与现有技术相比,本发明具有如下的有益效果:
37.(1)本发明通过pre-filter过滤器过滤掉不符合应用镜像架构的k8s工作节点,确保应用调度到匹配其镜像架构的k8s工作节点,解决混合架构场景下,应用调度到架构不匹配的工作节点导致启动失败的问题;
38.(2)本发明解决了混合架构场景下,仅根据工作节点cpu和内存余量来决定调度到的工作节点优先级时导致的应用多副本性能差异大的问题;
39.(3)本发明通过降低已调度过的工作节点评分,解决应用多副本调度到的k8s工作节点不够分散的问题。
附图说明
40.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
41.图1为本发明方法流程图。
具体实施方式
42.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
43.实施例:
44.本发明提供了一种混合架构容器云的调度方法,通过调度前识别镜像支持的架构和k8s工作节点架构,根据镜像所支持的架构选择匹配的工作节点,同时,对于同一应用的多副本,优先调度到相同型号cpu、内存的工作节点,确保获得较为一致的性能,具体包括:
45.1.扩展k8s调度框架的pre-filter扩展点,添加自定义k8s工作节点架构过滤器,在应用调度前期,识别应用镜像所支持的cpu架构和操作系统类型,通过pre-filter过滤器过滤掉不符合应用镜像架构的k8s工作节点,确保应用调度到匹配其镜像架构的k8s工作节点,解决混合架构场景下,应用调度到架构不匹配的工作节点导致启动失败的问题;
46.2.扩展k8s调度框架的scoring扩展点,在对k8s工作节点评分阶段,引入工作节点硬件性能评价机制,同时根据硬件性能和余量来决定调度到的工作节点优先级,优先将同一应用的多副本调度到性能相当的工作节点,解决混合架构场景下,仅根据工作节点cpu和内存余量来决定调度到的工作节点优先级时导致的应用多副本性能差异大的问题;
47.3.扩展k8s调度框架的normalize scoring扩展点,获取当前多副本应用已经调度过的工作节点统计信息,通过降低已调度过的工作节点评分,解决应用多副本调度到的k8s工作节点不够分散的问题。
48.(一)主要流程设计:
49.如图1,根据本发明提供的混合架构容器云的调度方法,包括如下步骤:
50.步骤1:在调度的pre-filter阶段,过滤掉不匹配应用镜像架构的工作节点;
51.步骤2:在调度的scoring阶段,同时根据硬件性能和余量对k8s工作节点进行打分排序;
52.步骤3:在normalize scoring阶段,根据应用已调度过的k8s工作节点信息,调整步骤2中的排序结果,得出最优的应用调度结果。
53.所述步骤1包括如下步骤:
54.步骤1.1:从应用编排文件中获取镜像地址,访问镜像地址获取镜像的详细信息并解析出镜像所支持的操作系统、硬件架构;
55.步骤1.2:遍历备选的k8s工作节点,获取k8s工作节点支持的操作系统和镜像架构,若和应用镜像所支持的操作系统和硬件架构不同,则从备选k8s工作节点中剔除;
56.步骤1.3:完成遍历后,则只保留了匹配应用镜像架构的k8s工作节点。
57.所述步骤2包含如下步骤:
58.步骤2.1:获取k8s工作节点的cpu主频、内存主频,通过加权k8s工作节点cpu主频、内存主频得出硬件性能,通过硬件性能对k8s工作节点打分;
59.步骤2.2:获取k8s工作节点的cpu、内存未分配量,根据cpu和内存未分配量加权得出k8s工作节点资源余量,通过资源余量对k8s工作节点打分;
60.步骤2.3:加权步骤2.1和步骤2.2的k8s工作节点打分结果,并根据结果对k8s工作节点进行排序;
61.步骤2.3:获取应用已有副本所运行的工作节点,当不存在时,则将pod调度到步骤2.3中排序最优的k8s工作节点;当存在时,识别其cpu型号,内存型号,优先将pod调度到硬件相同的k8s工作节点;当无相同硬件的工作节点时,识别已有副本所运行工作节点的cpu主频、内存主频,通过加权计算出硬件性能。并与步骤2.1中得出的k8s工作节点性能进行对比,按照性能接近原则,优先将pod调度到性能最为接近的k8s工作节点。
62.所述步骤3包含如下步骤:
63.步骤3.1:获取多副本应用已调度副本所在k8s工作节点的分布情况;
64.步骤3.2:当不存在已调度副本时,不对scoring阶段k8s工作节点排序进行调整,scoring阶段得分最高的k8s工作节点即为调度节点;
65.步骤3.3:当存在已调度副本时,根据已调度副本数占比,降低已调度过的k8s工作节点得分从而调整scoring阶段得到的k8s工作节点排序情况,解决应用多副本调度到的k8s工作节点不够分散的问题。
66.(二)主要组件设计
67.1.调度pre-filter扩展点
68.给k8s集群调度框架添加pre-filter扩展点,在执行默认的pre-filter调度算法后,执行本方案设计的扩展pre-filter算法,剔除不满足应用镜像架构的k8s工作节点;
69.2.调度scoring扩展点
70.给k8s集群调度框架添加scoring扩展点,在执行完默认的scoring调度算法后,执行本方案设计的扩展scoring算法,同时根据硬件性能和资源余量对k8s工作节点进行打分;
71.2.调度normalize scoring扩展点
72.给k8s集群调度框架添加normalize scoring扩展点,在执行完默认的normalize scoring调度算法后,执行本方案设计的扩展normalize scoring算法,调整多副本应用调度到的k8s工作节点分布情况。
73.根据本发明提供的适用于混合架构容器云的调度系统,包括:模块m1:在调度的预过滤阶段,过滤掉与应用镜像架构不匹配的工作节点;模块m2:在调度的打分阶段,同时根据硬件性能和余量,对k8s工作节点进行打分排序;模块m3:在评分评估阶段,根据应用已调度过的k8s工作节点信息,调整打分排序结果,得出最优的应用调度结果。
74.所述模块m1包括:模块m1.1:从应用编排文件中获取镜像地址,访问镜像地址获取镜像的详细信息并解析出镜像所支持的操作系统、硬件架构;模块m1.2:遍历备选的k8s工作节点,获取k8s工作节点支持的操作系统和镜像架构,若与应用镜像所支持的操作系统和硬件架构不同,则从备选k8s工作节点中剔除;模块m1.3:在遍历完成后保留匹配应用镜像架构的k8s工作节点。所述模块m2包括:模块m2.1:获取k8s工作节点的cpu主频、内存主频,通过加权k8s工作节点cpu主频、内存主频得出硬件性能,通过硬件性能对k8s工作节点打分;模块m2.2:获取k8s工作节点的cpu、内存未分配量,根据cpu和内存未分配量加权得出k8s工作节点资源余量,通过资源余量对k8s工作节点打分;模块m2.3:加权模块m2.1和模块m2.2的k8s工作节点打分结果,并根据结果对k8s工作节点进行排序;模块m2.3:根据排序结果进行工作节点调度。获取应用已有副本所运行的工作节点,当不存在时,则将pod调度到模块m2.3中排序最优的k8s工作节点;当存在时,识别其cpu型号、内存型号,优先将pod调度到硬件相同的k8s工作节点;当无相同硬件的工作节点时,识别已有副本所运行工作节点的cpu主频、内存主频,通过加权计算出硬件性能,并与模块m2.1中得出的k8s工作节点性能进行对比,按照性能接近原则,优先将pod调度到性能最为接近的k8s工作节点。所述模块m3包括:获取多副本应用已调度副本所在k8s工作节点的分布情况;当不存在已调度副本时,不对打分阶段k8s工作节点排序进行调整,将打分阶段得分最高的k8s工作节点作为调度节点;当存在已调度副本时,根据已调度副本数占比,降低已调度过的k8s工作节点得分,从而调整打分阶段得到的k8s工作节点排序情况。
75.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
76.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1