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                                         网络电信 二零二零年六月
   17   18   19   20   21   22   23   24   25   26   27