掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Pod实时流量数据改进的遗传算法Kubernetes调度方法

文献发布时间:2023-06-19 19:28:50



技术领域

发明属于云计算技术领域,具体涉及一种基于Pod实时流量数据改进的遗传算法Kubernetes调度方法。

背景技术

随着云计算技术的不断发展,传统的Kubernetes调度器不足以支持大规模分布场景下的延迟敏感工作负载的正确调度。

传统的Kubernetes调度方法只能基于集群节点的静态配置Cpu核数量,内存大小等指标对应用的Pod进行调度。后续人们改进的调度算法将网络带宽指标加进调度得分公式计算,然而单纯的带宽依旧是静态指标,往往会存在节点Pod已经占用大部分网络带宽的情况下,仍然被分配Pod的情况,这都直接导致了热点通讯服务应用响应时间缓慢,用户体验差的问题。在有部署热点通讯服务的集群中,网络速度更应该考虑节点上Pod真实的进出流量的实时带宽占用率。

在真实的集群使用场景下,如果只考虑网络指标,也往往会造成负载均衡的问题,这是因为Pod清单文件中所申请的节点Cpu和内存资源与真实的节点Cpu和内存资源使用率之间往往也是存在很大差异的,在集群中Cpu和内存资源的利用已经很严重的节点还会被分配应用Pod,而其他节点却容易出现资源空余的状态。

遗传算法作为应用广泛的智能算法之一,它是模拟达尔文进化论的自然选择与遗传学原理而逐渐演化出的一类数学模型,算法的运行流程模拟仿真生物的发展进化过程,让适量度良好的个体进行不断的随机遗传基因交叉和变异,使得种群朝着更加优良的方向发展,从而求得问题的最优解。

发明内容

为克服传统Kubernetes调度方法的不足,本发明提供了基于Pod实时流量数据改进的遗传算法调度方法。

对比过去的遗传算法在Kubernetes调度方面的应用做出改进,替换原有带宽指标为节点Pod真实流量进出占用比;替换原有磁盘IO数据为实时的节点Cpu占用率和内存占用率,将三项动态指标数据进行权重均值计算,设计了节点实时综合资源利用率,并以该指标均值方差的计算形式作为遗传算法的适应度公式设计,从而优化应用的平均响应时间和集群的负载均衡程度。

实现本发明目的的技术方案是:一种基于遗传算法改进的Kubernetes调度方法

包括以下步骤:

(1)计算节点实时综合资源利用率:获取基于Istio监控的集群节点的真实Pod流量数据以及Prometheus监控的节点Cpu和内存利用率,将两项动态指标数据进行按节点单项资源占比权重计算得到节点实时综合资源利用率;

(2)改进遗传算法,优化节点打分函数:将步骤(1)计算得到的节点实时综合资源利用率与均值做方差计算该指标数据的标准差,并利用节点的该指标数据与其标准差做绝对差值计算,作为遗传算法的种群适应度公式,将遗传算法最后一次迭代后节点的适应度作为节点得分,完成调度优选阶段。

所述方法的具体步骤如下:

步骤(1)中所述的计算节点实时综合资源利用率内容包括:基于获取基于Scheduling Framework框架,在节点打分的Score函数中,获取Istio监控的真实的集群节点内Pod的流量进出站数据及Prometheus获取到的真实节点Cpu及内存使用情况,并将两项动态指标数据进行按节点单项资源占比权重计算得到节点实时综合资源利用率;

步骤(2)中所述的改进遗传算法,优化节点打分函数内容包括:

(2-1)对Pod和节点的分配方案做二进制编码,并对节点实时综合资源利用率指标数据计算均值,并于均值做方差计算得到标准差,最后用节点实时综合资源利用率与其标准差做绝对差值计算,用来作为遗传算法中种群个体的适应度公式计算;

(2-2)使用以(2-1)所述绝对差值结果为基准的轮盘赌选择因子,在集群达到负载均衡或者达到最大迭代次数时结束计算,并将终止时的适应度计算作为节点打分改进调度优选阶段。

本发明的有益效果是:

(1)采用Istio部署服务网格获取集群节点真实的进出流量数据使用情况替换静态节点带宽指标参与优选阶段的打分函数计算;

(2)设计节点实时综合资源利用率指标,该指标可以更加准确的表达节点的资源利用情况;(3)改进遗传算法在Kubernetes调度中的应用,设计用节点实时综合资源利用率与其标准差做绝对差值计算的适应度公式,并将其最后迭代适应度作为调度优选打分结果,使得集群更加有效的趋于真实的负载均衡状态。

附图说明

图1为本发明方法的流程图;图2为本发明改进后调度模型结构图;具体实施方法下面将结合附图和具体实施例对本发明作进一步详细的说明。

实施例

本实施例所选择的训练环境的操作系统为Ubuntu 18.04,实验机器操作系统:CentOS7,Kubernetes Version:V1.23.0,Prometheus-Operator:V0.59,Istio: V1.15.0。硬件环境为Master节点配置为CPU:2核 内存:4GB 系统盘:50GB SSD云硬盘 7Mps带宽;Node1节点配置为CPU: 2核 内存: 8GB 系统盘:70GB SSD云硬盘 3Mbps带宽;Node1节点配置为CPU: 2核 内存: 8GB 系统盘:70GB SSD云硬盘 3Mbps带宽。Node3节点配置为CPU: 2核 内存: 8GB 系统盘:70GB SSD云硬盘 3Mbps带宽。

如图1所示,本发明提出的一种基于Pod实时流量数据改进的遗传算法Kubernetes调度方法实现步骤如下:

(1)编写预调度应用程序Pod资源Deployment清单Yaml文件,并指定调度器以及所申请的资源;

(2)进入调度筛选阶段,对不符合Pod申请资源的节点进行过滤;

(3)进入调度优选打分阶段,Kube-scheduler开始调用Scheduling Framework设置的优选策略打分Score函数,改进后的遗传算法开始迭代,完成打分,进行Pod和节点的绑定。

如图2所示基于Pod实时流量数据改进的遗传算法Kubernetes调度方法模型,具体措施如下:

进入筛选阶段对不符合Pod申请资源的节点进行过滤后,进入打分阶段:首先对Pod调度节点的情况进行编码,采用二进制编码,选取通过调度筛选阶段的节点个数作为编码长度,选用遗传算法中经典的随机初始化种群方法初始化集群的个体{001,010,100,010,001}; 计算节点实时综合资源利用率,计算公式为;

其中L(Cpu

相关技术
  • 一种基于成本效益的Kubernetes Pod调度方法
  • 一种基于Kubernetes结合Flink的分布式的Pod调度优化方法
技术分类

06120115921467