论文部分内容阅读
云计算是一种新兴技术,它通过虚拟化技术把物理硬件、网络资源抽象成巨大的资源池,整合企业内部多个数据中心的资源,将基础服务设施、各种软件和平台资源抽象成服务的形式,通过网络提供给用户使用。如今大规模集群系统不断涌现,如何对大规模数据中心的资源进行管理是个难题,在这种情况下产生了云平台管理软件。伴随着容器技术的广泛应用,基于容器云的新一代解决方案Kubernetes应运而生。Kubernetes是一个全新的基于容器技术的分布式计算平台,使用Kubernetes能够进行自动化的资源管理,使跨数据中心的资源利用率实现最大化。资源调度是容器云这种大规模数据中心的核心模块之一,一个好的调度系统能够根据用户的请求来为用户选择可用资源,并且能够提高资源的利用率,而Kubernetes的资源调度系统目前还存在着不足,在大规模数据中心中无法满足用户自行配置资源的需求,资源调度效率低下,无法在实际生产环境中使用Kubernetes云管理平台。因此本论文基于Kubernetes-onEGO为Kubernetes设计并实现了一个具有两级调度架构的资源调度器。文本通过对Kubernetes和EGO容器云平台资源调度器的深入研究,发现Kubernetes在资源调度方面低效率、功能单一,用户无法自己配置资源调度方案,算法设计过于简单,架构是简单的单体调度器架构,而EGO具有丰富的调度算法,属于两级调度架构,用户可以通过配置文件的方式对调度计划、调度任务优先级进行配置。通过对两种调度器的深入研究,本文设计并实现了一种基于Kubernetes-on-EGO的两级调度架构的资源调度器。首先研究Kubernetes的总体架构设计、调度系统实现原理和EGO的调度系统的实现原理,如何使两个平台进行集成,开发出Kubernetes和EGO的调度系统,集成两个调度系统的关键在于建立动态共享库,封装EGO调度系统的API,建立EGO基于GO语言的API,在Kubernetes的调度系统中调用EGO基于Go语言的API,从而实现两个平台关于调度系统的集成。调度系统集成的难点在于两个系统并语言并不兼容,Kubernetes基于GO语言实现,EGO基于C语言实现,调度机制和调度架构也不相同,此时需要重新对Kubernetes调度器模块进行架构设计,改变调度逻辑,对调度机制进行扩展,对于EGO平台制定出符合Kubernetes的调度接口的设计。论文研究了Kubernetes云平台的设计机制,系统基本概念、服务设计原理,并且对云计算平台资源调度相关技术进行介绍,继而分析调度系统的业务流程并且进行模块设计,通过绘制类图、实体联系图对调度系统建立模型;设计集成调度系统的应用架构,将系统划分为不同的功能模块,并用类图对各个模块进行详细的阐述;最后基于EGO调度系统完成了云计算平台Kubernetes调度系统的设计和实现。基于对Kubernetes和EGO集成平台的测试结果表明,改善后的调度系统平台大大提高了资源的调度效率和资源的利用率,并且用户可以灵活的根据自己的需求对调度系统进行配置,达到了预期的设计目的。