基于Docker Swarm集群的资源亲和性调度算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Docker Swarm集群的资源亲和性调度算法随着云计算的普及,分布式计算技术已经成为企业客户在大数据时代的首选后台技术方案,各家互联网公司已经把分布式计算技术应用到了日常业务系统。然而,众所周知,云计算架构有着经典的三部分模型,IaaS基础设施服务、PaaS

平台服务、SaaS软件服务,界限十分明确,各部分有着自己的职责。而随着科技的发展,依托轻量虚拟化技术的Docker已经在云计算领域激起千层浪,它模糊了IaaS和PaaS之间的界限,打破了原有的生硬的分类,一定程度上颠覆了经典云计算架构,为云计算服务形式的发展带来了无限的可能。而其集群管理工具Docker Swarm更是当仁不让成为了当今Internet简单高效的应用程序交付平台和集群资源管理的解决方案。

在此基础上,一套完整可靠的能够充分发挥集群优势的编排引擎算法便显得尤为重要。然而,就目前而言,Docker背后的编排引擎(SwarmKit)附带的调度算法在资源不均匀时并不理想,无法完美实现负载均衡,在资源利用率和集群性能方面并不能很好的符合预期。目前,Docker Swarm有三种基本的调度策略(spread,binpack和random),每一种都执行一个具有固定数量资源的容器。针对内置Docker群的调度策略无法很好地实现群集负载均衡以及群集利用率不高的问题,提出了一种动态加权调度算法。

该算法为资源设置权重。使用参数“偏差”,它为不同的服务动态调整权重。根据每个节点的资源利用率,计算节点的权重值。该值表示节点的负载,并用于调度。

实验将本文提出的算法与原来的调度策略进行了比较。结果表明,该算法能够更好地平衡集群内节点的资源利用率。此外,当集群处于高负载压力时,使用所提出的算法,服务运行得更快。

相关文档
最新文档