论文部分内容阅读
随着计算机技术和容器虚拟化技术的快速发展,云计算已然成为物联网、大数据等应用中最基本的计算平台,应用容器化也愈渐成为了一种趋势。但是,随着应用规模的增大和应用关系的错综复杂,使得人为管理所有容器应用的运行越来越力不从心。因此,如何在企业环境下降低人为运维的成本、如何管理大规模容器的运行,已成为了当下亟待解决的问题。本文结合实习公司的用户需求,基于Docker容器技术和Kubernetes容器编排工具,研究并实现一个可以被部署在私有云下的PaaS层容器云平台。该平台为用户提供了一种容器编排方案,简化了部署应用的过程。此外,本文还对Kubernetes v1.5.2版本的调度优选算法进行了研究。本文的具体研究工作如下:本文首先介绍了课题的研究背景与意义,分析了国内外在虚拟化技术和编排工具方面的研究现状。其次,分析了平台的目标用户及需求,将用户分为了云管理员和普通用户两种角色,并从用户需求中分析提取了平台的功能需求,根据平台的使用和运行场景总结了系统的非功能需求。接着,在需求分析的基础上设计了平台的总体架构,包括平台前后端设计以及平台后端与Kubernetes集群等组件的交互设计等,并通过分析平台各组件的实体和实体之间的关系完成了数据库设计。在第4章,本文研究了Kubernetes调度过程,针对Kubernetes优选算法中未考虑节点本身性能、使用的资源模型过小和设置默认requests不合理三点不足,对算法进行了改进。首先,在设置CPU的默认requests时考虑了CPU核数,在设置内存的默认requests考虑了内存总容量;其次,改进的优选算法中考虑了节点本身的性能。最后,在第5章,本文使用Java、JavaScript和HTML/CSS语言,通过Spring Boot、Mybatis、Vue和Thymeleaf等框架实现了基于Docker与Kubernetes的容器云平台,并展示了相关实现效果。其中,使用Harbor项目搭建了私有镜像仓库服务器,研究了Harbor框架及Harbor API的调用,并结合Docker API完成了对应用仓库模块的开发;使用TWaver可视化开发工具和HTML5拖动技术完成了应用编排功能;研究了Kubernetes资源的管理及Kubernetes Restful API的调用,使用基于Fabric8的Java客户端完成了应用部署功能和对应用实例的管理工作;通过Echarts等插件完成了应用概览模块;通过Vue和Validate插件完成了该平台的用户权限控制和数据有效性验证。