论文部分内容阅读
随着大数据和云计算的蓬勃发展,容器技术起到的作用日益突出。Docker作为应用最广泛的容器技术有效解决了传统虚拟机技术存在的资源利用率低、软件堆栈不一致等问题。在云计算环境下,大规模的容器需要被管理,而Docker只注重提供容器和镜像本身,因此Kubernetes凭借强大的容器编排能力成为容器集群管理系统的佼佼者。然而,Kubernetes中的弹性伸缩策略较为单一,在某些业务场景的容器管理中往往力不从心,为此,论文专注研究容器云弹性伸缩策略,以提升部署在Kubernetes上Web应用的服务质量和资源利用率,具体而言本文主要完成了以下工作:1.针对Kubernetes响应式伸缩策略存在响应延迟、资源无法满足Qo S要求的问题,提出了一种基于STL模型分解的弹性伸缩策略。该策略建立对Web应用请求序列的预测模型,采用STL模型将请求序列进行分解,对分解后的趋势项、残差项、周期项分别进行预测,并利用预测结果建立基于排队网络的资源分配模型,使用模型得到最佳Web应用服务副本集,将其用于Kubernetes调度器中实现Web应用容器的弹性伸缩。2.在原有Kubernetes基础架构上扩展了采集、监控、预测和弹性伸缩等四个模块,并对扩展模块分别进行设计实现。请求采集模块负责对Web应用请求进行反向代理,并收集请求数据;监控模块获取Web应用的Qo S指标;预测模块负责根据收集的请求序列进行模型预测;弹性伸缩模块负责计算出服务副本集,进一步完成弹性伸缩。3.为了评估基于Kubernetes的容器云弹性伸缩策略的效果,基于扩展后的Kubernetes平台,分别对提出的预测模型的精度、伸缩策略的平均响应时间、最大响应时间、CPU利用率等进行实验验证。结果证明了提出的预测模型误差很小,能够准确地反映出Web应用请求变化规律;提出的伸缩策略能够合理分配资源,提高服务的资源利用率,同时降低服务响应时间。研究工作表明,本文提出的基于STL模型分解的Kubernetes容器云弹性伸缩策略能够准确地根据Web应用请求分配容器资源,既保证了服务质量,又减少了服务器资源浪费,进一步丰富了Kubernetes的弹性伸缩策略。