赵旭杰,粱正和
(河海大学 计算机与信息学院,江苏 南京 211100)
随着计算机技术的快速发展,传统的应用部署方式已经无法满足开发者的需求。现如今,既要避免应用与操作系统的绑定,又要改善虚拟机技术十分笨重,不利于移植的特点。
Docker这种应用容器引擎的出现填补了这个空缺。相对于传统方式的虚拟机,它占用的空间更少,启动更快,并且不需要虚拟出整个操作系统,只需要虚拟出一个小规模的环境。每个容器之间互相隔离,并且有着自己的文件系统。容器之间可以通过共用网络资源栈的方式进行交互[1]。任何应用都可以被打包成镜像,在发布成功后,供其他人拉取使用[2]。但是,要将Docker应用于具体的业务实现,还是存在着很大的困难。人们需要一种基于容器的集群管理平台,来解决Docker在编排、管理和调度等方面上存在的问题。
Kubernetes的出现填补了这个空缺,它是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、自动维护等功能[3-4]。并且因为它是基于容器的技术,在移植性、扩展性和自动化方面也具有很大的优势。Kubernetes可以满足生产环境中的很多常见需求,比如:多个进程的协同工作、存储系统挂载、应用实例的复制、日志访问、负载均衡等[1]。通过Kubernetes,可以直接管理云平台中多个主机上的容器化的应用。但与此同时,它也带来了一些操作上的麻烦。目前,大多使用Kubectl命令行的方式,对平台应用进行管理。而这种方式,很大程度上降低了开发的效率,并且提高了运维的成本。……