容器调度方法、装置及云服务器与流程

文档序号:29803146发布日期:2022-04-23 20:49阅读:92来源:国知局
容器调度方法、装置及云服务器与流程

1.本发明涉及数据处理技术领域,具体而言,涉及一种容器调度方法、装置及云服务器。


背景技术:

2.边缘服务器的边缘计算是将数据的处理、应用程序的运行,甚至一些功能服务的实现,由中心服务器下放到边缘服务器的节点上,其中,中心服务器可以为云服务器,对于边缘服务器中节点的选择也变的至关重要。
3.相关技术中,在云服务器上创建的容器,云服务器与边缘服务器可以通信,边缘服务器上设置有多个处理节点,根据预设的容器与处理节点之间的映射关系,将容器分配至相应的处理节点,实现对于容器的调度。
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.可选的,所述资源利用信息包括:所述目标容器的运行状态、所述处理节点的可用处理器容量与总处理器容量的第一比值、所述处理节点的可用内存容量与总内存容量的第二比值;
38.所述确定模块,还用于根据所述第一比值和所述第二比值以及所述目标容器的运行状态,采用预设算法确定所述成本值;根据所述第一比值和所述第二比值,计算所述处理
节点在所述预设时间的处理器利用率和内存利用率加权关系;根据所述加权关系,确定所述预设时间的信息素值。
39.可选的,所述装置还包括:
40.所述确定模块,还用于根据所述总处理器容量、所述目标容器的运行状态、所述目标容器中函数所需的处理器容量、所述处理节点的所需的处理器容量,计算所述处理节点的可用处理器容量;根据所述总内存容量、所述目标容器的运行状态、所述目标容器中函数所需的内存容量、所述处理节点的所需的内存容量,计算所述处理节点的可用内存容量。
41.可选的,所述确定模块,还用于根据所述加权关系,确定初始信息素值;根据所述初始信息素值、信息素挥发因子、释放的信息素量,确定所述预设时间的信息素值。
42.可选的,所述确定模块,还用于根据所述概率,确定概率最大的目标概率;根据预设迭代次数,迭代更新所述目标概率,得到更新后的目标概率;根据所述更新后的目标概率,从多个所述处理节点中确定出目标处理节点。
43.可选的,所述装置还包括:
44.发送模块,用于向所述边缘服务器发送针对所述目标容器的请求信息,以使所述边缘服务器所述请求信息解析得到容器地址信息,根据容器地址确定所述目标处理节点中的目标容器。
45.可选的,所述装置还包括:
46.评估模块,用于根据与所述边缘服务器的连接状态,以及所述边缘服务器中各个所述处理节点之间的自检信息,进行健康评估。
47.第三方面,本发明实施例还提供了一种云服务器,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的容器调度方法。
48.本发明的有益效果是:本技术实施例提供一种容器调度方法,获取创建的目标容器;采用预设调度器,根据目标容器以及边缘服务器中多个处理节点的资源利用信息,确定目标容器被调度至各个处理节点的概率;根据概率,从多个处理节点中确定出目标处理节点,以将目标容器调度至边缘服务器的目标处理节点上。基于目标容器以及边缘服务器中多个处理节点的资源利用信息确定目标容器被调度至各个处理节点的概率,结合资源利用信息确定的概率更加合理和准确,继而基于该概率所确定的目标处理节点也更加合理,将目标容器调度至目标处理节点上,实现了目标容器的合理调度,避免处理节点分配的任务过多的情形,实现了合理的向处理节点分配容器。
附图说明
49.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
50.图1为本发明实施例提供的一种容器调度方法的系统架构图;
51.图2为本发明实施例提供的一种容器调度方法的流程示意图;
52.图3为本发明实施例提供的一种容器调度方法的流程示意图;
53.图4为本发明实施例提供的一种容器调度方法的流程示意图;
54.图5为本发明实施例提供的一种容器调度方法的流程示意图;
55.图6为本发明实施例提供的一种容器调度方法的流程示意图;
56.图7为本发明实施例提供的一种容器调度方法的流程示意图;
57.图8为本发明实施例提供的一种容器调度装置的结构示意图;
58.图9为本发明实施例提供的一种云服务器的结构示意图。
具体实施方式
59.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
60.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
61.此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
62.需要说明的是,在不冲突的情况下,本技术的实施例中的特征可以相互结合。
63.图1为本发明实施例提供的一种容器调度方法的系统架构图,如图1所示,该方法包括:云服务器101以及边缘服务器102。云服务器101与边缘服务器102之间通信连接。
64.边缘服务器的边缘计算是将数据的处理、应用程序的运行,甚至一些功能服务的实现,由中心服务器下放到边缘服务器的节点上,其中,中心服务器可以为云服务器,对于边缘服务器中节点的选择也变的至关重要。
65.其中,云服务器101上部署有dns隧道(tunnel-dns)、云隧道(tunnel-cloud)、云隧道服务(tunnel-cloud service)api服务(apiserver)以及存储系统,该存储系统可以为etcd,etcd是一个分布式、高可用的一致性键值存储系统。
66.另外,边缘服务器102上部署有边缘api服务(lite-apiserver)、边缘隧道(tunnel-edge)、服务进程(kubernete进程)、域名解析服务(coredns服务)、容器(pods)、多个处理节点,多个处理节点中包括目标处理节点。
67.在一些实施方式中,云服务器101可以获取创建的目标容器,将目标容器存储在etcd,云服务器101采用集群控制节点(master节点)通过调度器经过apiserver,根据目标容器以及边缘服务器102中多个处理节点的资源利用信息,确定所述目标容器被调度至各个所述处理节点的概率;容器启动,随后该pod经过云边隧道被调度到目标处理节点上的服务进程,再实例化成容器并启动。
68.在本技术边缘服务器102的目标处理节点上tunnel-edge将主动连接云服务器101的tunnel-cloud service,tunnel-cloud service会根据负载均衡策略将请求转发到tunnel-cloud的具体容器上。边缘服务器102的tunnel-edge与云服务器101的tunnel-cloud建立grpc连接后,云服务器101的tunnel-cloud会把自身的podip和tunnel-edge所在处理节点的名称的映射写入tunnel dns,实现对于容器的调度。当然,当grpc连接断开之后,tunnel-cloud会删除相关pod ip和节点名的映射关系。
69.另外,边缘api服务用于提供边缘自治服务,边缘api服务和api服务之间可以基于https协议进行通信。
70.相关技术中,在云服务器上创建的容器,云服务器与边缘服务器可以通信,边缘服务器上设置有多个处理节点,根据预设的容器与处理节点之间的映射关系,将容器分配至相应的处理节点,实现对于容器的调度。但是,相关技术中,基于预先设定的映射关系对容器进行调度,所确定的处理节点不够合理,容易导致确定处理节点的任务过多问题。
71.本技术实施例提供一种容器调度方法,基于目标容器以及边缘服务器中多个处理节点的资源利用信息确定目标容器被调度至各个处理节点的概率,结合资源利用信息确定的概率更加合理和准确,继而基于该概率所确定的目标处理节点也更加合理,将目标容器调度至目标处理节点上,实现了目标容器的合理调度,避免处理节点分配的任务过多的情形,实现了合理的向处理节点分配容器。
72.以下以云服务器101为执行主体,对本技术实施例提供的容器调度方法进行解释说明。
73.图2为本发明实施例提供的一种容器调度方法的流程示意图,如图2所示,该方法可以包括:
74.s201、获取创建的目标容器。
75.其中,云服务器可以创建目标容器,继而将目标容器存放在云服务器所部署的存储系统etcd(是一个高可用、强一致性的键值存储系统)上。
76.s202、采用预设调度器,根据目标容器以及边缘服务器中多个处理节点的资源利用信息,确定目标容器被调度至各个处理节点的概率。
77.其中,预设调度器可以由预设算法构建而成。目标容器以及边缘服务器中多个处理节点的资源利用信息可以表征目标容器的所需资源和运行状态、处理节点本身的所需资源和总资源等。
78.在一些实施方式中,云服务器可以采用预设调度器中的预设算法,根据目标容器以及边缘服务器中多个处理节点的资源利用信息,计算目标容器被调度至各个处理节点的概率,得到多个概率,每个处理节点均具有对应的概率。
79.需要说明的是,概率值越大,说明目标容器被调度至该处理节点的可能越大,即该处理节点更适合处理目标容器;反之,概率值越大,说明目标容器被调度至该处理节点的可能越大,即该处理节点不太适合处理目标容器。
80.s203、根据概率,从多个处理节点中确定出目标处理节点,以将目标容器调度至边缘服务器的目标处理节点上。
81.在一些实施方式中,云服务器可以对多个概率值进行比较,得到比较结果,继而确定比较结果中最大概率值所对应的处理节点为目标节点,将目标节点的ip地址和目标容器
的名称之间的映射关系添加至云服务器中tunnel dns预设的调度表中,将容器调度至边缘服务器的目标处理节点上。
82.当然,云服务器可以多次执行s202的步骤,多次迭代更新最大概率值,将最终的最大概率值对应的处理节点作为目标节点,本技术实施例对此不进行具体限制。
83.综上所述,本技术实施例提供一种容器调度方法,获取创建的目标容器;采用预设调度器,根据目标容器以及边缘服务器中多个处理节点的资源利用信息,确定目标容器被调度至各个处理节点的概率;根据概率,从多个处理节点中确定出目标处理节点,以将目标容器调度至边缘服务器的目标处理节点上。基于目标容器以及边缘服务器中多个处理节点的资源利用信息确定目标容器被调度至各个处理节点的概率,结合资源利用信息确定的概率更加合理和准确,继而基于该概率所确定的目标处理节点也更加合理,将目标容器调度至目标处理节点上,实现了目标容器的合理调度,避免处理节点分配的任务过多的情形,实现了合理的向处理节点分配容器。
84.可选的,图3为本发明实施例提供的一种容器调度方法的流程示意图,如图3所示,上述s202中根据目标容器以及边缘服务器中多个处理节点的资源利用信息,确定目标容器被调度至各个处理节点的概率的过程,可以包括:
85.s301、根据资源利用信息,确定处理节点的成本值以及在预设时间的信息素值。
86.s302、根据处理节点的服务时间、成本值以及信息素值,计算目标容器被调度至处理节点的概率。
87.在一些实施方式中,云服务器中的调度器可以基于改进后的预设aco(ant colony optimization,蚁群算法)实现,aco算法是一种用来在图中寻找优化路径的机率型算法。
88.其中,aco算法是基于观察真实蚁群中蚂蚁的觅食行为,基本特征是蚂蚁之间通过化学信息素踪迹进行间接通信,这使它们能够找到巢穴和食物来源之间的最短路径。在寻找食物的过程中,蚂蚁沿着路径排泄信息素,其他蚂蚁根据信息素浓度来引导它们。
89.需要说明的是,信息素踪迹的效力与特定蚂蚁发现食物的质量和数量成正比,因此,所有剩余的群体成员更有可能沿着信息素浓度最高的路径汇聚。该信息素模型可用信息素轨迹参数的模型参数t的向量组成。信息素轨迹参数τi∈t,通常与解决方案的组件相关联,其中τj称为信息素值。在执行期间,aco算法使用先前生成的解决方案更新信息素值。对于给定的蚂蚁种群和一系列可能的路径,每只蚂蚁根据可用路径中每条路径中信息素踪迹的浓度来确定其路径。
90.可选的,目标容器被调度至处理节点j的概率可以表示为:
[0091][0092]
其中,其中τj(t)是处理节点j在预设时间t的信息素值,timej是处理节点j的服务时间,c
total
是处理节点j的成本值,指数α、β、λ是正参数,其值决定了信息素信息和启发式信息之间的关系(timej,c
total
),k代表蚁群的大小,即蚂蚁的数量,n代表下一步选择运行选择的节点集合。
[0093]
可选的,资源利用信息包括:目标容器的运行状态、处理节点的可用处理器容量与总处理器容量的第一比值、处理节点的可用内存容量与总内存容量的第二比值。
[0094]
图4为本发明实施例提供的一种容器调度方法的流程示意图,如图4所示,上述s301中根据资源利用信息,确定处理节点的成本值以及在预设时间的信息素值的过程,可以包括:
[0095]
s401、根据第一比值和第二比值以及目标容器的运行状态,采用预设算法确定成本值。
[0096]
其中,目标容器的运行状态可以为运行中或者未运行,目标容器的运行状态可以表示为y
ij
。目标容器的运行状态为运行中时,y
ij
可以表示为1;目标容器的运行状态为未运行时,y
ij
可以表示为0。
[0097]
在一些实施方式中,云服务器可以根据第一比值、第二比值,计算初始成本值;根据初始成本值、目标容器的运行状态以及部署时分配给处理节点的固定值,采用预设算法确定成本值。
[0098]
可选的,第一比值可以表示为u
cpu
,第二比值可以表示为u
mem
,则初始成本值c
total
可以为:
[0099][0100]
另外,目标容器的运行状态可以表示为y
ij
,处理节点j的固定值可以表示为en,则处理节点j的成本值c
total
可以表示为:
[0101][0102]
s402、根据第一比值和第二比值,计算处理节点在预设时间的处理器利用率和内存利用率加权关系。
[0103]
在一些实施方式中,云服务器可以根据第一比值、第二比值、第一比值对应的第一权重以及第二比值对应的第二权重,计算处理节点在预设时间的处理器利用率和内存利用率加权关系。
[0104]
其中,第一权重和第二权重的和值可以为1。
[0105]
可选的,第一比值可以表示为u
cpu
,第二比值可以表示为u
mem
,第一权重可以表示为第二权重可以表示为则处理节点j在预设时间t的加权关系可以表示为:
[0106][0107]
s403、根据加权关系,确定预设时间的信息素值。
[0108]
在本技术实施例中,云服务器可以上述加权关系采用预设信息素值计算公式计算目标容器和处理节点之间路径的信息素值。
[0109]
可选的,通过预设公式计算函数f作为编号为i的容器在时间t实例化的变量可引入二元变量:
[0110]
x
f,i,t
∈{0,1}i=1,2,...,p|p∈p
[0111]
其中,上述预设公式可以表示为:
[0112]
[0113]
同时,也可通过计算在时间t的所有活动的容器的总和是其中f表示请求一组具有不同计算能力要求的函数f。
[0114]
图5为本发明实施例提供的一种容器调度方法的流程示意图,如图5所示,上述s402中根据第一比值和第二比值以及目标容器的运行状态,采用预设算法确定成本值的过程之前,该方法还可以包括:
[0115]
s501、根据总处理器容量、目标容器的运行状态、目标容器中函数所需的处理器容量、处理节点的所需的处理器容量,计算处理节点的可用处理器容量。
[0116]
在一些实施方式中,云服务器可以根据目标容器的运行状态、目标容器中函数所需的处理器容量、处理节点的所需的处理器容量,计算目标容器在处理节点放置时的总所需处理器容量,采用总处理器容量减去总所需处理器容量,计算处理节点的可用处理器容量。
[0117]
其中,采用表示处理节点j在预设时间t的总处理器容量;采用表示目标容器中函数在预设时间t所需的处理器容量;采用y
ij
表示目标容器的运行状态,即编号为i的目标容器与处理节点j相关联的二进制变量;采用δ
cpu
表示处理节点j所需的处理器容量。
[0118]
则处理节点的可用处理器容量可以表示为:
[0119][0120]
需要说明的是,第一比值u
cpu
可以为表示为:
[0121][0122]
s502、根据总内存容量、目标容器的运行状态、目标容器中函数所需的内存容量、处理节点的所需的内存容量,计算处理节点的可用内存容量。
[0123]
在一些实施方式中,云服务器可以根据目标容器的运行状态、目标容器中函数所需的内存容量、处理节点的所需的内存容量,计算目标容器在处理节点放置时的总所需内存容量,采用总内存容量减去总所需内存容量,计算处理节点的可用内存容量。
[0124]
其中,采用表示处理节点j在预设时间t的总内存容量;采用表示目标容器中函数在预设时间t所需的内存容量;采用y
ij
表示目标容器的运行状态,即编号为i的目标容器与处理节点j相关联的二进制变量;采用δ
mem
表示处理节点j所需的内存容量。
[0125]
则处理节点的可用内存容量可以表示为:
[0126][0127]
需要说明的是,第二比值u
mem
可以为表示为:
[0128]
可选的,图6为本发明实施例提供的一种容器调度方法的流程示意图,如图6所示,
上述s403中根据加权关系,确定预设时间的信息素值的过程,可以包括:
[0129]
s601、根据加权关系,确定初始信息素值。
[0130]
其中,加权关系可以表示为:编号为i的目标容器和处理节点j之间路径上的预设时间t的初始信息素值可以表示为:其中t=0作为未来更新的基本情况。
[0131]
s602、根据初始信息素值、信息素挥发因子、释放的信息素量,确定预设时间的信息素值。
[0132]
其中,采用τ
ij
(t)表示初始信息素值,采用ρ表示信息素挥发因子,表示单位时间内的挥发程度,显示残留信息素的程度,a表示蚁群的大小。
[0133]
另外,蚂蚁由于放置质量而释放的信息素量可以表示为:
[0134][0135]
则预设时间的信息素值可以表示为:
[0136]
τ
ij
(t+1)=(1-ρ)τ
ij
(t)+δτ
ij
[0137]
需要说明的是,q可以为启发式常数;表示编号为i容器在处理节点j上调度的适应度,即路径长度;其中,θ1是利用率的权重因子,θ2是时间的权重因子,θ3是成本的权重系数。
[0138]
可选的,图7为本发明实施例提供的一种容器调度方法的流程示意图,如图7所示,上述s203中根据概率,从多个处理节点中确定出目标处理节点的过程,可以包括:
[0139]
s701、根据概率,确定概率最大的目标概率。
[0140]
在一些实施方式中,每个概率均具有对应的处理节点,其可以表征目标容器被放置到处理节点可能性大小,云服务器可以对多个概率进行比对,从多个概率中确定出最大概率值,将最大概率值作为目标概率。另外,云服务器还可以将该目标概率对应的处理节点的名称和目标容器的ip映射关系写入tunnel dns的调度表。
[0141]
s702、根据预设迭代次数,迭代更新目标概率,得到更新后的目标概率。
[0142]
s703、根据更新后的目标概率,从多个处理节点中确定出目标处理节点。
[0143]
其中,预设迭代次数可以根据实际需求进行设定,也可以根据经验值进行设定,还可以采用其他方式进行设定,本技术实施例对此不进行具体限制。
[0144]
可选的,初始化参数ρ;max_loop;ants_n;q;β,γ,ρ;timej;en,初始化信息素值以及初始化成本值;其次通过输入的最大迭代次数max_loop遍历循环进行信息素轨迹更新,在此次循环中,根据aco算法的要求,所有蚂蚁同时开始并行搜索路径,并在行进的路径上释放信息素。蚂蚁选择下一条要走路径的概率受到路径上残留信息素的量以及路径长短的综合影响,将选中的处理节点j添加到调度表中。
[0145]
另外,容器遍历结束会计算蚂蚁对编号为i的pod的成本。当蚂蚁遍历完后,再次进行信息素值的更新,重新初始化所有的蚂蚁,准备下一轮迭代,重复直到达到最大迭代次数或找到最佳位置。最后输出编号i的目标容器在处理节点j上放置位置。
[0146]
需要说明的是,针对每次迭代,均可以得到一个概率最大的目标概率。
[0147]
例如,第一次迭代,确定第一处理节点对应的概率为目标概率,则确定调度表中与目标容器关联的处理节点为第一处理节点;第二迭代,确定第二处理节点对应的概率为目标概率,第二处理节点对应的概率大于第一处理节点对应的概率,则将第二处理节点对应的概率作为更新后的目标概率,则确定调度表中与目标容器关联的目标处理节点可以更新为第二处理节点。同理的,进行多次迭代,直至满足预设迭代次数,确定出最终的目标处理节点。
[0148]
可选的,上述方法还包括:
[0149]
向边缘服务器发送针对目标容器的请求信息,以使边缘服务器请求信息解析得到容器地址信息,根据容器地址确定目标处理节点中的目标容器。
[0150]
在本技术实施例中,每个容器(包括目标容器)均会根据调度器去绑定对应的处理节点,同时容器启动后会生成唯一的ip地址,不同的应用可能部署在不同的容器中,容器中应用互相访问就会有局限性。为防止通过lite-apiserver以及网络快照机制保障边缘节点断网情况下重启后,容器被重新拉起后ip发生变化的情况,边缘服务器中的coredns服务将提供域名解析服务,解析得到容器的ip地址,保证服务间的正常通信。
[0151]
需要说明的是,处理节点会被置为conditionunknown(不可用)状态时,但是服务依旧可用(容器未被驱逐且服务可被调用)、多节点断网情况下,容器业务正常运行,可提供正常的服务、多节点断网情况下并重启后,容器会被重新拉起并正常运行、多节点断网情况下并重启后,所有的微服务可以被正常访问。
[0152]
而且,边缘服务器的lite-apiserver将会提供边缘自治能力,防止当边端节点与云端网络不稳定或者断连时,可以使边缘节点依旧正常运行,不影响已经部署的边缘服务,随后将调度结果写入etcd中。
[0153]
可选的,该方法还可以包括:根据与边缘服务器的连接状态,以及边缘服务器中各个处理节点之间的自检信息,进行健康评估。
[0154]
其中,云服务器可以根据与边缘服务器的连接状态,以及边缘服务器中各个处理节点之间的自检信息,进行健康评估。当然,边缘服务器,也可以根据与云服务器的连接状态,以及边缘服务器中各个处理节点之间的自检信息,进行健康评估。
[0155]
需要说明的是,健康评估可以用于评估连接状态是否稳定,以及处理节点之间的状态是否正常,例如,健康评估被检查的插件ip、名称以及检查结果是否正常。
[0156]
在本技术实施例中,在kubernetes集群中,会造成apiserver和处理节点连接中断,致使处理节点状态异常,最终导致容器被驱逐,以此造成服务的中断和波动。边缘计算场景仅仅依赖边端和apiserver的连接情况是不足以判断节点是否异常的,因为网络的不可靠会影响正常服务。而相较于云端和边缘端的连接,显然边端处理节点之间的连接更为稳定,除了考虑apiserver的因素外,还引入了处理节点的评估因素,进而对处理节点进行更为全面的状态判断。通过这个功能,能够避免由于云边网络不可靠造成大量的容器迁移和重建,保证服务的稳定。
[0157]
综上所述,本技术实施例提供一种容器调度方法,获取创建的目标容器;采用预设调度器,根据目标容器以及边缘服务器中多个处理节点的资源利用信息,确定目标容器被调度至各个处理节点的概率;根据概率,从多个处理节点中确定出目标处理节点,以将目标容器调度至边缘服务器的目标处理节点上。基于目标容器以及边缘服务器中多个处理节点
的资源利用信息确定目标容器被调度至各个处理节点的概率,结合资源利用信息确定的概率更加合理和准确,继而基于该概率所确定的目标处理节点也更加合理,将目标容器调度至目标处理节点上,实现了目标容器的合理调度,避免处理节点分配的任务过多的情形,实现了合理的向处理节点分配容器。
[0158]
本技术实施例中,为提高边缘云的集群资源利用率和服务质量(qos),提出了一种用于边缘环境的服务时间感知调度器,自动将请求分配到不同的处理节点,然后实时约束调度它们的执行,以此提高处理器和内存的资源利用率、最小化调度容器的响应时间以及最小化容器放置成本。
[0159]
而且,本技术实施例提供的容器调度方法,不仅支持原生kubernetes的特性,而且支持边缘自治和分布式健康检查以及边缘服务访问控制等高级特性,极大地消减了云边网络不稳定对服务的影响。
[0160]
下述对用以执行本技术所提供的容器调度方法的容器调度装置、云服务器及存储介质等进行说明,其具体的实现过程以及技术效果参见上述容器调度方法的相关内容,下述不再赘述。
[0161]
图8为本发明实施例提供的一种容器调度装置的结构示意图,如图8所示,本发明实施例还提供了一种容器调度装置,应用于云服务器,包括:
[0162]
获取模块901,用于获取创建的目标容器;
[0163]
确定模块902,用于采用预设调度器,根据所述目标容器以及边缘服务器中多个处理节点的资源利用信息,确定所述目标容器被调度至各个所述处理节点的概率;根据所述概率,从多个所述处理节点中确定出目标处理节点,以将所述目标容器调度至所述边缘服务器的目标处理节点上。
[0164]
可选的,所述确定模块902,还用于根据所述资源利用信息,确定所述处理节点的成本值以及在预设时间的信息素值;根据所述处理节点的服务时间、所述成本值以及所述信息素值,计算所述目标容器被调度至所述处理节点的概率。
[0165]
可选的,所述资源利用信息包括:所述目标容器的运行状态、所述处理节点的可用处理器容量与总处理器容量的第一比值、所述处理节点的可用内存容量与总内存容量的第二比值;
[0166]
所述确定模块902,还用于根据所述第一比值和所述第二比值以及所述目标容器的运行状态,采用预设算法确定所述成本值;根据所述第一比值和所述第二比值,计算所述处理节点在所述预设时间的处理器利用率和内存利用率加权关系;根据所述加权关系,确定所述预设时间的信息素值。
[0167]
可选的,所述装置还包括:
[0168]
所述确定模块902,还用于根据所述总处理器容量、所述目标容器的运行状态、所述目标容器中函数所需的处理器容量、所述处理节点的所需的处理器容量,计算所述处理节点的可用处理器容量;根据所述总内存容量、所述目标容器的运行状态、所述目标容器中函数所需的内存容量、所述处理节点的所需的内存容量,计算所述处理节点的可用内存容量。
[0169]
可选的,所述确定模块902,还用于根据所述加权关系,确定初始信息素值;根据所述初始信息素值、信息素挥发因子、释放的信息素量,确定所述预设时间的信息素值。
[0170]
可选的,所述确定模块902,还用于根据所述概率,确定概率最大的目标概率;根据预设迭代次数,迭代更新所述目标概率,得到更新后的目标概率;根据所述更新后的目标概率,从多个所述处理节点中确定出目标处理节点。
[0171]
可选的,所述装置还包括:
[0172]
发送模块,用于向所述边缘服务器发送针对所述目标容器的请求信息,以使所述边缘服务器所述请求信息解析得到容器地址信息,根据容器地址确定所述目标处理节点中的目标容器。
[0173]
可选的,所述装置还包括:
[0174]
评估模块,用于根据与所述边缘服务器的连接状态,以及所述边缘服务器中各个所述处理节点之间的自检信息,进行健康评估。
[0175]
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0176]
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
[0177]
图9为本发明实施例提供的一种云服务器的结构示意图,如图9所示,该云服务器可以包括:处理器1001、存储器1002。
[0178]
其中,存储器1002用于存储程序,处理器1001调用存储器1002存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
[0179]
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
[0180]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0181]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0182]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0183]
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存
储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0184]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1