论文部分内容阅读
随着容器技术的出现,基于容器的应用部署方式为用户提供了一种新的渠道,由于其具有可整体打包运行环境进行移植的特点,用户使用容器可以轻松创建定制环境以适应其软件产品的需求。通过集群管理系统统一的进行多容器的调度和资源管理,需要具有将容器灵活地映射到不同的节点以及根据负载情况动态调整容器资源和迁移容器的能力,做出和实施这些决策的敏捷性决定了企业IT应对不断变化的业务需求的响应能力,对支持容器调度和管理的集群管理系统的研究有着重要的理论价值和广泛的应用前景。本文设计并实现了一套对混合云集群中的容器和资源进行管理的集群管理系统,系统主要提供三大功能:应用镜像的资源分配、自动分发和运行,容器的动态自适应和本地资源不足时自动申请公有云节点的混合云资源管理。应用镜像的资源分配、自动分发和运行主要实现的是应用镜像的自动资源分配和部署运行;容器的动态自适应主要实现的是动态监测容器内应用的运行负载,动态的增加或删减容器资源以适应不同负载下应用的资源需求;混合云资源管理主要实现的是在本地集群资源不足时动态申请公有云节点用于应用镜像的部署。在实现应用镜像的资源分配、自动分发和运行时,为支持SLA(Service Level Agreemeent)的资源分配,研究了一种基于SLA的形式化结构用于描述多种类型的资源需求,同时设计了一个双层资源分配算法,在保证每个应用镜像都能找到满足资源需求的节点的约束下,解决最小化节点数的资源分配问题。在实现容器的动态自适应时,通过修改RunC引擎的部分源码,同时借助网络命名空间技术(Network Namespace)和端口转发技术(Port Forwad)实现容器的迭代迁移,同时提出了一个最佳迭代停止点选择算法用于减少迭代迁移的停机时间。在实现容器动态自适应时,研究了一种代价比较模型,通过比较不迁移性能下降导致的SLA违约代价和迁移时宕机无法提供服务的SLA违约代价,决策出代价最小的动态自适应方案。在设计和实现部分详细介绍了整个系统的设计和实现方案。通过系统架构图和功能模块图介绍了整个系统的架构设计,通过类图介绍了主要功能模块的设计,通过序列图介绍了系统各个功能模块的实现逻辑。