论文部分内容阅读
伴随着云基础设施领域内的新一轮技术变革,及国内外各大厂商的落地实践,容器技术已成为新的资源虚拟化计算模型的主流技术。Docker容器作为当前流行的计算引擎技术,近年来迅速崛起,有效的解决了传统虚拟机技术存在的资源利用率低、本地和远端环境栈不一致等问题。在云端环境下,需要大规模容器集群编排工具,与之对应的大规模分布式容器集群管理方案应运而生;其中kubernetes技术因先进的分布式容器编排理念,及开源社区所孕育的二次创新能力等因素,成为了业内构建容器云平台的事实标准。本文对应用的编排场景及业务需求、Docker容器技术和kubernetes集群编排技术架构、原理及伸缩策略等进行深入剖析。设计并实现了基于kubernetes技术的自动伸缩方法,同时针对业内现有方法中在触发伸缩的“自定义”指标上,以及不同方案的结合使用上支撑不足的问题,提出了容器集群动态伸缩方法的设计方案,即弹性伸缩系统的设计。在本系统中,针对伸缩所需指标中所缺失的“业务”指标问题,提出了自定义指标弹性伸缩方案;并在此基础上设计了“监控模块”,完成了业务层指标定义及获取、事件监控和实时显示等一体化方案的开发。进一步的,将水平伸缩模块、集群伸缩模块等方案搭配使用,将弹性伸缩从“水平”方向扩展到多个维度。通过上述两种方案的搭配使用,完成了“伸缩模块”的优化设计;在此基础上,又结合了动态存储、伸缩响应和可视化、报警等支撑模块,以及指标融合、调度策略等,进而实现了整个平台级弹性伸缩系统整体的创新方案。最后,使用多节点分布式平台技术研发了基于kubernetes的分布式集群,并对系统方案进行测试和验证。实验结果表明,本文弹性伸缩设计方案可以维稳的运行在私有云的分布式平台中,满足了不同场景下的弹性伸缩需求;同时增强了应用集群的高可用能力,使得资源和集群组件充满弹性,优化了集群资源的利用方式和使用效率。