内容简介:OpenStack是业界主流的开源云管理平台,旨在提供实施简单、可大规模扩展、丰富、标准统一的云平台。全球数百家大品牌企业依靠OpenStack每天运营业务,从而降低成本,并更快地行动。Zun即OpenStack中提供容器管理服务的组件,于2016年6月建立。作为提供容器管理服务的组件,Zun允许用户无需管理服务器或集群即可快速启动和运行管理容器,通过与Neutron、Cinder、Keystone以及其它核心OpenStack服务相集成以实现容器的快速普及。通过这种方式,OpenStack的原有网络、存
OpenStack是业界主流的开源云管理平台,旨在提供实施简单、可大规模扩展、丰富、标准统一的云平台。全球数百家大品牌企业依靠OpenStack每天运营业务,从而降低成本,并更快地行动。Zun即OpenStack中提供容器管理服务的组件,于2016年6月建立。
什么是Zun
作为提供容器管理服务的组件,Zun允许用户无需管理服务器或集群即可快速启动和运行管理容器,通过与Neutron、Cinder、Keystone以及其它核心OpenStack服务相集成以实现容器的快速普及。通过这种方式,OpenStack的原有网络、存储以及身份验证 工具 将全部适用于容器体系,从而确保容器能够满足安全与合规性要求。
Zun计划支持多种容器技术,如 Docker 、Rkt、clear container等,目前已经完成对Docker容器技术的支持。
为什么选择Zun
目前,在OpenStack中,支持容器技术主要有如下几个主流方案:Nova Docker driver、Magnum等。
- Nova Docker driver方案
该方案将容器当成虚拟机一样进行操作,通过增加 Nova Docker driver,实现对Docker容器实施启停、创建等类似常规虚拟机的操作。该方案的缺点在于,由于Docker和虚拟机终究是存在一部分差异的,通过类虚拟机方式来操作容器,会导致容器的许多功能无法实现,例如容器关联、端口映射等功能。
- Magnum方案
Magnum是OpenStack中提供容器集群部署功能的服务,Magnum通过Heat来部署虚拟机和物理机,从而组成集群,然后调用COE接口完成容器的部署。在Magnum项目创建之初,项目目标以CaaS为宗旨,即“容器即服务”;在后续的发展中,Magnum功能大多集中在容器的集群部署上。
- Zun方案
Zun将容器作为一种OpenStack资源来进行管理,并通过集成OpenStack的其他服务,为用户呈现统一的、简化的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卷可以是租户中的现有卷或新创建的卷。每个卷将被绑定到容器文件系统路径中,并且存储在该路径下的数据将被持久化。
在Orchestration方面,与其他提供内置编排的容器平台不同,Zun使用外部编排系统来实现此目的,例如Heat与Kubernetes。通过使用外部协调工具,最终用户可以使用该工具提供的DSL定义他们的容器化应用程序。
借助Heat,用户还可以定义由容器资源和OpenStack资源组成的资源,例如Neutron负载平衡器、浮动IP、Nova实例等。
而Zun和Kubernetes则是一种互补的关系,事实上,Zun社区正在积极地推进与Kubenetes集成。目前Zun与COE集成的工作主要集中在Kubenetes上。Kubernetes使容器更易于部署、管理和扩展。 但是,在OpenStack上使用Kubernetes仍然需要用户手动底层基础设施,如虚拟服务器集群。 用户需要负责初始容量规划,例如决定VM群集大小以及正在运行的VM群集的维护。Serverless容器技术或解决方案,如亚马逊网络服务(AWS)Fargate、Azure容器实例(ACI)和OpenStack Zun的出现,为在云上运行容器提供了一种可行的替代方案。 Serverless方法允许用户按需运行容器,而无需预先创建或管理自己的集群。Zun将利用Kubernetes作为编排层,Kubernetes使用OpenStack Zun来提供“Serverless”容器。
Zun中引入了Container与Capsule两个概念,Container负责集成对接Docker或其他容器引擎技术,Capsule的概念有点像Kubernetes Pod,代表一组容器。 Capsule用于将多个需要彼此紧密合作的容器进行分组,以实现业务目标。
Zun不准备实现COE提供的很多先进的功能(例如容器保活、负载均衡等),而是专注于提供基本的容器操作(CRUD),并保持和OpenStack的紧密集成。
与Nova Docker driver方案的比较:
Zun目标在于解决 Nova Docker driver方案存在的问题,独立于 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各组件之间的关系。
图1:Zun架构图
综上,Zun提供了一种OpenStack + 容器的解决方案,不仅将多个OpenStack服务与容器技术有效地结合到一起,提高了OpenStack管理容器的能力,而且简化了容器的使用,扩展了容器的功能。同时,Zun社区的各项功能正在开发、补全当中,值得期待。
中兴通讯作为OpenStack基金会黄金会员和主要代码贡献者之一,致力于推动OpenStack的演进和发展。针对Zun社区,中兴通讯bp完成数居第一位,修复bug数居第一位,提交代码次数居第一位,代码审阅数居第二位。同时,中兴通讯在Rocky与Stein版本单项项目负责人(PTL),为Zun项目的发展,做出了卓越的贡献。未来,中兴通讯将不断加大对开源社区的投入,并积极寻求落地商用的机会。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 揭开容器的神秘面纱:帮助初学者深入了解容器技术
- 现代云原生架构:关于微服务、容器和无服务器你需要了解的
- 容器技术之容器镜像篇
- 多线程六 同步容器&并发容器
- 你了解HTTPS,但你可能不了解X.509
- 你真的了解Mybatis的${}和#{}吗?是否了解应用场景?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。