论文部分内容阅读
随着云计算技术的迅速发展,应用规模愈发庞大,用户需求愈发复杂,迭代更新愈发频繁。针对云计算发展的迫切需求,依靠LXC容器技术支撑的Docker技术应运而生。Docker以其强大的跨平台支持能力和对资源的高效利用与隔离方式,提供了可持续化的部署测试方法以及远远高于传统虚拟化方式的响应速度,彻底释放了轻量级虚拟化的威力,使得计算资源的利用率提升到了一个新的层次。虽然目前Docker有众多优点,但是将其广泛应用于大规模分布式系统中还存在以下两处难点。第一,伴随Docker应用规模的日益增大,分布式Docker集群被应用于越来越多的实际生产场合中。和传统集群不同,Docker集群不但包含大量物理机,单物理机上又部署着多个互相关联的Docker容器实例,集群构成更加复杂。针对这种大规模分布式Docker集群,如何高效的进行容器任务调度,从而提高集群整体的资源利用率是业内一直探讨的焦点。本文在Docker官方提供的Swarm集群管理工具自带的任务调度策略基础上进行了更为细致的优化,结合负载均衡和异常恢复两方面提出一种新型的分布式Docker集群调度策略。并在局域网环境内进行了模拟实验,通过实验数据证明了该调度策略相比原始的Swarm策略,在提高集群整体的资源利用率和运行效率方面有更出色的表现。第二,相对于CPU、内存等传统资源的虚拟化,Docker在网络资源虚拟化上并不完善。官方提供的四种网络通信模式过于简单,不易扩展且缺少网络服务质量控制等功能,使其很难应用于网络带宽需求复杂、网络设置动态变化的应用场景。并且,当多种类应用混合部署时,无法按照用户期望的任务优先级进行更细粒度的资源动态控制。本文将针对以上应用场景,在Docker使用的传统NAT通信方式的基础上加入动态地址转换和自适应带宽控制等功能,提出一种新型的容器通信模型。并通过对比试验,证明了相较于传统NAT方式,使用该通信模型可以为Docker提供更丰富的网络通信方式,使其在更为广泛的应用场景中有更优秀的表现。