OpenStack是一个主流的开源云管理平台,旨在提供丰富的云平台服务,支持轻松实施、大规模向上/下扩展和统一标准。数百家全球知名企业正在以OpenStack为基础运营业务,以降低成本并加快行动。Zun是Openstack的一个组件,提供容器管理服务,出现于2016年6月。
什么是Zun?
作为提供容器管理服务的组件,Zun允许用户在没有管理服务器或集群参与的情况下快速启动和操作管理容器。它集成了Neutron、Cinder、Keystone等核心OpenStack服务,实现了容器的快速普及。通过这种方式,OpenStack的所有原始网络、存储和识别验证工具都应用于容器系统,使容器能够满足安全性和合规性要求。
Zun计划支持多种容器技术,如Docker、Rkt和clear container。现在,对Docker技术的支持已经完成。
为什么用Zun?
目前,OpenStack拥有以下支持容器技术的主流解决方案:
1、Nova Docker驱动程序
该解决方案将容器作为VM运行。添加Nova Docker驱动程序以执行与常规VM类似的操作,以启动、停止或创建Docker容器。由于Docker和VM之间的差异,这种操作模式将禁用容器的许多功能,例如容器相关和端口映射。
2、Magnum
Magnum是一个OpenStack服务,提供容器集群部署功能。Magnum通过Heat部署VM和物理机,形成集群,然后调用COE接口完成容器的部署。在Magnum成立之初,该项目以“容器即服务”(CaaS)为目标。在以后的开发过程中,Magnum的大部分功能都集中在容器的集群部署上。
3、Zun
Zun将容器作为一种OpenStack资源进行管理,并集成了OpenStack的其他服务,为用户提供统一、简化的API。用户可以通过API创建和管理容器,而不需要考虑不同容器技术之间的差异。
Zun已与多个OpenStack服务集成。Keystone、Neutron和Kuryr-libnetwork是运行Zun的必要服务。它们为Zun提供身份验证、网络、Neutron和docker网络之间的连接。OpenStack用户可以轻松学习使用Zun容器。
集成OpenStack服务的优点是用户可以借助OpenStack的现有功能扩展容器的功能。例如,默认情况下,Zun容器可以使用Neutron分配的IP地址,并可以使用Keystone提供的身份验证服务。使用Zun和Neutron,用户可以在Nova实例所在的隔离网络环境中创建容器。VM的Neutron功能(安全组、QoS)也可用于Zun容器。在实际业务中,经常有需要长时间保存数据的场景。常用方法是使用外部服务为容器提供持久卷。Zun通过与OpenStack Cinder集成解决了这个问题。
创建容器时,用户可以选择将Cinder卷安装到容器中。Cinder卷可以是租户中现有的或新创建的卷。每个卷都将绑定到容器文件系统路径,并且将保留该路径下存储的数据。
对于编排,与提供内置编排的其他容器平台不同,Zun使用外部编排系统来实现此目的,例如Heat和Kubernetes。借助外部编排工具,最终用户可以使用该工具提供的DSL来定义容器化应用程序。
使用Heat,用户还可以定义由容器资源和OpenStack资源组成的资源,例如Neutron负载均衡器、浮动IP、Nova实例等。
Zun和Kubernetes是互补的。事实上,Zun社区正在积极推动与Kubenetes的整合。目前,Zun与COE的整合工作主要集中在Kubenetes上,这将使容器更易于部署、管理和扩展。
但是,在OpenStack上使用Kubernetes仍然需要用户手动部署底层基础设施,例如虚拟服务器集群。用户负责初始容量规划,例如确定VM集群的大小和维护正在运行的VM集群。
无服务器容器技术或解决方案(如AWS Fargate、Azure Container Instance(ACI)和OpenStack Zun)的出现为在云上运行容器提供了可行的替代方案。无服务器方法允许用户按需运行容器,而无需事先创建或管理自己的集群。
Zun将使用Kubernetes作为业务流程层,Kubernetes将使用OpenStack Zun提供“无服务器”容器。
Zun提出了Container和Capsule的概念。Container负责集成Docker或其他容器引擎技术。Capsule的概念有点像Kubernetes Pod,它代表一组容器。Capsule用于对需要彼此紧密合作以实现服务目标的多个容器进行分组。
Zun不准备实现COE提供的许多高级功能(例如容器保持活动、负载均衡),而是专注于提供基本容器操作(CRUD)并保持与OpenStack的紧密集成。
与Nova Docker驱动程序比较,Zun旨在解决Nova Docker驱动程序解决方案的问题。它独立于Nova实现了Docker的部署调度框架,并与Glance、Neutron、Cinder和其他组件集成,但没有实现Container Orchestration Engines(COE)的部署调度。Nova-docker通过Nova API访问容器,Zun不受Nova API的限制。
与Magnum相比,Zun和Magnum之间的区别在于Zun专注于提供用于管理容器的API,而Magnum提供用于部署和管理COE的API。
Zun的基本架构
以下Zun架构图很好地说明了Zun和OpenStack组件之间的关系。
解释:
Zun API:处理REST请求和检查输入参数
Zun Compute:资源调度和容器管理
Keystone:OpenStack的认证组件
Neutron:为容器提供网络
概览:存储docker镜像(如果不使用glance,可以使用DockerHub)
Kuryr:连接容器网络和Neutron的插件
总之,Zun提供了一个OpenStack +容器解决方案——它不仅有效地将多个OpenStack服务与容器技术相结合,提高了OpenStack管理容器的能力,还简化了容器的使用并扩展了容器的功能。与此同时,Zun社区的功能正在得到发展和补充,值得期待。
原文链接:
http://telecoms.com/intelligence/what-is-zun-a-typical-component-of-openstack-to-provide-container-management-service/
内容覆盖主流开源领域
![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/b9718d4e25bc95850b6c6e9d58b9bbbe.png)
![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/fcdf5b7ba59267e86d9b2347137a5e78.png)
![640?wx_fmt=jpeg](https://img-blog.csdnimg.cn/img_convert/259d443301efc888f67808be7d68256b.png)
![640?wx_fmt=jpeg](https://img-blog.csdnimg.cn/img_convert/13cf57639d07c4494f4e731154978ec6.png)
![640?wx_fmt=jpeg](https://img-blog.csdnimg.cn/img_convert/84625135356914dc097f59099fd00d25.png)
![640?wx_fmt=jpeg](https://img-blog.csdnimg.cn/img_convert/0a1ec2c3d2639517a64b9f34c415569a.png)
![640?wx_fmt=gif](https://img-blog.csdnimg.cn/img_convert/5323b26f4bf6b2334e0c6caeacb83921.gif)
投稿邮箱
openstackcn@sina.cn
![640?wx_fmt=gif](https://img-blog.csdnimg.cn/img_convert/69bbde868b83fadc69d181773dba75c6.gif)