OpenStack Queens中怎么用容器?
在开源的OpenStack云平台中启用和使用容器的方法有很多种。有了新的 Queens,选择就更多了。
OpenStack对容器的支持已有数年——从OpenStack Nova计算项目中的nova-docker驱动开始(已经被弃用)。2018年,OpenStack中与容器相关的努力包括Zun、Magnum、Kuryr、Kolla、LOCI、OpenStack-Helm和Kata Containers。
编排
“Zun和Magnum处于云工作负载级别。”OpenStack基金会执行总监Jonathan Bryce表示。
OpenStack Magnum是一个使像Kubernetes这样的容器编排系统能够作为OpenStack资源运行的项目。
通过跨不同容器技术的简单API,OpenStack Zun是对容器生命周期管理的抽象。
容器服务
除了Zun和Magnum之外,还有OpenStack的Kolla项目。它容器化OpenStack服务。在OpenStack Queens版本中,还有新增的LOCI(Lightweight Open Container Initiative)。
Bryce解释说,Kolla为每个容器镜像提供完整的打包方法。相比之下,新的LOCI项目采用的方法更符合Kubernetes运行镜像的方式,即容器本身非常小,管理位于容器外。
OpenStack-Helm
更进一步的是新的OpenStack-Helm项目。该项目在云下以帮助编排服务。 OpenStack-Helm将受欢迎的Helm Kubernetes包管理器项目带入了OpenStack。
Bryce解释说,OpenStack-Helm为不同的OpenStack服务提供了一系列chart。因此,企业首先决定要在OpenStack云中运行哪些服务,然后执行helm(这将在Kubernetes集群中启动服务)。
容器隔离和网络
另一个OpenStack基金会的容器项目是Kuryr。在OpenStack Queens版本中,Kuryr已经可以支持Kubernetes Container Networking Interface(CNI)。
Bryce解释说,Kuryr可以在直连容器网络栈中与Docker的libnetwork网络接口进行通信,然后再连接到OpenStack中的Neutron网络项目。这样的模式使得能够将容器连接到企业网络堆栈,并具有OpenStack的所有安全监视和设备功能。
现在,在OpenStack Queens版本中,Kuryr可以与CNI连接,这提供了pod级别而不是容器级别的控制。
“由于Kubernetes可能会移动容器,重启或伸缩容器,Kuryr CNI守护进程会监视和配置Neutron以继续保护在pod中运行的工作负载。”Bryce说。
Kata Containers
OpenStack还有一个与容器相关的工作,Kata Containers。它为容器提供了一个微虚拟机层。Kata Containers由OpenStack基金会负责,尽管它还不是一个官方的OpenStack项目。
“Kata是Kuryr的一种计算执行等效。”Bryce说。
根据Bryce的说法,Kata Containers与Kuryr的连接提供了高度隔离。他解释说,企业可以使用Kuryr来管理pod上的网络。这些pod可以在Kata容器内被进一步隔离和保护。
“Kata和Kuryr创造了强大的容器隔离,而看这些工具如何以这种方式进行交互令人兴奋。”Bryce说。
OpenStack容器服务