1.本说明书实施例涉及云计算技术领域,特别涉及基于容器的资源调度方法。本说明书一个或者多个实施例同时涉及基于容器的资源调度系统、基于容器的资源调度装置,一种计算设备,以及一种计算机可读存储介质。
背景技术:2.随着云计算、大数据的快速发展,目前云原生技术基础平台的实施标准为一些开源的软件,分布式调度系统构建在容器技术之上,为用户提供了一个容器化应用的整体解决方案,如今分布式调度系统已成为容器生态圈流行的开源容器分布式调度系统,为云原生应用容器提供调度和部署功能,且为云原生应用容器提供了集群内部负载均衡的能力。
3.但分布式调度系统在部署和调度云原生应用容器时只考虑了当前容器自身的资源要求,如cpu、内存和部署节点范围等,因此,如何合理部署节点是目前亟需解决的问题。
技术实现要素:4.有鉴于此,本说明书实施例提供了一种基于容器的资源调度方法。本说明书一个或者多个实施例同时涉及基于容器的资源调度系统、基于容器的资源调度装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种基于容器的资源调度方法,包括:
6.响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;
7.根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;
8.计算所述部署位置对应的第一网络状态信息;
9.基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
10.根据本说明书实施例的第二方面,提供了一种基于容器的资源调度方法,包括:
11.响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;
12.获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;
13.根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
14.根据本说明书实施例的第三方面,提供了一种基于容器的资源调度系统,所述系统包括容器创建模块、节点访问模块,其中,
15.所述容器创建模块响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点;
16.所述节点访问模块响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
17.根据本说明书实施例的第四方面,提供了一种基于容器的资源调度装置,包括:
18.获取模块,被配置为响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;
19.第一确定模块,被配置为根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;
20.计算模块,被配置为计算所述部署位置对应的第一网络状态信息;
21.第二确定模块,被配置为基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
22.根据本说明书实施例的第五方面,提供了基于容器的一种资源调度装置,包括:
23.第一确定模块,被配置为响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;
24.获取模块,被配置为获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;
25.第二确定模块,被配置为根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
26.根据本说明书实施例的第六方面,提供了基于容器的一种资源调度系统,所述系统包括容器创建模块、节点访问模块,其中,
27.所述容器创建模块,被配置为响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点;
28.所述节点访问模块,被配置为响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
29.根据本说明书实施例的第七方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述基于容器的资源调度方法的步骤。
30.根据本说明书实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述基于容器的资源调度方法的步骤。
31.根据本说明书实施例的第九方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于容器的资源调度方法的步骤。
32.本说明书提供的基于容器的资源调度方法,响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;根
据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;计算所述部署位置对应的第一网络状态信息;基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
33.本说明书一实施例实现了通过根据容器部署信息确定所述目标容器的部署位置,并计算部署位置的第一网络状态信息,并基于第一网络状态信息选择目标部署节点,实现了基于容器部署信息和部署位置的第一网络状态信息选择目标部署节点,由于该方法在部署容器时,考虑到容器应用自身上下游依赖应用的情况,选择网络状态较好的节点作为目标部署节点,从而使得目标容器的应用在目标部署节点上不需要消耗额外的时间在网络链路上,提高使用效率。
34.本说明书提供的基于容器的资源调度方法,响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
35.本说明书一实施例实现了通过根据调度节点的负载信息和第二网络状态信息确定目标调度节点,由于该方法在容器访问节点时,考虑调度节点的负载情况以及网络状态,选择负载情况、网络状态较好的调度节点作为目标调度节点,从而保证目标调度节点的服务质量稳定。
36.本说明书提供的基于容器的资源调度系统,所述系统包括容器创建模块、节点访问模块,其中,所述容器创建模块响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点;所述节点访问模块响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。该系统将容器创建模块和节点访问模块结合,在部署容器时,考虑到容器应用自身上下游依赖应用的情况,选择网络状态较好的节点作为目标部署节点,从而使得目标容器的应用在目标部署节点上不需要消耗额外的时间在网络链路上,提高使用效率。在容器访问节点时,考虑调度节点的负载情况以及网络状态,选择负载情况、网络状态较好的调度节点作为目标调度节点,从而保证目标调度节点的服务质量稳定。该系统可以使得优化后的容器拥有更好的网络性能和稳定性。
附图说明
37.图1是本说明书一个实施例提供的一种基于容器的资源调度方法的场景示意图;
38.图2是本说明书一个实施例提供的一种基于容器的资源调度方法的流程图;
39.图3是本说明书一个实施例提供的另一种基于容器的资源调度方法的流程图;
40.图4是本说明书一个实施例提供的的一种基于容器的资源调度方法的处理流程图;
41.图5是本说明书一个实施例提供的一种基于容器的资源调度系统的结构示意图;
42.图6是本说明书一个实施例提供的一种容器创建模块的结构示意图;
43.图7是本说明书一个实施例提供的一种应用全链路评估组件的结构示意图;
44.图8是本说明书一个实施例提供的一种网络状态评估组件的结构示意图;
45.图9是本说明书一个实施例提供的一种节点访问模块的结构示意图;
46.图10是本说明书一个实施例提供的一种负载均衡策略组件的结构示意图;
47.图11是本说明书一个实施例提供的一种应用于容器创建的基于容器的资源调度方法的处理过程流程图;
48.图12是本说明书一个实施例提供的一种基于容器的资源调度装置的结构示意图;
49.图13是本说明书一个实施例提供的另一种基于容器的资源调度装置的结构示意图;
50.图14是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
51.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
52.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
53.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
54.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
55.负载均衡:负载均衡(load balance)将请求分摊到多个后端服务节点上进行服务,提供网络服务横向扩展能力,增强网络数据处理能力,提高网络可用性。
56.节点:node是集群中的工作负载节点,每个node都会被分配一些应用容器。
57.流水线:pipeline,这里指按照一定顺序来安排应用容器之间的访问次序,如httpserver-》项目处理容器-》数据库,这个pipeline说明一个完整的http请求是按照3个步骤进行,首先为http处理步骤,然后是项目处理步骤,然后是数据库存储步骤
58.云原生是近几年云计算领域炙手可热的话题,云原生技术已成为驱动项目增长的重要引擎。云原生技术从基础的容器引擎出发,不断扩展应用领域,对边缘、异构等各类场景的适配能力不断深入。从早期开源的容器引擎项目,到实现容器高效编排的集群,再到为了更好的解决微服务治理的难题,基于服务网络技术推出的用于部署服务的网络,以及针对边缘场景推出的一些项目,面向高性能异构计算场景的项目,无一不成为加速云原生与行业融合、推动各行业创新的助推器。
59.目前云原生技术基础平台的实施标准为一些开源软件,平台上为项目和应用提供容器调度和部署能力,同时为应用提供云原生的负载均衡能力。伴随着云原生基础技术日益成熟,越来越多的项目和应用认识到云原生技术对项目带来的价值并将项目和应用迁移到以云原生技术为基础的平台之上,随着项目部署规模愈发复杂,项目其对容器网络吞吐、时延等相关性能也提出更高的要求。
60.目前云原生分布式调度系统提供了云原生应用容器的调度和部署功能,同时为云原生应用容器提供了集群内部负载均衡的能力。但分布式调度系统在部署和调度云原生应用容器时只考虑了当前容器自身的资源要求,如cpu、内存和部署节点范围等要求,并没有考虑到应用自身上下游依赖应用的情况,导致上下游依赖的应用可能分布在不同的物理节点上,消耗额外的时间在网络链路上,使得应用需要更多的资源才能达到预期的效果;此外在应用容器使用网络负载均衡服务时,采用随机选取服务后端服务节点的方式来提供服务,没有考虑后端服务节点与应用容器节点之间的网络性能、后端服务节点的负载情况以及后端服务节点后续调用链路的网络开销,这导致应用在请求下游服务时下游服务提供的服务质量不稳定,出现波动较大的情况,影响应用整体性能和效率。
61.基于此,在本说明书中提供了基于容器的资源调度方法用于解决上述问题,本说明书同时涉及一种基于容器的资源调度系统、基于容器的资源调度装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
62.参见图1,图1是本说明书一实施例提供的一种基于容器的资源调度方法的场景示意图,其中,分布式调度系统接收到针对应用容器a的创建请求,分布式调度系统在根据本说明书提供的基于容器的资源调度方法确定目标部署节点,并在目标部署节点上创建应用容器a,后续在应用容器a访问网络服务时,容器网络负载均衡网络服务系统在根据本说明书提供的另一种基于容器的资源调度方法选取调度节点,保证为应用容器提供网络性能较好的调度节点,即图1中的后端服务节点。
63.图2示出了根据本说明书一个实施例提供的一种基于容器的资源调度方法的流程图,包括步骤202至步骤208。
64.步骤202:响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息。
65.其中,容器创建请求可以理解为用于创建目标容器的请求,容器创建请求可以是由开源平台发出,当一个项目应用需要在云原生技术平台上进行使用时,需要平台根据该项目应用生成对应的容器创建请求,一个应用可以对应多个容器,并分别部署在云原生技术平台的不同节点上。容器创建请求中可以包括有该容器对应的应用标识、容器创建条件等。根据容器创建请求,可以在节点上对容器进行部署。目标容器的应用调用信息可以理解为目标容器对应的应用的全链路信息,例如,目标容器对应的项目应用为http请求,则该应用的全链路信息可以是提前设置好的pipeline:httpserver-》项目处理容器-》数据库,当需要执行该项目应用时,会按照3个步骤进行,首先为http处理步骤,然后是项目处理步骤,然后是数据库存储步骤。部署节点可以理解为目标容器能够进行部署的节点,部署节点的容器部署信息可以理解为每个部署节点上已经部署的容器信息,容器部署节点信息中包括有该容器对应的应用标识、应用调用信息、部署节点标识,例如,px_py_nz,其中,px为应用标识x、py为pipeline标识y、nz为部署节点标识z。
66.在实际应用中,云原生平台发出容器创建请求之后,分布式调度系统会接收到该容器创建请求并响应,获取目标容器的pipeline信息和当前所有节点上的已经部署容器的信息,根据上述信息确定目标容器对应的部署节点。
67.在本说明书一实施例中,响应于接收到对目标容器a的容器创建请求,获取目标容器a的pipeline为:应用a-应用b-应用c,以及部署节点列表中每个部署节点上已经部署过的容器的容器部署信息。
68.具体实施时,为了提高部署节点的选择效率,可以在接收到容器创建请求时,根据容器创建请求对所有部署节点进行筛选,把不满足目标容器部署的节点剔除掉,比如,根据cpu、内存资源无法满足目标容器的要求,容器明确不想部署的节点等过滤条件。
69.具体地,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息之前,所述方法还包括:
70.根据所述容器创建请求中携带的节点过滤条件确定至少一个部署节点;
71.根据所述至少一个部署节点创建部署节点列表。
72.其中,节点过滤条件可以理解为对部署节点进行筛选的条件,节点过滤条件可以是节点的属性信息,例如节点的cpu、内存资源等,节点过滤条件也可以手动设置的容器明确不想部署的节点,例如,目标容器a明确不想部署在节点a上,则可以将节点a进行过滤。
73.在实际应用中,容器创建请求中携带有节点过滤条件,根据节点过滤条件可以过滤掉所有不符合条件的节点,将符合条件的部署节点组建成部署节点列表,后续从部署节点列表中进行分配,从而提高目标容器的部署效率。
74.在本说明书一实施例中,根据容器创建请求中携带的节点过滤条件确定部署节点,节点过滤条件为cpu版本大于等于1.5、内存资源大于16g,则根据节点过滤条件确定部署节点a、部署节点b、部署节点c,根据以上3个部署节点创建部署节点列表,部署节点列表中包含这3个部署节点。
75.在实际应用中,为了获取部署节点的容器部署信息,需要先确定每个部署节点上已经部署的容器,具体地,获取部署节点列表中部署节点的容器部署信息,包括:
76.确定部署节点列表中部署节点的已部署容器集群;
77.根据所述已部署容器集群获取所述部署节点的容器部署信息。
78.其中,已部署容器集群可以理解为已经部署在部署节点上的容器集合,例如,部署节点a上部署了3个容器,分别是应用a、应用b、应用c,则部署节点a对应的已部署容器集群中则包括应用a、应用b、应用c。根据每个部署节点上的已部署容器集群则可以获取部署节点的容器部署信息,容器部署信息中包括该部署节点上每个容器对应的容器信息。
79.在本说明书一实施例中,确定部署节点列表中部署节点a的已部署容器集群,已部署容器集群中有2个已部署容器,分别是已部署容器a和已部署容器b,则该部署节点的容器部署信息为:已部署容器a的容器信息和已部署容器b的容器信息。已部署容器a的容器信息为:容器a对应的应用标识a_应用a的pipelinea_部署节点a的标识,已部署容器b的容器信息为:容器b对应的应用标识b_应用b的pipelineb_部署节点a的标识。
80.步骤204:根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置。
81.其中,目标容器在部署节点上的部署位置可以理解为目标容器部署在节点上的位
置,例如,部署节点上已经部署了应用a-应用b-应用c,根据应用调用信息确定目标容器对应的应用d在应用b和应用c之间,则目标容器的部署位置在部署节点的应用b和应用c之间。
82.在实际应用中,目标容器对应的应用调用信息中包括目标容器对应的应用的上游应用和下游应用,例如,目标容器对应的应用a的应用调用信息为:应用b-应用a-应用c,则应用b为上游应用,应用c为下游应用,而应用b和应用c可能部署在不同的节点上,则应用a的部署位置也会有多个。
83.在本说明书一实施例中,根据目标容器的应用调用信息以及每个部署节点的容器部署信息确定目标容器在部署节点上的部署位置,部署位置为部署节点a的应用1和应用2之间,部署节点b的应用2和应用3之间。
84.具体地,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,包括:
85.获取所述应用调用信息中针对目标容器的上游应用信息和下游应用信息;
86.根据所述上游应用信息在所述已部署容器集群中确定目标上游容器,以及根据所述下游应用信息在所述已部署容器集群中确定目标下游容器;
87.根据所述目标上游容器和所述目标下游容器确定所述目标容器在所述部署节点上的部署位置。
88.其中,上游应用信息为目标容器对应的应用的前一个调用的应用信息,下游应用信息为目标容器对应的应用的后一个调用的应用信息,例如,目标应用a的的应用调用信息为:应用b-应用a-应用c,则应用b为上游应用,应用c为下游应用,上游应用信息即为应用b的容器信息,即应用b对应的容器部署在哪个节点上,下游应用信息即为应用b的容器细腻系,即应用c对应的容器部署在哪个节点上。
89.在实际应用中,由于一个应用对应多个容器,多个容器又可以部署在不同的节点上,因此,目标容器的部署节点也可以部署在多个部署节点上,但是当目标容器的上下游容器不在同一个节点上时,考虑到网络速率等因素,后续还会对部署位置进行一个网络状态是否优良的筛选。
90.在本说明书一实施例中,获取目标容器a对应的目标应用a的应用调用信息,应用调用信息为:应用b-应用a-应用c,确定目标容器的上游应用信息为应用b的容器信息:pb_py_nz,其中,pb为上游应用b的标识、py为上游应用b的应用调用信息、nz为上游应用b所在的节点标识。同理可确定出下游应用c的下游应用信息,根据上游应用信息可以确定出有2个部署节点上部署有应用b,分别是部署节点a和部署节点b,根据下游应用信息可以确定出有1个部署节点c,确定出部署节点a和部署节点b上的上游应用b对应的容器,以及部署节点c上的下游应用c对应的容器,根据两个目标上游容器和目标下游容器确定出目标容器a对应的部署位置可以是:部署节点a上上游应用b对应的容器的后边、部署节点b上上游应用b对应的容器的后边、部署节点b上下游应用c对应的容器的前边。
91.具体地,根据所述目标上游容器和所述目标下游容器确定所述目标容器在所述部署节点上的部署位置,包括:
92.获取所述目标上游容器的部署信息和所述目标下游容器的部署信息;
93.根据所述目标上游容器的部署信息和所述目标下游容器的部署信息在所述部署节点上确定所述目标容器的部署位置。
94.其中,容器的部署信息即为容器部署在哪个节点上的信息,例如,目标容器a部署在部署节点a上,则目标容器a的部署信息则为:应用a_应用a的应用调用信息_部署节点a,根据目标上游容器的部署信息和目标下游容器的部署信息则可以确定出目标容器的部署位置。
95.在本说明书一实施例中,沿用上例,获取目标上游容器b的部署信息和目标下游容器c的部署信息,根据目标上游容器b的部署信息和目标下游容器的部署信息在部署节点a、b、c上确定目标容器的部署位置,部署位置分别为部署节点a上上游应用b对应的容器的后边、部署节点b上上游应用b对应的容器的后边、部署节点b上下游应用c对应的容器的前边。
96.步骤206:计算所述部署位置对应的第一网络状态信息。
97.其中,第一网络状态信息可以理解为该部署位置的应用容器在提供项目服务时,与上下游应用容器之间的网络速率信息,例如,应用a部署在部署节点a上,则应用a在部署节点a的部署位置对应的第一网络状态信息为应用a与上游应用b的时延加上应用a与下游应用c的时延之和,从而后续可以根据每个部署位置对应的第一网络状态信息选择时延总和较小的部署位置,从而确定出网络状态较好的部署节点。
98.具体地,计算所述部署位置对应的第一网络状态信息,包括:
99.获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息;
100.根据所述上游节点网络状态信息和下游节点网络状态信息计算所述部署位置对应的第一网络状态信息。
101.其中,上游节点网络状态信息可以理解为上游所有容器所在节点时延总和,下游节点网络状态信息可以理解为下游所有容器所在节点时延总和,从而根据上游节点网络状态信息和下游节点网络状态信息计算出部署位置对应的第一网络状态信息。
102.在实际应用中,以目标容器与上下游应用容器总的网络速率为目标来计算第一网络状态信息,即目标容器与上游所有容器所在节点时延总和,加上目标容器与下游所有容器所在节点时延总和。具体地,第一网络状态信息的计算公式参见公式1,其中,σpx_py_nzi即为上游所有容器所在节点时延总和,σnx_py_nzi即为下游所有容器所在节点时延总和。
103.f(i)=min(σpx_py_nzi+σnx_py_nzi)公式1
104.具体地,在计算第一网络状态信息之前,即计算上下游应用容器所在节点时延总和之前,需要获得每个应用容器虽在节点的网络状态信息,即获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息,包括:
105.根据所述目标上游容器的部署信息确定所述部署位置对应的上游节点,并获取所述上游节点的上游节点网络状态信息;
106.根据所述目标下游容器的部署信息确定所述部署位置对应的下游节点,并获取所述下游节点的下游节点网络状态信息。
107.其中,上游节点可以理解为上游应用容器所在的节点,下游节点可以理解为下游应用容器所在的节点,上游节点网络状态信息可以理解为上游节点的网络时延,下游节点网络状态信息可以理解为下游节点的网络时延,节点网络状态信息可以表示为:nxy=*ms,即表征为从节点x到节点y的网络时延为*毫秒,若x节点与y节点为相同节点,则网络时延默认为0ms。
108.在本说明书一实施例中,根据目标上游容器的部署信息确定部署位置对应的上游节点为部署节点a和部署节点b,根据目标下游容器的部署信息确定部署位置对应的下游节点为部署节点c,当部署在部署节点a上,获取到上游节点网络状态信息为naa和下游节点网络状态信息nac;当部署在部署节点b上,获取到上游节点网络状态信息为nbb和下游节点网络状态信息nbc;当部署在部署节点c上,获取到上游节点网络状态信息为nac和nbc和下游节点网络状态信息ncc,计算出的第一网络状态信息为:naa+nac、nbb+nbc、nac+ncc。
109.步骤208:基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
110.在计算出每个部署位置对应的第一网络状态信息之后,则可以根据每个第一网络状态信息进行目标部署节点的选择。
111.具体地,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点,包括:
112.根据所述第一网络状态信息对所述部署节点列表中的部署节点按照网络延迟值从低到高的顺序进行排序;
113.根据排序结果确定目标部署节点。
114.在实际应用中,由于目标容器能够部署在多个部署节点上,因此对应的部署位置也有多个,但是每个部署位置对应的第一网络状态信息不同,因此目标应用容器在每个部署位置上所消耗的网络资源也不同,为了减少消耗的网络资源,需要选择出网络时延,即网络延迟值较小的部署节点进行部署。
115.在本说明书一实施例中,沿用上例,根据上游节点网络状态信息和下游节点网络状态信息计算出的第一网络状态信息为naa+nac、nbb+nbc、nac+ncc,naa+nac为100ms,nbb+nbc为200ms,nac+ncc为300ms,则按照网络状态从低到高的顺序对部署节点进行排序,排序结果为:部署节点a、部署节点b、部署节点c,则选择部署节点a为目标部署节点,后续可以将目标部署节点的节点信息发送给平台,使得平台在部署节点a上进行目标容器的创建。
116.本说明书提供的一种基于容器的资源调度方法,包括:响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;计算所述部署位置对应的第一网络状态信息;基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。通过在容器创建时,考虑到上下游容器应用所在的节点网络状态信息,选择网络性能较佳的节点作为目标部署节点,保证后续目标容器对应的应用提供服务的稳定性。
117.图3示出了根据本说明书一个实施例提供的另一种基于容器的资源调度方法的流程图,包括步骤302至步骤306。
118.步骤302:响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表。
119.其中,目标容器的访问请求可以理解为目标容器对应的应用在访问网络服务时发出的服务,根据访问请求可以确定出调度节点列表,调度节点列表中的调度节点为具有提供服务能力的节点。目标容器访问调度节点可以理解为使调度节点为目标容器对应的应用提供网络服务。
120.在实际应用中,访问请求中携带有负载均衡策略,负载均衡策略包括有集群内部
暴露的虚拟vip地址以及后端提供服务能力的节点地址,则根据访问请求可以筛选出一些符合要求的调度节点。
121.具体地,根据所述访问请求确定调度节点列表,包括:
122.根据所述访问请求中携带的节点过滤条件确定至少一个调度节点;
123.根据所述至少一个调度节点创建调度节点列表。
124.其中,节点过滤条件可以理解为负载均衡策略,节点过滤条件是应用使用者根据自身需求提前设置的,包括集群内部暴露的vip和对应的rs地址。即根据节点过滤条件可以确定目标容器具有哪些节点的访问权限。
125.在本说明书一实施例中,根据访问请求中携带的负载均衡策略确定调度节点a和调度节点b,根据调度节点a和调度节点b创建调度节点列表。
126.步骤304:获取所述调度节点列表中调度节点的负载信息和第二网络状态信息。
127.其中,调度节点的负载信息可以理解为调度节点为应用容器提供服务的信息,例如,调度节点a每被容器选中一次,则负载值加1,调度节点默认负载值为0。负载信息的表示形式为:vx_ry=z,表征为vipx的调度节点y的负载值为z。第二网络状态信息可以理解为调度节点的网络速率,表示形式为nab,表征为目标容器a所在的部署节点a至调度节点b的网络速率。
128.在实际应用中,根据调度节点的负载信息和第二网络状态信息进行目标调度节点的选择条件,可以根据不同项目容器实际使用情况来针对性优化网络层面的性能,提高应用容器整体性能。
129.在本说明书一实施例中,获取调度节点列表中调度节点a的负载信息和第二网络状态信息,调度节点a的负载信息为20,第二网络状态信息为nac=200ms。获取调度节点b的负载信息和第二网络状态信息,调度节点b的负载信息为10,第二网络状态信息为nbc=100ms。
130.步骤306:根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
131.其中,目标调度节点可以理解为选择的为目标容器提供服务的节点,在获取到每个调度节点的负载信息和第二网络状态信息之后,则可以筛选出目标调度节点。
132.在实际应用中,当目标容器访问节点时,可以判断目标容器是否为首次访问,若不是首次访问,则可以获取目标容器上次访问的节点的节点信息,判断该节点是否正常,该节点正常的情况下,还是使该节点为目标容器提供服务,若不正常,则为目标容器分配新的节点。若是首次访问,也同样为目标容器分配新的节点。
133.具体地,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点之前,还包括:
134.根据所述访问请求中携带的访问记录判断所述目标容器是否存在对应的历史调度节点;
135.在所述目标容器存在历史调度节点的情况下,根据所述历史调度节点确定所述目标容器的目标调度节点;
136.在所述目标容器不存在历史调度节点的情况下,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
137.其中,访问记录可以理解为目标容器访问节点的记录,根据访问请求中携带的访问记录则可以判断出目标容器是否为首次访问,在不是首次访问的情况下,访问记录中会记载有目标容器上次访问的历史调度节点的记录,在历史调度节点正常工作的情况下,还是将目标容器分配至该历史调度节点,在历史调度节点没有正常工作的情况下,重新为目标容器分配调度节点,同理,在是首次访问的情况下,也为目标容器分配调度节点。
138.在实际应用中,具体的实施流程可以参见图4,图4示出了本说明书一实施例提供的一种基于容器的资源调度方法的处理流程图,其中,目标容器发出访问请求时,访问请求为访问负载均衡vip地址服务,会判断目标容器是否为首次访问,若是,则继续为目标容器分配调度节点,若否,则判断是否存在历史调度节点,即图4中判断后端节点状态是否正常,若后端节点状态正常,则返回已分配的后端服务节点信息,若后端节点不正常,则继续为目标容器分配调度节点。
139.在本说明书一实施例中,根据访问请求中携带的访问记录判断目标容器是否存在对应的历史调度节点,访问记录中记录目标容器之前访问过历史调度节点a,则判断历史调度节点是否可以正常提供访问服务,历史调度节点可以正常提供服务,则将历史调度节点作为目标调度节点返回给目标容器进行访问。
140.在本说明书一实施例中,根据访问请求中携带的访问记录判断目标容器是否存在对应的历史调度节点,访问记录中记录目标容器之前访问过历史调度节点a,则判断历史调度节点是否可以正常提供访问服务,历史调度节点不可以正常提供服务,则重新为目标容器分配调度节点。
141.在另一种情况下,在所述目标容器不存在历史调度节点的情况下,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点,包括:
142.根据所述调度节点的负载信息和第二网络状态信息计算所述调度节点的选择权重;
143.根据所述选择权重在所述调度节点列表中确定目标调度节点。
144.其中,选择权重为每个调度节点的选择概率,选择权重越高,则选择的几率越大,相反地,选择的几率越小。选择权重的具体计算公式如公式2所示,其中,n
ay
为目标容器所在的节点a与调度节点y之间的网络速率,即第二网络状态信息,w
l
为网络状态信息的计算权重,v
x
_ry为调度节点当前的负载值,wn为负载的计算权重。
145.f(y)=min(v
x
_ry×wl
+n
ay
×
wn)公式2
146.在实际应用中,可以基于每个调度节点的网络状态信息和负载信息经过加权之后计算出该调度节点的网络性能。
147.在本说明书一实施例中,沿用上例,调度节点a的负载信息为20,第二网络状态信息为nac=200ms。获取调度节点b的负载信息和第二网络状态信息,调度节点b的负载信息为10,第二网络状态信息为nbc=100ms,w
l
为0.4,wn为0.6,计算出调度节点a的选择权重为128,计算出调度节点b的选择权重为64,则选择调度节点b为目标调度节点,使用调度节点b为目标容器对应的应用提供服务。
148.本说明书一实施例提供的一种响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;获取所述调度节点列表中调度节点的负载信息和第二网络状态信
息;根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。根据调度节点的负载信息和第二网络状态信息来选择为目标容器提供服务的目标调度节点,实现了根据后端服务节点网络距离动态选择优化网络路径,充分发挥网络能力,提高容器网络请求的性能和可靠性。
149.图5示出了根据本说明书一个实施例提供的一种基于容器的资源调度系统的结构示意图,所述系统包括容器创建模块、节点访问模块,其中,
150.所述容器创建模块响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
151.所述节点访问模块响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
152.其中,所述容器创建模块和所述节点访问模块与上述基于容器的资源调度方法中的处理流程相同,本说明书在此不作过多赘述。需要注意的是,容器创建模块中包括基础评估组件、应用全链路评估组件、网络状态评估组件、调度策略计算组件。
153.如图6所示,图6示出了本说明书一实施例提供的容器创建模块的结构示意图,其中,基础评估组件用于对标开源平台里面的初筛阶段,在收到容器创建请求时,把不满足对应容器部署的node节点剔除掉,比如cpu、内存资源无法满足容器要求,容器明确不想部署的node等过滤条件,过滤掉所有不符合条件的node后,将符合要求的node列表发送给调度策略计算组件;
154.参见图7,图7示出了本说明书一实施例提供的一种应用全链路评估组件的结构示意图,其中,应用全链路评估组件,又称应用全链路评估模块,用于存储项目输入的应用全链路调用流水线信息,即图7中的pipeline1、pipeline2、pipeline3,在有容器创建请求时将对应容器的全链路信息以及当前已部署容器的node(节点)位置发送给调度策略计算组件进行策略计算,即获取到目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息。
155.参见图8,图8示出了本说明书一实施例提供的一种网络状态评估组件的结构示意图,其中,网络状态评估组件,又称网络状态评估模块用于存储各node之间网络连接状态和速率,当有容器创建请求时将所有符合容器创建要求的node间网络情况发送给调度策略计算组件,以使后续计算第一网络状态信息时使用。
156.调度策略计算组件用于根据容器创建时其所在应用pipeline的上下游节点部署位置和具备部署此容器的node列表为策略输入,以容器与上下游应用容器总的网络速率较小为目标来进行调度策略的计算,并将计算结果返回给容器,调度计算公式如下,即找到与上游所有容器所在node时延总和+上下游所有容器所有node时延总和较小的那个node即为这个容器网络性能较好的节点,即根据应用调用信息以及容器部署信息确定目标容器在部署节点上的部署位置,计算部署位置对应的第一网络状态信息,基于第一网络状态信息在
部署节点列表中确定目标部署节点。
157.如图9所示,图9示出了本说明书一实施例提供的一种节点访问模块的结构示意图,其中,节点访问模块中包括负载均衡策略组件、负载评估组件、网络状态评估组件、网络流量选路组件。参见图10,图10示出了本说明书一实施例提供的一种负载均衡策略组件的结构示意图,负载均衡策略组件,又称负载均衡策略模块用于存储应用使用者根据自身需求创建负载均衡策略,包括集群内部暴露的vip以及后端提供服务能力的容器列表,即根据访问请求确定调度节点列表
158.负载评估组件用于存储各负载均衡调度节点负载情况,在网络流量选路请求时发送对应结果供其使用,即获取调度节点列表中调度节点的负载信息。
159.网络状态评估组件用于在网络流量选路请求时发送对应node网络状态信息供其使用,获取调度节点列表中调度节点的第二网络状态信息。
160.网络流量选路组件用于计算找出经过加权之后节点负载与网络时延之和较低的调度节点,并将vip替换成这个调度节点的ip地址,为应用提供服务,即根据调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
161.本说明书一实施例提供的一种基于容器的资源调度系统,所述系统包括容器创建模块、节点访问模块,其中,所述容器创建模块响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点;所述节点访问模块响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。通过容器创建模块和节点访问模块,实现了为目标容器创建时选择网络性能较好的部署节点,在目标容器发出访问请求时,为目标容器选择网络性能较好的调度节点提供服务,充分发挥网络能力,提高应用容器的整体性能。
162.下述结合附图11,以本说明书提供的基于容器的资源调度方法在容器创建的应用为例,对所述基于容器的资源调度方法进行进一步说明。其中,图11示出了本说明书一个实施例提供的一种基于容器的资源调度方法的处理过程流程图,具体步骤包括步骤1102至步骤1116。
163.步骤1102:响应于接收到对目标容器的容器创建请求。
164.其中,容器创建请求用于创建目标容器a,目标容器a对应的应用为应用a。
165.步骤1104:根据所述容器创建请求中携带的节点过滤条件确定至少一个部署节点。
166.其中,节点过滤条件为节点的内存资源不小于8gb,确定出部署节点为节点a和节点b。
167.步骤1106:根据所述至少一个部署节点创建部署节点列表。
168.其中,部署节点列表中包括有部署节点a和部署节点b。
169.步骤1108:获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息。
170.其中,应用调用信息为应用b-应用a-应用c,部署节点a上部署有应用b-应用d,部署节点b上部署有应用c-应用e。
171.步骤1010:根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置。
172.其中,部署位置为部署节点a上应用b的下游,以及部署节点b上应用c的上游。
173.步骤1112:获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息。
174.其中,获取部署节点a的网络状态信息和部署节点b的网络状态信息。
175.步骤1114:根据所述上游节点网络状态信息和下游节点网络状态信息计算所述部署位置对应的第一网络状态信息。
176.其中,第一网络状态信息为目标应用a分别部署在部署节点a和部署节点b上的上下游应用容器所在节点时延总和,部署节点a对应的时延总和为100,部署节点b对应的时延总和为50。
177.步骤1116:基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
178.其中,根据第一网络状态信息选择部署节点b为目标部署节点,使目标容器a部署在部署节点b中的部署位置。
179.本说明书一实施例提供的应用于容器创建的基于容器的资源调度方法,包括:响应于接收到对目标容器的容器创建请求,根据所述容器创建请求中携带的节点过滤条件确定至少一个部署节点,根据所述至少一个部署节点创建部署节点列表,取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息,根据所述上游节点网络状态信息和下游节点网络状态信息计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。实现了为目标容器创建时选择网络性能较好的部署节点,在目标容器发出访问请求时,为目标容器选择网络性能较好的调度节点提供服务,充分发挥网络能力,提高应用容器的整体性能。
180.与上述方法实施例相对应,本说明书还提供了基于容器的资源调度装置实施例,图12示出了本说明书一实施例提供的一种基于容器的资源调度装置的结构示意图。如图12所示,该装置包括:
181.获取模块1202,被配置为响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;
182.第一确定模块1204,被配置为根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;
183.计算模块1206,被配置为计算所述部署位置对应的第一网络状态信息;
184.第二确定模块1208,被配置为基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。
185.可选地,所述装置还包括过滤模块,被配置为:
186.根据所述容器创建请求中携带的节点过滤条件确定至少一个部署节点;
187.根据所述至少一个部署节点创建部署节点列表。
188.可选地,所述获取模块1202,进一步被配置为:
189.确定部署节点列表中部署节点的已部署容器集群;
190.根据所述已部署容器集群获取所述部署节点的容器部署信息。
191.可选地,所述第一确定模块1204,进一步被配置为:
192.获取所述应用调用信息中针对目标容器的上游应用信息和下游应用信息;
193.根据所述上游应用信息在所述已部署容器集群中确定目标上游容器,以及根据所述下游应用信息在所述已部署容器集群中确定目标下游容器;
194.根据所述目标上游容器和所述目标下游容器确定所述目标容器在所述部署节点上的部署位置。
195.可选地,所述第一确定模块1204,进一步被配置为:
196.获取所述目标上游容器的部署信息和所述目标下游容器的部署信息;
197.根据所述目标上游容器的部署信息和所述目标下游容器的部署信息在所述部署节点上确定所述目标容器的部署位置。
198.可选地,所述计算模块1206,进一步被配置为:
199.获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息;
200.根据所述上游节点网络状态信息和下游节点网络状态信息计算所述部署位置对应的第一网络状态信息。
201.可选地,所述计算模块1206,进一步被配置为:
202.根据所述目标上游容器的部署信息确定所述部署位置对应的上游节点,并获取所述上游节点的上游节点网络状态信息;
203.根据所述目标下游容器的部署信息确定所述部署位置对应的下游节点,并获取所述下游节点的下游节点网络状态信息。
204.可选地,所述第二确定模块1208,进一步被配置为:
205.根据所述第一网络状态信息对所述部署节点列表中的部署节点按照网络延迟值从低到高的顺序进行排序;
206.根据排序结果确定目标部署节点。
207.本说明书一实施例提供的基于容器的资源调度装置,包括获取模块,被配置为响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;第一确定模块,被配置为根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;计算模块,被配置为计算所述部署位置对应的第一网络状态信息;第二确定模块,被配置为基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。通过在容器创建时,考虑到上下游容器应用所在的节点网络状态信息,选择网络性能较佳的节点作为目标部署节点,保证后续目标容器对应的应用提供服务的稳定性。
208.与上述方法实施例相对应,本说明书还提供了基于容器的资源调度装置实施例,图13示出了本说明书一实施例提供的另一种基于容器的资源调度装置的结构示意图。如图13所示,该装置包括:
209.第一确定模块1302,被配置为响应于接收到目标容器的访问请求,根据所述访问
请求确定调度节点列表;
210.获取模块1304,被配置为获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;
211.第二确定模块1306,被配置为根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
212.可选地,所述第二确定模块1306,进一步被配置为:
213.根据所述访问请求中携带的访问记录判断所述目标容器是否存在对应的历史调度节点;
214.在所述目标容器存在历史调度节点的情况下,根据所述历史调度节点确定所述目标容器的目标调度节点;
215.在所述目标容器不存在历史调度节点的情况下,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。
216.可选地,所述第二确定模块1306,进一步被配置为:
217.根据所述调度节点的负载信息和第二网络状态信息计算所述调度节点的选择权重;
218.根据所述选择权重在所述调度节点列表中确定目标调度节点。
219.本说明书一实施例提供的基于容器的资源调度装置,包括第一确定模块,被配置为响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;获取模块,被配置为获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;第二确定模块,被配置为根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。根据调度节点的负载信息和第二网络状态信息来选择为目标容器提供服务的目标调度节点,实现了根据后端服务节点网络距离动态选择优化网络路径,充分发挥网络能力,提高容器网络请求的性能和可靠性。
220.上述为本实施例的基于容器的资源调度装置的示意性方案。需要说明的是,该基于容器的资源调度装置的技术方案与上述的基于容器的资源调度方法的技术方案属于同一构思,基于容器的资源调度装置的技术方案未详细描述的细节内容,均可以参见上述基于容器的资源调度方法的技术方案的描述。
221.图14示出了根据本说明书一实施例提供的一种计算设备1400的结构框图。该计算设备1400的部件包括但不限于存储器1410和处理器1420。处理器1420与存储器1410通过总线1430相连接,数据库1450用于保存数据。
222.计算设备1400还包括接入设备1440,接入设备1440使得计算设备1400能够经由一个或多个网络1460通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备1440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
223.在本说明书的一个实施例中,计算设备1400的上述部件以及图14中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图14所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换
其他部件。
224.计算设备1400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备1400还可以是移动式或静止式的服务器。
225.其中,处理器1420执行所述计算机指令时实现所述的基于容器的资源调度方法的步骤。
226.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的基于容器的资源调度方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述基于容器的资源调度方法的技术方案的描述。
227.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述基于容器的资源调度方法的步骤。
228.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于容器的资源调度方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于容器的资源调度方法的技术方案的描述。
229.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述基于容器的资源调度方法的步骤。
230.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的基于容器的资源调度方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述基于容器的资源调度方法的技术方案的描述。
231.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
232.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
233.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块
并不一定都是本说明书实施例所必须的。
234.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
235.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
技术特征:1.一种基于容器的资源调度方法,包括:响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;计算所述部署位置对应的第一网络状态信息;基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。2.如权利要求1所述的方法,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息之前,所述方法还包括:根据所述容器创建请求中携带的节点过滤条件确定至少一个部署节点;根据所述至少一个部署节点创建部署节点列表。3.如权利要求1所述的方法,获取部署节点列表中部署节点的容器部署信息,包括:确定部署节点列表中部署节点的已部署容器集群;根据所述已部署容器集群获取所述部署节点的容器部署信息。4.如权利要求3所述的方法,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,包括:获取所述应用调用信息中针对目标容器的上游应用信息和下游应用信息;根据所述上游应用信息在所述已部署容器集群中确定目标上游容器,以及根据所述下游应用信息在所述已部署容器集群中确定目标下游容器;根据所述目标上游容器和所述目标下游容器确定所述目标容器在所述部署节点上的部署位置。5.如权利要求4所述的方法,根据所述目标上游容器和所述目标下游容器确定所述目标容器在所述部署节点上的部署位置,包括:获取所述目标上游容器的部署信息和所述目标下游容器的部署信息;根据所述目标上游容器的部署信息和所述目标下游容器的部署信息在所述部署节点上确定所述目标容器的部署位置。6.如权利要求5所述的方法,计算所述部署位置对应的第一网络状态信息,包括:获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息;根据所述上游节点网络状态信息和下游节点网络状态信息计算所述部署位置对应的第一网络状态信息。7.如权利要求6所述的方法,获取所述部署位置对应的上游节点网络状态信息和下游节点网络状态信息,包括:根据所述目标上游容器的部署信息确定所述部署位置对应的上游节点,并获取所述上游节点的上游节点网络状态信息;根据所述目标下游容器的部署信息确定所述部署位置对应的下游节点,并获取所述下游节点的下游节点网络状态信息。8.如权利要求1所述的方法,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点,包括:根据所述第一网络状态信息对所述部署节点列表中的部署节点按照网络延迟值从低
到高的顺序进行排序;根据排序结果确定目标部署节点。9.一种基于容器的资源调度方法,包括:响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表;获取所述调度节点列表中调度节点的负载信息和第二网络状态信息;根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。10.如权利要求9所述的方法,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点之前,还包括:根据所述访问请求中携带的访问记录判断所述目标容器是否存在对应的历史调度节点;在所述目标容器存在历史调度节点的情况下,根据所述历史调度节点确定所述目标容器的目标调度节点;在所述目标容器不存在历史调度节点的情况下,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。11.如权利要求9所述的方法,在所述目标容器不存在历史调度节点的情况下,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点,包括:根据所述调度节点的负载信息和第二网络状态信息计算所述调度节点的选择权重;根据所述选择权重在所述调度节点列表中确定目标调度节点。12.一种基于容器的资源调度系统,所述系统包括容器创建模块、节点访问模块,其中,所述容器创建模块响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息,根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置,计算所述部署位置对应的第一网络状态信息,基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点;所述节点访问模块响应于接收到目标容器的访问请求,根据所述访问请求确定调度节点列表,获取所述调度节点列表中调度节点的负载信息和第二网络状态信息,根据所述调度节点的负载信息和第二网络状态信息确定在所述调度节点列表中确定目标调度节点。13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现权利要求1-8或者9-11任意一项所述方法的步骤。14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机指令被处理器执行时实现权利要求1-8或者9-11任意一项所述方法的步骤。
技术总结本说明书实施例提供基于容器的资源调度方法及装置,其中所述基于容器的资源调度方法包括:响应于接收到对目标容器的容器创建请求,获取所述目标容器的应用调用信息和部署节点列表中部署节点的容器部署信息;根据所述应用调用信息以及所述容器部署信息确定所述目标容器在所述部署节点上的部署位置;计算所述部署位置对应的第一网络状态信息;基于所述第一网络状态信息在所述部署节点列表中确定目标部署节点。由于该方法容器创建时,考虑到部署位置的第一网络状态信息,选择网络性能较佳的节点作为目标部署节点,从而保证后续目标容器对应的应用提供服务的稳定性。器对应的应用提供服务的稳定性。器对应的应用提供服务的稳定性。
技术研发人员:白洋
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1