论文部分内容阅读
随着云计算和容器技术的发展,以docker为核心的容器技术迅速在开发者和科技公司中广泛应用,Kubernetes凭借丰富的企业级、生产级功能成为事实上的容器集群管理系统。但是Kubernetes默认调度算法主要存在两大问题,一是没有考虑网络IO资源,容易造成集群节点网络IO不均衡、个别节点出现网络IO性能瓶颈等问题;二是没有考虑磁盘IO、网络IO、网卡带宽等多维资源,容易造成集群多维资源分配不均衡的问题。针对以上问题,本文通过对Kubernetes调度器架构和机制进行研究,设计并开发了一款基于Kubernetes Scheduler Extender机制的扩展调度器Liang,并基于Liang开发了网络IO均衡调度算法和多维资源调度算法。网络IO均衡调度算法Balanced Net IO Priority(BNP)增加了网络IO资源请求信息,它结合候选节点的网络信息,选择最佳调度节点,使得集群整体网络IO资源分配更加均衡,降低了容器的部署耗时。本文还提出一种基于TOPSIS决策模型和多维资源的CMDN算法。CMDN算法综合考虑候选节点的CPU使用率、内存使用率、磁盘IO、网络IO和网卡带宽五个指标,结合TOPSIS算法对集群中的节点进行综合评分,带来多维资源均衡和紧凑两种调度效果。实验结果表明,BNP算法能够有效均衡集群中的网络IO资源,防止节点出现网络IO性能瓶颈,同时降低32%的容器部署耗时。CMDN算法在均衡策略时能够均衡集群节点CPU、内存、磁盘IO和网络IO四种资源的分配,降低21%的容器部署耗时;在紧凑策略时能够把容器集中调度到资源综合使用率高的节点上,实现了预期效果。