本发明属于边缘计算,具体涉及一种基于kubernetes的边缘计算集群的任务调度及服务管理方法和系统。
背景技术:
1、云计算将服务部署到数据中心,当终端用户需要访问服务时,访问的时延会随着核心网络的波动而波动。物联网,无人驾驶等技术的普及,极大方便了人们的生活,这些技术也对基础设施提出了新的要求。云计算提供的基础设施已经不能满足无人驾驶,ar应用的实时需求,亟需一种新的计算范式来解决实时性问题。边缘计算作为近年来新出现的一种计算范式,在云计算的基础上,将一部分计算资源部署网络边缘,这部分计算资源通常以边缘服务器的形式的出现。边缘计算将服务下沉到网络边缘,与云计算相比,进一步降低了服务时延,提高了服务质量。
2、kubernetes被广泛应用于管理边缘计算平台。pod是kubernetes调度和分配资源的最小单位,应用以pod的形式运行在kubernetes集群中。service为一组提供相同服务的pod提供了统一的访问接口,在服务访问层面将具有关联关系的pod聚合起来。node是kubernetes集群中的边缘节点。基于kubernetes的边缘计算集群包含控制平面和工作平面,其中控制平面负责整个集群的调度,管理工作,工作平面处理负载任务即服务应用,服务应用最终会以pod的形式调度到node上执行。
3、kubernetes原生的任务调度策略采用轮询等静态负载均衡策略,由于在边缘计算环境下用户提交的任务消耗资源的差异性,原生的轮询策略会使pod之间负载不均衡。kubernetes的pod迁移只有在节点不可用时才会被触发,当节点的资源利用率不均衡时不会被触发,不能够保证在边缘计算环境下node之间的负载均衡。kubernetes的pod伸缩是通过限定目标资源使用率来完成的,在边缘计算环境下不能够按照sla对pod进行伸缩。因此,亟需一种基于kubernetes的边缘集群计算任务调度及服务管理方法和系统用于扩展kubernetes,以便使其更有效地应用于边缘计算平台的管理。
技术实现思路
1、为了克服现有技术的不足,本发明提供了一种基于kubernetes的边缘计算集群的任务调度及服务管理方法和系统,包括:一、获取边缘计算集群的pod、service和node信息;二、对提供服务的pod集合建立任务调度线性规划模型,其中,任务调度线性规划模型为线性规划模型;三、对任务调度线性规划模型进行求解,获取分配给服务副本的任务比例;四、按照任务调度线性规划模型求解结果对提交到边缘计算集群的任务进行调度;五、在每个时间片持续监控边缘计算集群的node和pod资源消耗数据并对pod进行迁移和伸缩。本发明在边缘计算环境下,能够按照任务调度线性规划模型分发任务,根据pod迁移模型迁移pod,依据pod伸缩模型调整pod数量,促进集群的负载分布和资源使用更加均衡,从而提升服务质量。
2、本发明解决其技术问题所采用的技术方案包括如下步骤:
3、步骤1:获取基于kubernetes构建的边缘计算集群的pod信息、service信息、node信息;所述node信息包括节点名称、资源总量及消耗量、ip地址;所述service信息包括服务名称、外部访问端口、pod数量;所述pod信息包括pod名称、pod资源总量和消耗量、pod部署的node名称、pod的容器镜像大小;
4、步骤2:对提供服务的pod集合建立任务调度线性规划模型,任务调度线性规划模型的输入是当前周期任务到达数量、任务资源消耗量、node资源总量及消耗量、pod集合,输出是分配给pod的任务比例;
5、步骤3:对任务调度线性规划模型进行求解,按照求解结果对提交到集群的任务进行调度,直至当前周期结束;在下一个周期重复步骤1至步骤3;
6、步骤4:在每个时间片的起始时刻采集node资源总量和消耗量、pod资源消耗量、任务到达率、pod数量,根据这些数据建立pod迁移和pod伸缩模型;按照pod迁移模型和pod伸缩模型的求解结果对pod进行管理,直至当前时间片结束;在下一个时间片重复步骤4。
7、进一步地,所述任务调度和服务管理运行在两个不同的时间维度;任务调度每个周期运行一次,pod迁移和伸缩每个时间片运行一次;一个时间片包含若干个周期。
8、进一步地,所述任务调度线性规划模型,具体如下:
9、
10、
11、
12、
13、
14、其中,l表示服务集合,n为node集合,p为pod集合,k为资源集合;ylnp表示提交到noden的l服务的任务调度到podp的比例;λln表示在一个周期内到达noden的l服务的任务数量;dlp表示podp和服务l的映射关系,若为1,表示podp提供l服务,若为0表示不提供;表示在上一个周期处理l服务的任务所消耗的网络资源的平均量;cnnet表示noden的网络资源总量;c′n net表示noden的网络资源消耗量;表示在上一个周期处理l服务的任务所消耗的资源k的平均量;apk表示podp拥有的资源k的总量;a′pk表podp的资源k的消耗量;
15、任务调度线性规划模型的优化目标是最大化每个周期集群处理的任务数量;约束条件是需要将任务调度到提供服务的pod以及系统的各类资源限制;
16、任务调度线性规划模型的node网络资源由提交到node的所有任务使用;任务调度线性规划模型中将上一个周期每个服务的任务所消耗资源的平均量近似为本周期该服务的任务资源消耗量。
17、进一步地,所述对任务调度线性规划模型进行求解采用pulp求解器。
18、进一步地,所述步骤4具体为:
19、步骤4-1:每个时间片开始获取node资源总量、node资源消耗量、pod资源消耗量、任务到达率、pod数量;
20、步骤4-2:基于node资源总量,node资源消耗量,pod资源消耗量建立pod迁移模型并进行求解;
21、步骤4-3:按照模型求解结果迁移pod;
22、步骤4-4:基于node资源总量、node资源消耗量、pod资源消耗量建立pod伸缩模型并进行求解;
23、步骤4-5:根据求解结果对pod进行扩缩容;在下一个时间片重复步骤4-1至步骤4-5。
24、进一步,所述pod迁移模型的输入是node的各种资源利用率占node资源综合利用率权重,迁移时间片长度和迁移时允许花费的最大时间占时间片的比例;模型输出是pod迁移策略,包含需要迁移的pod、迁移的源node、迁移的目的node;pod迁移模型的目标为最小化node的各种资源利用率的方差之和与集群中各个node的资源综合利用率的方差之和,模型约束是迁移花费的时间小于系统允许的时间,以及迁移的源node上存在需要迁移的pod、迁移的目的node有足够的资源供需要迁移的pod使用;
25、pod迁移模型具体如下:
26、
27、
28、
29、
30、(σ′)2=var(r1,r2,…,rn)
31、
32、
33、
34、
35、其中,表示noden的资源利用率方差;(σ′)2表示集群资源利用率方差;rnk表示noden中资源k的利用率;ωnk表示noden的资源k利用率占noden的资源综合利用率的权重;rn表示noden资源综合利用率;eps是一个0/1变量,其值为1表示noden上已经部署了podp,否则表示没有部署;a′pk表示表示podp中资源k的消耗量;cnk表示noden的资源k的总量;c′nk表示noden的资源k的消耗量;sp表示podp的容器镜像大小;t为时间片长度;ωsla表示迁移时允许花费的最大时间占时间片的比例;zpsd是0/1决策变量,其值为1表示将podp从nodes迁移到noded;反之则表示不迁移。
36、进一步地,所述pod伸缩模型的输入是能耗成本与部署成本的权重、单个pod能耗成本与部署成本,以及每个时间片内pod处理任务的最大数量;模型输出是每个node上pod的数量;pod伸缩模型的目标是使pod的能耗成本和部署成本加权和最小;模型约束是每个pod处理的平均任务数量小于每个时间片pod处理任务的最大数量,集群中有足够的资源提供给扩容的pod使用,缩容过程中服务副本数量至少为1;
37、pod伸缩模型具体如下:
38、
39、
40、
41、
42、
43、
44、
45、其中,ωe与ωo表示能耗成本与部署成本的权重;e(xl)与o(xl,x′l)表示表示服务l在当前时间片的能耗成本与部署成本;m与j表示单个pod的能耗成本与部署成本;slalmax表示每个时间片内服务类型为l的pod处理任务的最大数量;cnk与c′nk表示noden的资源k总量与消耗量;plk表示类型为l的服务的pod资源k消耗量;xln是整数决策变量,表示当前时间片集群部署在noden上服务类型为l的pod的数量。
46、一种基于kubernetes的边缘计算集群的任务调度及服务管理系统,包括算法服务器、基于kubernetes构建的边缘计算集群、redis存储服务器;
47、所述算法服务器部署有任务调度组件、pod迁移组件、pod伸缩组件、服务发现组件、资源监控组件;
48、所述服务发现组件与api server交互获取集群中node,pod,service的相关信息;
49、所述资源监控组件与prometheus交互获取集群节点node,pod资源总量与消耗量;
50、所述任务调度组件首先查询redis存储服务器获取任务到达率,再与服务发现和资源监控组件交互获取pod、node资源总量和消耗量,基于获取的数据求解任务调度线性规划模型获取任务分发比例,并将任务分发比例更新到redis存储服务器;
51、所述pod迁移组件首先与服务发现组件和资源监控组件交互获取pod与节点信息,pod和node资源总量和消耗量,其次基于获取的信息求解pod迁移模型,获取求解结果,首先根据求解结果删除需要迁移的pod,再将求解结果即pod迁移策略写入redis存储服务器;
52、所述pod伸缩组件查询redis存储服务器获取任务到达率,通过服务发现和资源监控组件获取pod与node信息、pod和node资源总量和消耗量,其次基于获取的信息求解pod伸缩模型,根据pod伸缩模型的求解结果对pod进行扩缩容;
53、所述边缘计算集群的每一个节点部署有任务分发规则更新,反向代理组件;
54、所述任务分发规则更新组件查询redis存储服务器获取任务分发比例,并基于当前周期任务分发比例与上一个周期任务分发比例的加权平均值创建任务分发规则,若当前周期任务分发比例较大则将当前周期的任务分发比例赋予较大的权值,否则将上一个周期任务分发比例赋予较大的权值,最后将任务分发规则更新到ipvs中。
55、所述反向代理组件,用于统计每个周期的任务到达率和任务提交的节点并将其写入redis存储服务器,并将到达系统的任务转发给集群服务入口,以及将任务的处理结果返回给用户;
56、所述边缘计算集群的主节点部署有scheduler extender组件;
57、所述scheduler extender组件用于将需要迁移的pod定向部署到迁移的目的节点,当scheduler extender调度pod时主动查询redis存储服务器,若查询到待调度pod的迁移策略则会将pod定向调度到迁移的目的节点,若没有查询到,则会结束调度流程,由scheduler负责调度pod;
58、所述redis存储服务器用于存储周期内到达系统的任务数量、任务提交节点、任务分发比例以及pod迁移策略;
59、本发明的有益效果如下:
60、1.针对kubernetes原生任务调度机制应用在边缘计算环境下引发的pod负载均衡问题,对边缘计算环境下任务调度过程建立优化模型,充分考虑了pod,node资源实时消耗,根据求解结果调度任务,可以促进pod的负载均衡,降低服务时延,提升服务质量。
61、2.针对kubernetes在边缘计算环境下不能及时触发pod迁移引起node之间负载均衡的问题,通过对pod迁移过程建立优化模型,求解迁移策略,动态迁移pod,提升节点资源利用率均衡度,促进集群负载均衡,提升服务质量。
62、3.针对kubernetes在边缘计算环境下不能够按照sla对pod进行伸缩的问题,基于任务到达率和pod资源消耗情况建立pod伸缩模型,在尽可能满足服务的sla的前提下,提高资源利用率,降低服务时延,提升服务质量。
63、综上所述,本发明提供的一种基于kubernetes的边缘计算集群的任务调度及服务管理方法和系统,在边缘计算环境下,按照任务调度线性规划模型分发任务,根据pod迁移模型迁移pod,依据pod伸缩模型动态调整pod数量,促进pod,node之间的负载均衡,提升服务质量。
1.一种基于kubemetes的边缘计算集群的任务调度及服务管理方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于kubernetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述任务调度和服务管理运行在两个不同的时间维度;任务调度每个周期运行一次,pod迁移和伸缩每个时间片运行一次;一个时间片包含若干个周期。
3.根据权利要求1所述的一种基于kubemetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述任务调度线性规划模型,具体如下:
4.根据权利要求1所述的一种基于kubemetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述对任务调度线性规划模型进行求解采用pulp求解器。
5.根据权利要求3所述的一种基于kubernetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述步骤4具体为:
6.根据权利要求5所述的一种基于kubemetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述pod迁移模型的输入是node的各种资源利用率占node资源综合利用率权重,调度时间片长度,迁移时允许花费的最大时间占时间片的比例;模型输出是pod迁移策略,包含需要迁移的pod、迁移的源node、迁移的目的node;pod迁移模型的目标为最小化node的各种资源利用率的方差之和与集群中各个node的资源综合利用率的方差之和,模型约束是迁移花费的时间小于系统允许的时间,以及迁移的源node上存在需要迁移的pod、迁移的目的node有足够的资源供需要迁移的pod使用;
7.根据权利要求6所述的一种基于kubemetes的边缘计算集群的任务调度及服务管理方法,其特征在于,所述pod伸缩模型的输入是能耗成本与部署成本的权重、单个pod能耗成本与部署成本,以及每个时间片内pod处理任务的最大数量;模型输出是每个node上pod的数量;pod伸缩模型的目标是使pod的能耗成本和部署成本加权和最小;模型约束是每个pod处理的平均任务数量小于每个时间片pod处理任务的最大数量,集群中有足够的资源提供给扩容的pod使用,缩容过程中服务副本数量至少为1;
8.一种采用如权利要求1所述方法的管理系统,其特征在于,包含算法服务器、基于kubernetes构建的边缘计算集群、redis存储服务器;
