摘要

Kubernetes是一个管理容器化应用的开源平台,其默认的调度算法在优选阶段仅把CPU和内存两种资源来作为计算节点的评分指标,同时还忽略了不同类型的Pod对节点资源的占用比例是不同的,容易导致某一资源达到性能瓶颈,从而造成节点对资源使用失衡.针对上述问题,本文在Kubernetes原有的资源指标基础上增加了带宽和磁盘容量,考虑到CPU、内存、带宽和磁盘容量这4类资源在节点上的占用比例对节点的性能的影响,可能造成Pod中应用的非正常运行,甚至杀死Pod,从而影响集群整体的高可靠性.本文将等待创建的Pod区分为可压缩消耗型、不可压缩消耗型以及均衡型,并为每种类型的Pod设置相应的权重,最后通过改进的秃鹰搜索算法(TBESK)来寻找出最优节点进行调度.实验结果表明,随着集群中Pod的数量在不断增加,在集群负载较大的情况下, TBESK算法的综合负载标准差和默认的调度算法相比提升了24%.

全文