论文部分内容阅读
近几年来,互联网迅速发展,IT技术人员发现传统的开发部署模式存在很多的缺点,如应用迁移部署运维困难、服务器资源利用率低等。云计算的出现为互联网提供了新的模式,Docker虚拟化技术和kubernetes容器编排技术的问世则推动了云计算的发展,越来越多的应用服务都被部署在了云平台的环境下。本文旨在通过Docker容器化技术隔离和限制视频处理任务的请求资源,并通过kubernetes容器编排技术调度视频处理任务来达到提高服务器资源利用率的目标,本系统实现了一个视频处理云平台的系统,主要功能为Web页面创建视频处理任务,kubernetes调度视频处理任务至合适的工作节点运行,本文完成的主要工作内容如下:(1)视频处理软件系统的整体设计。确定了系统的需求和系统的总体框架,并对Docker容器技术和kubernetes技术研究分析,为后续调度器优化做铺垫。(2)搭建视频处理软件系统kubernetes集群。基于阿里云弹性云服务器搭建kubernetes集群,利用dockerfile的模式创建视频处理任务镜像,并采用flannel网络模型实现Pod间跨主机通信,采用kubernetes的NodePort类型的service组件用于集群外部访问集群信息,为后续Web部署视频处理任务做准备。(3)kubernetes集群调度器优化。研究分析kubernetes原生调度器存在的重调度缺陷问题,采用类似client和server的模式设计三大重调度策略。通过监听集群资源,发现节点负载不均衡、节点状态改变以及Pod状态改变时,驱逐对应的Pod,配合kubernetes原生调度器进行重调度。(4)视频处理软件系统前端页面实现。通过对比确定使用Django作为Web后端框架,选用bootstrap前端框架对Web组件进行渲染,设计实现前端四大模块任务展示模块、任务创建模块、图像处理任务模块以及视频处理任务展示模块,使用uWSGI和Nginx服务器部署本文前端系统并对每个模块进行测试。