论文部分内容阅读
随着Docker虚拟化技术的日益成熟,基于Docker应用容器集群的应用开发、部署和运维正逐渐成为越来越多的企业和服务运营商的现实选择。如何更好地实现企业IT资源的高效利用、为部署在Docker应用容器集群中的复杂分布式应用提供高可用的支撑环境,是企业IT资源管理亟待解决的问题。适应上述需求,业界推出了以Kubernetes、Swarm为代表的多款开源的Docker应用容器集群管理工具,受到广泛关注。但是Kubernetes等仍存在诸多不足,包括:1.其提供的应用更新、应用迁移等功能需终止应用程序运行才能完成,无法向用户提供7*24小时不间断服务;2.其依托的资源调度算法仅能根据预先设定的规则实现调度,属于静态调度,无法做到有限的IT资源按需动态调整;3.平台的IT资源管理需要运维人员更多的人工干预,运维人员负担较重。因此,非常有必要研发适应企业应用现状的基于Docker的资源动态调度和应用容器集群管理系统,以更好地满足企业对IT资源高效利用和为用户提供高可靠性服务的需求。基于以上背景,本文从研发目标、需求定位、系统设计、实现与测试等方面对基于Docker的资源调度及应用容器集群管理系统做出全面叙述。针对现有资源调度方法中存在的资源可调度、可再分配的效果不理想,资源使用率低等问题,提出了一种改进的SLA驱动的资源动态调度算法,实现了 IT资源负载均衡、资源按需动态调整;针对现有应用容器集群管理工具存在的问题,结合Kubernetes应用容器集群管理框架,开展了应用容器增量更新、Hazelcast内存网格、网络和服务的发现与注册等技术的研究,采用B/S架构和MVC开发模式,利用成熟的Web应用开发框架Node.JS设计实现了一个基于Docker的资源调度及应用容器集群管理系统,有效解决了应用和服务的快捷自动部署、应用平滑更新、应用平滑迁移等问题。系统主要功能模块包括应用包构建、资源监控、资源调度、应用自动部署、应用自动更新、应用迁移等。该系统目前已投入试运行,测试结果表明,系统能较好地满足企业IT资源管理的应用需求,在大量并发用户访问的情况下,系统的资源调度对用户服务提供了良好保障,也为企业的应用开发、交付、部署、更新管理等工作提供了可靠支撑。