基于容器的虚拟化会影响IT的所有部分,包括云软件堆栈。 因此,OpenStack社区开发了一系列服务模块,使得在基于OpenStack的私有云或混合云上打开运行密集打包的容器实例成为可能。
Magnum是OpenStack容器箱项目,已经存在两年了。它被认为是运行容器软件(例如Docker Swarm、Kubernetes和Apache Mesos)的一种方式,并允许机构在OpenStack上编排容器。Magnum是一个灵活的工具,例如,允许使用Swarm的OS镜像在裸机或虚拟机上运行。
OpenStack Magnum在Nova实例中构建容器结构。该服务通常使用轻量级的操作系统(如Core OS或Fedora Atomic)来支持Docker。这个实例也包括适当的编排器——Swarm、Kubernetes或Mesos。OpenStack Magnum在Heat中创建一个控制结构来识别实例和容器。这种方法允许管理员通过OpenStack项目的核心组合使用具有必要的存储、应用程序镜像和网络连接的Heat模板。Magnum还支持Neutron负载均衡器。
OpenStack容器的新进展
最新版本的OpenStack Ocata推出了新功能来帮助部署和管理容器,包括:
Kolla:一种容器化的OpenStack服务,允许三个主要的容器编排程序 —— Docker Swarm、Kubernetes和Apache Mesos在OpenStack中运行,并与其他模块进行交互。
Kuryr:将容器连接到Neutron,以便虚拟网络与其他容器、虚拟机实例和外部世界的互连。 它现在支持Docker Swarm。
Fuxi:Kuryr的一个子项目,允许容器访问Cinder块存储和Manila共享存储。 Zun:一个OpenStack容器管理服务。OpenStack Wiki将Zun定义为Magnum的原始意图,而Magnum已经管理为主持上述的三大容器编排引擎。
kuryr和Fuxi提供网络和存储连接,将容器从有限的环境移动到全应用程序环境。综上所述,前面列出的前三个模块允许一组容器交互并共享和存储数据。
现在Kolla支持三大容器编排引擎,Zun是OpenStack专有的创建容器和管理其生命周期的方式。这在混合云中可能用不着,因为容器及其相关的操作系统和应用程序镜像的可移植性对于平滑和高效的操作至关重要。
在Kolla使用标准的编排环境应该有助于迁移到公有云容器服务。Murano模块中容器支持的模板和图像应可以在混合云中运行。但是,支持跨云处理所需的API仍然存在缺陷。
有了这些新功能,与使用Puppet或Ansible从头开始构建相比,Magnum成为OpenStack容器部署的一个更简单的方法。尽管如此,OpenStack Magnum和DIY方法更多的是DevOps级别的任务,而不是最终用户、政策驱动的过程。
OpenStack容器服务的下一步
OpenStack使用的领导者之一是CERN。该组织基于OpenStack Magnum建立了一个1000节点的集群,最近每秒的Kubernetes请求数可以达到700万个。 CERN的项目反映了在OpenStack中扩展Kubernetes的进展,而且Kubernetes继续在进步。
尽管如此,OpenStack容器服务仍然有待成熟。Project Navigator是所有官方OpenStack项目的指南,它提供了对项目成熟度和利用率的客观衡量。
目前,根据Project Navigator,OpenStack Magnum在八个成熟度中排名第二,被用于11%的OpenStack安装。很明显,OpenStack Magnum还没有涵盖所有的基础,例如,与认证的集成较弱。
其他关键整合还处于起步阶段。举例来说,与Ansible和Puppet的进一步整合
对这些管理环境扩展到OpenStack容器世界而言是必要的。此外,如果工作负载开始从中央IT管理员转移到部门用户,容器编排的简化控制机制是至关重要的。扩展到模板系统和基于策略的管理是此任务的一部分。
容器技术飞速发展,OpenStack必须赶上。这就意味着Magnum和相关的OpenStack容器项目的成熟度和稳定性将在2017年持续改善。