一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

容器集群的调度方法和装置与流程

2022-08-30 22:45:44 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,特别涉及一种容器集群的调度方法、容器集群的调度装置和非易失性计算机可读存储介质。


背景技术:

2.在云计算技术中,可以的根据地域的不同将iaas(infrastructure as a service,基础设施服务)划分为多个region(云区域)。一个region之内又可以划分为多个az(available zones,可用区),一个az内还可以划分多个主机组。
3.构建在iaas之上的容器集群(如kubernetes),可以部署在一个region之内。一个region可能同时包含多个az以及主机组,为了提高容器化应用的可靠性和可用性,需要将应用的不同副本调度在不同的主机组或者az内。
4.在相关技术中,主要根据容器集群本身的信息,在各主机组或者各az对容器进行调度。


技术实现要素:

5.本公开的发明人发现上述相关技术中存在如下问题:无法结合iaas层的分布特点,导致调度效果差。
6.鉴于此,本公开提出了一种容器集群的调度技术方案,能够结合iaas层的分布特点,提高调度效果。
7.根据本公开的一些实施例,提供了一种容器集群的调度方法,包括:响应于用户创建各容器应用副本,获取容器集群中各节点在iaas上的位置信息;根据位置信息和当前的调度策略,将各容器应用副本分配给容器集群中的各节点,调度策略根据容器集群中各节点的位置信息制定;根据分配结果,为各容器应用副本调度相应的节点。
8.在一些实施例中,获取容器集群中各节点在基础设施服务iaas上的位置信息包括:调用iaas的api(application programming interface,应用程序接口),获取容器集群中各节点的位置信息。
9.在一些实施例中,将各容器应用副本分配给容器集群中的各节点包括:根据位置信息,确定容器集群当前的可用区的数量或者主机组的数量中的至少一个;根据可用区的数量或者主机组的数量中的至少一个、容器应用副本的数量,将各容器应用副本平均分配给各可用区或者各主机组中的节点。
10.在一些实施例中,将各容器应用副本分配给容器集群中的各节点包括:根据位置信息,确定容器集群当前的各可用区或者各主机组中的至少一个;根据各可用区或者各主机组的可用资源情况,将各容器应用副本分配给各可用区或者各主机组中的节点,可用区或者主机组的可用资源越多,分配的容器应用副本越多。
11.在一些实施例中,将各容器应用副本分配给容器集群中的各节点包括:根据位置信息是否与当前的调度策略指定的容器集群中的位置匹配,将各容器应用副本分配给各可
用区或者各主机组中的节点。
12.在一些实施例中,将各容器应用副本分配给容器集群中的各节点包括:根据位置信息和当前的调度策略,确定各容器应用副本的预选节点;根据分配结果,为各容器应用副本调度相应的节点包括:对各预选节点进行排序,根据排序结果为副本容器调度相应的节点。
13.在一些实施例中,位置信息包括各节点所在的云区域、可用区、主机组中的至少一项。
14.根据本公开的另一些实施例,提供一种容器集群的调度装置,包括:位置感知单元,用于响应于用户创建各容器应用副本,获取容器集群中各节点在iaas上的位置信息;节点预选单元,用于根据位置信息和当前的调度策略,将各容器应用副本分配给容器集群中的各节点,调度策略根据容器集群中各节点的位置信息制定;节点调度单元,用于根据分配结果,为各容器应用副本调度相应的节点。
15.在一些实施例中,位置感知单元调用iaas的api,获取容器集群中各节点的位置信息。
16.在一些实施例中,节点预选单元根据位置信息,确定容器集群当前的可用区的数量或者主机组的数量中的至少一个,根据可用区的数量或者主机组的数量中的至少一个、容器应用副本的数量,将各容器应用副本平均分配给各可用区或者各主机组中的节点。
17.在一些实施例中,节点预选单元根据位置信息,确定容器集群当前的各可用区或者各主机组中的至少一个,根据各可用区或者各主机组的可用资源情况,将各容器应用副本分配给各可用区或者各主机组中的节点,可用区或者主机组的可用资源越多,分配的容器应用副本越多。
18.在一些实施例中,节点预选单元根据位置信息是否与当前的调度策略指定的容器集群中的位置匹配,将各容器应用副本分配给各可用区或者各主机组中的节点。
19.在一些实施例中,节点预选单元根据位置信息和当前的调度策略,确定各容器应用副本的预选节点;节点调度单元对各预选节点进行排序,根据排序结果为副本容器调度相应的节点。
20.在一些实施例中,位置信息包括各节点所在的云区域、可用区、主机组中的至少一项。
21.根据本公开的又一些实施例,提供一种容器集群的调度装置,包括:存储器;和耦接至存储器的处理器,处理器被配置为基于存储在存储器装置中的指令,执行上述任一个实施例中的容器集群的调度方法。
22.根据本公开的再一些实施例,提供一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例中的容器集群的调度方法。
23.在上述实施例中,根据获取的各节点在iaas上的位置信息以及基于位置信息制定的调度策略,在容器集群中进行调度。这样,能够结合iaas的分布特点进行调度,从而提高调度效果。
附图说明
24.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解
释本公开的原理。
25.参照附图,根据下面的详细描述,可以更加清楚地理解本公开:
26.图1示出本公开的容器集群的调度方法的一些实施例的流程图;
27.图2示出本公开的容器集群的调度方法的一些实施例的示意图;
28.图3示出本公开的容器集群的调度方法的另一些实施例的示意图;
29.图4示出本公开的容器集群的调度装置的一些实施例的框图;
30.图5示出本公开的容器集群的调度装置的另一些实施例的框图;
31.图6示出本公开的容器集群的调度装置的又一些实施例的框图。
具体实施方式
32.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
33.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
34.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
35.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为授权说明书的一部分。
36.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
37.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
38.如前所述,主要依赖容器集群本身信的调度方法缺乏与iaas层的联动,不能自动化感知容器集群各节点在iaas层的分布情况(比如各节点所属az信息);也缺乏针对集群各节点在iaas分布特点的调度策略。以至于在构建于iaas之上的容器集群中进行容器调度时,无法达到最佳高可用状态。
39.针对上述技术问题,本公开的容器集群自动与iaas层交互,获取集群中各节点在iaas层的位置信息;借助当前的调度策略,充分考虑容器集群各节点在iaas层的分布情况,从而提升容器化应用高可用能力,满足可靠性要求。例如,可以通过下面的实施例实现本公开的技术方案。
40.图1示出本公开的容器集群的调度方法的一些实施例的流程图。
41.如图1所示,在步骤110中,响应于用户创建各容器应用副本,获取容器集群中各节点在iaas上的位置信息。例如,位置信息包括各节点所在的云区域、可用区、主机组中的至少一项。
42.在一些实施例中,调用iaas的api,获取容器集群中各节点的位置信息。例如可以在容器集群中新增“位置感知单元”,该单元通过调用iaas的api查询容器集群中每个节点(node)在iaas上对应的region、az、主机组等位置信息。
43.在步骤120中,根据位置信息和当前的调度策略,将各容器应用副本分配给容器集
群中的各节点。例如,当前的调度策略可以由发起创建各容器应用副本请求的用户指定。
44.在一些实施例中,调度策略根据容器集群中各节点的位置信息制定。“节点预选单元”可以在容器集群现有节点预选策略的基础上,提供与集群节点位置信息相关的调度策略。
45.例如,在不同az或者主机组之间均衡。根据位置信息,确定容器集群当前的可用区的数量或者主机组的数量中的至少一个;根据可用区的数量或者主机组的数量中的至少一个、容器应用副本的数量,将各容器应用副本平均分配给各可用区或者各主机组中的节点。
46.例如,对不同az或主机组设定权重,用于表征不同az或主机组承担的副本多少。根据位置信息,确定容器集群当前的各可用区或者各主机组中的至少一个;根据各可用区或者各主机组的可用资源情况,将各容器应用副本分配给各可用区或者各主机组中的节点,可用区或者主机组的可用资源越多,分配的容器应用副本越多。
47.例如,指定调度到某个az或者主机组。将各容器应用副本分配给容器集群中的各节点包括:根据位置信息是否与当前的调度策略指定的容器集群中的位置匹配,将各容器应用副本分配给各可用区或者各主机组中的节点。
48.在步骤130中,根据分配结果,为各容器应用副本调度相应的节点。
49.在一些实施例中,根据位置信息和当前的调度策略,确定各容器应用副本的预选节点;对各预选节点进行排序,根据排序结果为副本容器调度相应的节点。
50.在上述实施例中,针对的是在iaas部署容器集群的场景中,容器集群无法自动根据集群节点在iaas上的位置信息,实现最优调度的技术问题。本公开引入了集群节点的位置感知单元,自动获取容器集群各节点对应的region、az、主机组等iaas位置信息;并且,利用当前的调度策略,提升了容器应用的高可用性。
51.图2示出本公开的容器集群的调度方法的一些实施例的示意图。
52.如图2所示,用户可以通过容器集群api模块发起请求,根据请求可以生成待调度容器队列。iaas层的region可以包含多个az(az1、az2、az3等),每个az可以包含多个主机组(主机组1、主机组2等),每个主机组可包含多个主机(host),每个主机可以包含多个vm(virtual machine,虚拟机),每个虚拟机可以承担容器集合pod(即图中的p)。
53.位置信息感知单元可以通过调用iaas的api去查询每个容器节点在iaas上的位置信息。例如,iaas位置信息可以包括节点所在的region、az、主机组等信息。在有容器需要创建时,容器集群节点的位置信息感知单元通过调用iaas的api刷新集群节点的位置信息。
54.可以在节点预选单元中添加基于位置信息的调度策略,以充分利用节点的位置信。考虑容器集群在调度时,可以按照待调度容器队列一一进行调度。为了达到整体调度的能力,在对一组容器调度时,基于位置信息的调度策略需要充分考虑同组容器中已经完成调度的容器的位置,并基于此决定完成新容器的节点预选。
55.节点优选单元可以对节点预选单元为各容器应用副本分配的预选节点进行排序,以便调用相应的节点承担容器应用副本。
56.图3示出本公开的容器集群的调度方法的另一些实施例的示意图。
57.如图3所示,用户提交创建多个容器应用副本(如6个pod)的请求,并指定当前的调用策略。容器集群系统通过api接收该请求。容器调度模块的位置感知单元调用iaas的api,刷新容器集群各虚拟机(节点)在iaas上的az位置信息。
58.容器调度模块的节点预选单元获取各位置信息,并根据各az已经分配的容器应用副本情况,根据用户指定的调度策略,为各容器应用副本在各az中分配节点。
59.例如,共有两个az,az1和az2,根据在不同az或者主机组之间均衡的调度策略分配预选节点。对于第一个容器应用副本,可以返回两个az作为预选节点所在的az;如果第一个容器应用副本被分配到az1的节点,则第二个副本容器根据该情况,应该被分配到az2的节点;由于az1、az2均分配了一个容器应用副本,则第三个容器应用副本可以再次分配给az1。
60.以此类推,直到6个pod均分配了节点,即az1和az2均分配了3个pod。节点优选单元可以对各pod的预选节点进行排序,并确定最终调用的节点。
61.在上述实施例中,自动获取容器集群节点在iaas上的位置信息;在容器调度时充分考虑容器集群节点在iaas上的位置信息,从而使得在同一层级的不同位置(如az层级、主机组层级等)调度时尽可能做到均衡分配。
62.图4示出本公开的容器集群的调度装置的一些实施例的框图。
63.如图4所示,容器集群的调度装置4包括位置感知单元41、节点预选单元42和节点调度单元43。
64.位置感知单元41响应于用户创建各容器应用副本,获取容器集群中各节点在iaas上的位置信息。例如,位置信息包括各节点所在的云区域、可用区、主机组中的至少一项。
65.在一些实施例中,位置感知单元41调用iaas的api,获取容器集群中各节点的位置信息。
66.节点预选单元42根据位置信息和当前的调度策略,将各容器应用副本分配给容器集群中的各节点,调度策略根据容器集群中各节点的位置信息制定。
67.在一些实施例中,节点预选单元42根据位置信息,确定容器集群当前的可用区的数量或者主机组的数量中的至少一个;根据可用区的数量或者主机组的数量中的至少一个、容器应用副本的数量,将各容器应用副本平均分配给各可用区或者各主机组中的节点。
68.在一些实施例中,节点预选单元42根据位置信息,确定容器集群当前的各可用区或者各主机组中的至少一个;根据各可用区或者各主机组的可用资源情况,将各容器应用副本分配给各可用区或者各主机组中的节点。可用区或者主机组的可用资源越多,分配的容器应用副本越多。
69.在一些实施例中,节点预选单元42根据位置信息是否与当前的调度策略指定的容器集群中的位置匹配,将各容器应用副本分配给各可用区或者各主机组中的节点。
70.节点调度单元43根据分配结果,为各容器应用副本调度相应的节点。
71.在一些实施例中,节点预选单元42根据位置信息和当前的调度策略,确定各容器应用副本的预选节点;节点调度单元43对各预选节点进行排序,根据排序结果为副本容器调度相应的节点。
72.图5示出本公开的容器集群的调度装置的另一些实施例的框图。
73.如图5所示,该实施例的容器集群的调度装置5包括:存储器51以及耦接至该存储器51的处理器52,处理器52被配置为基于存储在存储器51中的指令,执行本公开中任意一个实施例中的容器集群的调度方法。
74.其中,存储器51例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序boot loader、数据库以及其他程序等。
75.图6示出本公开的容器集群的调度装置的又一些实施例的框图。
76.如图6所示,该实施例的容器集群的调度装置6包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的容器集群的调度方法。
77.存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序boot loader以及其他程序等。
78.容器集群的调度装置6还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏、麦克、音箱等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为sd卡、u盘等外置存储设备提供连接接口。
79.本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质包括但不限于磁盘存储器、cd-rom、光学存储器等上实施的计算机程序产品的形式。
80.至此,已经详细描述了根据本公开的容器集群的调度方法、容器集群的调度装置和非易失性计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
81.可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
82.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献