论文部分内容阅读
随着云计算的快速发展,OpenStack作为开源云计算管理平台,为云计算提供可靠的云部署方案及良好的可扩展性,受到社区的重视和青睐。OpenStack是由几个主要的组件结合起来完成具体的工作,支持几乎所有类型的云环境。Docker作为一个开源的引擎,可以很容易的为任何应用创建一个轻量级的、可移植的、自给自足的容器,这几年的发展特别快。Magnum是OpenStack里面比较热门的一个和Docker集成专门针对容器的新项目,用来向用户提供容器服务(Container as a Service)。在Mangum中,Kubernetes和docker都是与OpenStack集成后的组件,Magnum调用它们来管理后端容器。Magnum是分布式架构,支持负载均衡,支持多租户,具有高可用性。Magnum主要由两个服务:一个是Magnum-API,一个是Magnum-Conductor。Magnum-API用来处理接受到的client请求,通过消息队列的形式将请求发送到backend。在Magnum后台的处理是通过Magnum-Conductor来完成的,Magnum-Conductor的主要作用是将client的请求转发到对应的backend,backend在Magnum的官方术语叫COE(Container Orchestration Engine)。虽然Magnum目前在社区很活跃,但是离进入实际生产环境还有一定的距离,主要表现在没有可视化用户操作界面和不具有双层自动扩展机制。双层扩展机制旨在解决集群的稳定性和资源的使用率问题,双层自动扩展机制保证了在集群中应用增加时集群资源的及时供给和集群中应用减少时资源的利用率。用户可视化界面也称作Magnum-UI,目的是为了方便用户的操作和降低对用户的技术要求。为了解决以上问题,本论文设计与实现了Magnum双层扩展性,以及统一API服务和用户界面。Magnum双层自动扩展平台负责集群的资源调度问题,双层自动扩展是指底层的虚拟机、物理机和上层的Container之间进行双向转换。当Container中的负载增加时,备用机器会创建更多的Container,从而使Container中的负载维持在一个区间,这种直接由备用资源创建Container,节省了大量的时间,提高了效率。为使备用机器的数量保持恒定,需要从底层提供机器,这样底层的一部分虚拟机或者物理机转换为备用机器。反之亦然,从而达到了双向自动扩展的要求,从而解决了底层的虚拟机或者物理机与上次Container之间的双向扩容与缩容问题,使资源有效利用,负载均衡。Magnum统一API是解决在创建Container是不用关心底层集群的问题。由于目前社区没有Magnum-UI,只能通过Magnum-CLI操作,给用户带来了极大的不便,也不能清楚直观的显示Magnum中集群的信息,Magnum-UI在很大的程度上简化用户的工作,为Magnum进入生产环境打下了良好的基础。所以开发Magnum-UI使用户体验得到很大的改善,同时也降低了用户操作的难度。