Page 22 - 网络电信2019年6月刊上
P. 22
解 决 方 案
小资源;其二、更有利于Node剩余资源的均衡,均衡的资源分 到所需要的监控信息后存于对应的数据库。
布有助于实现更高的资源利用率。 2. 资源调度流程
本文采用两级调度机制,如图3所示。
三、基于权重自学习的调度策略 图 3 改进的资源调度流程
对于容器资源调度的研究主要有两个方向:
其一、增加评价指标,从而适应物联网、智慧城市等场景
下的调度需求,例如文献 [13,14] 提出一种面向智慧城市容器云的
网络性能感知调度系统,增加了RTT评价指标,在Node过滤阶段
排除RTT不满足需求的Node,文献 [15] 在Mesos调度策略中增加了
容器个数,文献 [16] 考虑物理Node CPU、内存、磁盘、网络带宽
空闲率和已部署的容器应用个数;考虑到评价指标应有效代表
资源的使用情况,且指标的获取不应给系统带来过多开销,本
文选择CPU、内存、带宽、磁盘使用情况作为评价指标。
其二、优化Node优先级评分函数中的权重计算方法,文献
[15] [17,18] [16]
采用层次分析法 计算权重集合。文献 用模糊层次分析
法 [19] 自动建模求解容器应用多维资源权重参数。利用层次分析
法计算权重要求用户掌握应用各类资源的重要程度,但是,很
多用户对于自己的应用需要占用多少资源,每种资源的重要程
度并不清楚,基于以上考虑,本文提出基于Pod运行过程中资源
使用情况自动生成权重,用于Node优先级的计算。在Pod运行过
程中,监测模块将周期性采样该Pod上述4类资源的占用率,求
得监控窗口内每类资源占用率平均值,进而计算全局资源占用
率,根据全局资源占用率,计算每类资源的权重,称为Pod专用
权重。使用同样镜像的所有Pod各类资源权重平均值作为该镜像
的专用权重。
1. 资源利用率采集方案
本文采集三类信息:(1)Node资源总量,对所有Node的各 调度模块维护3类权重集合:(1)Pod专用权重,用于Pod
类资源总量求和得到全局资源总量,进而算出Node的各类资源 扩容时选择最优Node。在测量窗口,统计Pod及其副本占用的
在全局资源中所占份额。(2)Node当前资源利用率,进而求得 各类资源占整个集群资源的比例,即全局占用率,根据各类资
剩余资源比例。(3)Pod资源在当前Node占用的资源份额。 源的全局占用率计算Pod专用权重;(2)镜像专用权重,是使
用该镜像的所有Pod各资源权重的平均值,如果待创建Pod的镜
图 2 资源利用率采集 像有使用记录,则使用镜像专用权重选择最优 Node;(3)
Kubernetes默认权重,即所有资源权重值相等。
调度过程分两个阶段,第一阶段根据用户最小资源需求过
滤掉不满足需求的Node,第二阶段选择权重集合,对候选Node
的各类资源的闲置率加权求和,得到候选Node的优先级。权重
集合选择策略如下:
(1)如果待调度的Pod有专用权重值,则根据Pod专用权重
值、资源剩余情况选择最优Pod;
(2)如果待调度Pod没有专用权重值,但镜像有专用权重
值,则采用镜像专用权重值
采集方案如图2所示,在每个Node中部署监控代理Proxy, (3)其他情况采用Kubernetes的默认权重值,即所有资源
用于采集上述三类信息。Pod资源占用率数据库用于存储每个 权重值相等。
Pod监控窗口内的CPU、内存、带宽、磁盘占用率。Node全局资 3. Node优先级计算方法
源份额数据库用于存储每个Node的资源总量和监控窗口内的资 (1)符号定义
源利用率。采集控制器用于接收资源调度模块的监控指令,对 假设Kubernetes集群中有k台不同规格的Node,
于第(1)(2)类消息,指令中包括Node标识,对于第(3)类 N={1,2,…,k};每个Node上有m种资源,R={1,2,…,m},某
消息,指令中包括被监控的Pod标识,采集控制器通过Pod标识 Pod由j个容器构成 P={1,2,…,j},使用镜像i的所有pod集合为
获取部署该Pod的Node标识,通过Node标识,采集控制器可查询 I={1,2,…,h}。
得到Proxy的IP、端口,进而向Proxy发送监控指令。Proxy采集 (2)Pod p各类资源全局占用率计算方法
40 网络电信 二零二零年六月