- 云计算架构技术与实践(第2版)
- 顾炯炯编著
- 8970字
- 2021-04-02 22:16:27
第3章 云计算及大数据开源软件概览
3.1 OpenStack概述
OpenStack是目前最为流行的开源云操作系统框架。自2010年6月首次发布以来,经过数以千计的开发者和数以万计的使用者的共同努力,OpenStack不断成长,日渐成熟。目前,OpenStack的功能强大而丰富,已经在私有云、公有云、NFV等多个领域得到了日益广泛的生产应用。
与此同时,OpenStack已经受到了IT业界几乎所有主流厂商的关注与支持,并催生出大量提供相关产品和服务的创业企业,在事实上成为了开源云计算领域的主流标准。时至今日,围绕OpenStack已经形成了一个繁荣而影响深远的生态系统,OpenStack已经是云计算时代一个无法回避的关键话题。可以说,不了解OpenStack,就无法理解当今云计算技术的发展,也无法把握云计算产业的脉搏。因此,本章将对OpenStack的相关要点进行概括介绍。
3.1.1 OpenStack概念辨析
目前,与OpenStack相关的书籍与文章俯拾皆是,但其中的内容质量不一。对于读者而言,也很容易受到一些错误信息的误导。为此,本节将对OpenStack相关的一些核心概念进行介绍与澄清。
一、什么是OpenStack
OpenStack,是目前最为流行的开源云操作系统框架。想要深入理解OpenStack是什么,则需要围绕开源、云、操作系统、框架这几个关键词展开说明。
1.云
针对什么是云,业界已有充分的论述,此处不再深入展开。读者只需明确,OpenStack是用来构建云计算系统的核心软件组件即可。
2.云操作系统,是面向云计算的操作系统
云操作系统这个概念,对于许多读者来说,可能还比较陌生。在此,我们将通过与操作系统的类比,来帮助读者理解何谓云操作系统。
操作系统,是计算机系统领域里一个至关重要的概念。有了操作系统,我们才能将计算机系统中的各类软硬件整合起来,形成一个能够完成各类处理任务的完整系统,为用户提供服务。这个描述较为抽象,但结合到日常生活与工作中的实例,就清楚易懂多了。无论是服务器和个人电脑上的Linux、Windows,还是手机上的Android、iOS,都是操作系统的常见实例。
无论是服务器、个人电脑还是手机上的操作系统,本质上,其核心功能都可以概括为五个方面,即资源接入与抽象、资源分配与调度、应用生命周期管理、系统管理维护和人机交互支持。换言之,只有具备了以上这五个方面的主要功能,一个操作系统才能够实现各类软硬件的整合,让系统具备为用户提供服务的能力。
具体而言:(1)资源接入与抽象,是指将各类硬件设备,如CPU、内存、本地硬盘、网卡等,接入到系统中,并将其抽象为操作系统可以识别的逻辑资源,以此作为操作系统对各类硬件资源实施管理的基础;(2)资源分配与调度,是指利用操作系统的资源管理能力,将前述的不同硬件资源,按照需求的类型和数量,分配给不同的系统软件或应用软件,供其使用;(3)应用生命周期管理,是指协助用户实现各类应用软件在操作系统上的安装、升级、启动、停止、卸载等管理操作;(4)系统管理维护,是指协助系统管理员实现对系统自身的各类配置、监控、升级等管理操作;(5)人机交互支持,指提供必要的人机界面,支持系统管理员和用户对系统实施各类操作。
与之对应,一个完整的云操作系统,同样应该能够具备上述五个方面的主要功能。其核心区别只是在于,云操作系统需要管理的,是一个由大量软硬件组成的分布式的云计算系统,而一个普通操作系统需要管理的,则是一台服务器、一台个人电脑,或者一部手机。
针对云操作系统,上述五项主要功能的内容应该是:(1)资源接入与抽象,是指将各类服务器、存储、网络设备等硬件资源,通过虚拟化的或者可软件定义的方式,接入到云计算系统中,并将其抽象为云操作系统可以识别的计算、存储、网络等资源池,以此作为云操作系统对各类硬件资源实施管理的基础;(2)资源分配与调度,是指利用云操作系统的资源管理能力,将前述的不同资源,按照不同的云租户对于资源类型与数量的不同需求,将资源分配给各个租户,以及不同租户的不同应用;(3)应用生命周期管理,是指协助租户实现各类云应用在云操作系统上的安装、启动、停止、卸载等管理操作;(4)系统管理维护,是指协助系统管理员实现对于云计算系统的各类管理与运维操作;(5)人机交互支持,指提供必要的人机界面,支持系统管理员和普通租户对系统实施各类操作。
由上述介绍可以看出,虽然云操作系统比我们日常接触的操作系统复杂很多,但其最为关键的五项主要功能,其实是可以一一对应的。通过这种对应,我们可以更为直观地理解云操作系统这个概念。而OpenStack,则是实现云操作系统的关键组件,或者说,是构建一个完整的云操作系统的框架。
3.云操作系统框架,不等于云操作系统
要构建一个完整的云操作系统,需要对大量软件组件进行有机整合,让它们协同工作,共同提供系统管理员和租户所需的功能与服务。而OpenStack本身,尚且不能独立具备一个完整云操作系统所需的全部能力。举例而言:在上面提到的云操作系统的五项主要功能中,OpenStack不能独立实现资源接入与抽象,而需要和底层的虚拟化软件、软件定义存储、软件定义网络等软件相配合;OpenStack不能独立提供完善的应用生命周期管理能力,而需要在上层集成各类管理软件平台;OpenStack自身不具备完整的系统管理维护能力,在投入生产实用时,还需要集成各类管理软件与维护工具;OpenStack自身提供的人机界面,其功能也还不够丰富强大,等等。
由此不难看出,想在OpenStack基础上构建一个完整的云操作系统,需要将OpenStack与其他一些软件组件进行集成,以实现OpenStack自身并不提供的能力。因此,OpenStack自身的准确定位,是一个云操作系统框架。基于这个框架,可以集成不同的各类组件,实现满足不同场景需要的云操作系统,并在此基础上,最终构建完整的云计算系统。
4.开源
开源,是OpenStack的一个重要属性。应该说,不理解开源,就不能真正理解OpenStack的发展历程与未来趋势。
与简单地在网络上公开源代码不同,OpenStack社区遵循的,是一种更为深入、更为彻底的开源理念。在OpenStack社区中,对于每一个组件,每一个特性,乃至每一行代码,其需求提出、场景分析、方案设计、代码提交、测试执行、代码合入的整个流程,都总体遵循开放原则,对公众可见,并且在最大程度上保证了社区贡献者的监督与参与。
正是这种监督与参与的机制,保证了OpenStack社区总体上处于一种开放与均衡的状态,避免了少数人或者少数公司、组织的绝对控制,由此保障了社区生态的健康与繁荣。
同时,OpenStack遵循了对商业最为友好的Apache 2.0许可,也保障了企业参与社区的商业利益,从而推动了OpenStack的产品落地与商业成功。
通过以上介绍,可以看出,OpenStack是一个以开源方式开发与发布的,用于构建不同场景下的云操作系统的框架性软件。深入理解这个本质,对于深入学习和掌握OpenStack,有着非常关键的意义。
二、OpenStack与云计算系统的关系
基于前面的介绍,不难看出,OpenStack与云计算系统之间,既紧密联系,又相互区别。
OpenStack是构建云操作系统的框架。使用云操作系统,集成并管理各类硬件设备,并承载各类上层应用与服务,才能最终形成一个完整的云计算系统。由此可见,OpenStack是云计算系统的核心软件组件,是构建云计算系统的基础框架,但OpenStack和云计算系统并不能直接等同。
三、OpenStack与计算虚拟化的关系
计算虚拟化,是很多读者非常熟悉的概念。其对应的软件实现,就是平常所说的Hypervisor,如开源的KVM、Xen,以及VMware的vSphere、华为的FusionCompute、微软的Hyper-V等。OpenStack与计算虚拟化之间的关系,是目前仍然被频繁混淆的一个问题。理解这二者之间的联系与区别,也是理解OpenStack的关键之一。
OpenStack是一个云操作系统的框架。为构建完整的云操作系统,特别是,为实现资源接入与抽象的功能,OpenStack需要与虚拟化软件实施集成,从而实现对服务器的计算资源的池化。应该指出的是,在资源池化的过程中,物理资源虚拟化的功能,仍然由虚拟化软件完成。举例而言,在使用KVM作为OpenStack的虚拟化软件时,仍然由KVM完成将一台物理服务器虚拟为多台虚拟机的功能,而OpenStack负责记录与维护资源池的状态。例如,系统中一共有多少台服务器,每台服务器的资源共有多少,其中已经向用户分配了多少,还有多少资源空闲。在此基础上,OpenStack负责根据用户的要求,向KVM下发各类控制命令,执行相应的虚拟机生命周期管理操作,如虚拟机的创建、删除、启动、关机等。
由此可见,两相对比,OpenStack更像是系统的控制中枢,是云操作系统的“大脑”;计算虚拟化软件则更像是系统的执行机构,是云操作系统的“肢体”。二者分工合作,共同完成对云计算系统中的计算资源池的管理,但绝不能认为OpenStack等同于计算虚拟化软件。
3.1.2 OpenStack的设计与开发
一、OpenStack的设计思想
OpenStack之所以能够取得快速的发展,除了有云计算技术和产业快速发展的大背景之外,其自身设计思想的独到之处,也起到了有力的促进作用。OpenStack的设计思想,在总体上可以被概括为“开放、灵活、可扩展”。本节将对此展开扼要分析。
1.开放
OpenStack的开放,根源于其开源模式本身。
前已述及,OpenStack的开源,不仅体现在简单的源代码开放,更体现在其设计、开发、测试、发布的全流程中。这种开源模式,总体上可以保证OpenStack不被个别人或个别企业所控制,在技术上不会走向封闭架构、封闭体系,从而始终呈现出良好的开放性。无论是北向的API标准开放,还是南向的各类软件、硬件自由接入,都是OpenStack开放性的充分体现。
与此同时,OpenStack也秉持了开源社区中“不重复发明轮子”的一贯理念,在设计中持续引入并充分重用各相关技术领域中的优秀开源软件,从而提升了设计与开发效率,并为软件质量提供了基本保证。
2.灵活
OpenStack的灵活,首先体现在其大量使用插件化、可配置的方式进行设计。最为突出的体现,就在于OpenStack采用插件化的方式实现不同类型计算、存储、网络资源的接入,由此实现OpenStack对于不同类型资源的灵活接入与管理,用一套架构实现了对于不同厂商、不同类型设备的资源池化,例如,在计算领域,可以以插件化的形式接入KVM、Xen、vCenter、FusionCompute等不同的Hypervisor;在存储领域,可以以插件化的形式实现对不同厂商的存储设备,以及Ceph、FusionStorage、vSAN等不同的软件定义存储的管理;在网络领域,可以实现对不同的网络硬件设备,OVS、Liunx-bridge、HAProxy等开源网络组件,以及多种SDN控制器的接入。并且,这些接入都是通过可配置的方式加以选择。当在不同的资源之间进行选择时,OpenStack自身并不需要重新打包发布,只需通过配置项选择不同的接入插件即可,非常方便。
在此基础上,OpenStack的灵活还体现在不依赖于任何特定的商用软硬件。换言之,任何商用软硬件产品在OpenStack中一定是可选、可替换的,从而严格保证用户可以使用完全开源、开放的方案来构建基于OpenStack的云计算系统,而完全不必担心被锁定在某些特定厂商的产品之上。
3.可扩展
OpenStack的架构高度可扩展。具体而言,其扩展性体现在功能和系统规模两个方面。
从功能视角看,OpenStack由多个相互解耦的项目组成。不同的项目分别完成云计算系统中的不同功能,如身份认证与授权服务、计算服务、块存储服务、网络服务、镜像服务、对象存储服务等。对于一个特定场景下的云计算系统,系统设计人员可以根据实际需要决定使用OpenStack中的若干个项目,也可以在系统上线后,根据需求继续引入新的OpenStack项目。OpenStack的一些项目自身也具有功能可扩展性。系统设计人员可以在这些项目中引入新的功能模块,在不影响项目既有功能使用的前提下,对其功能进行扩展。
从系统规模视角看,OpenStack总体上遵循了无中心、无状态的架构设计思想。其主要项目,均可实现规模水平扩展,以应对不同规模的云计算系统建设需求。在系统建成后,可根据应用负载规模的实际增长,通过增加系统管理节点和资源节点的方式,逐渐扩展系统规模。这种架构可以有效避免高额的初始建设投资,也降低了系统初始规划的难度,为云计算系统的建设者和运营者提供了充分的扩展空间。
二、OpenStack的开发模式
前已述及,OpenStack采用了完全开放的开发模式,由数以千计的社区贡献者通过互联网协作的方式,共同完成各个项目的设计、开发、测试和发布。
具体而言,OpenStack社区以每6个月为一个版本开发与发布周期,分别于每年4月和10月发布新的OpenStack版本。每个新版本发布之后约三周,社区会举行一次OpenStack设计峰会,以便开发者集中讨论新版本应优先引入的特性,或应集中解决的问题。其后,社区将进入为期约5个月的开发和测试阶段,直至新的版本发布。截至本书撰写之时,最新的OpenStack发行版是2016年4月初发布的Mitaka版本,也是OpenStack的第13个发行版。
OpenStack各个项目统一遵循Apache 2.0开源许可证,对于商业应用非常友好。OpenStack各项目以Python为首选开发语言,各个项目的核心代码均使用Python语言实现。
三、OpenStack社区发展现状
自2010年成立以来,OpenStack社区始终保持了高速发展的态势,目前已经成为了仅次于Linux的世界第二大开源软件社区。而这一切仅仅用了不到六年的时间,不得不让人惊叹开放的云计算技术所具有的强大魅力。
在过去的五年多时间里,OpenStack社区的各项主要贡献指标,都呈现出快速上升的总体趋势。这种趋势,从OpenStack峰会参会人数的爆炸式增长就可以看出。2010年OpenStack首届峰会举办时,仅有75人参与。而2016年4月举办峰会时,参会人数高达7500人以上。短短六年不到的时间,人数激增100倍,由此不难看出OpenStack社区巨大的影响力与凝聚力。
3.1.3 OpenStack架构与组成
在2010年OpenStack社区首次发布其第一个发行版——Austin时,OpenStack仅包含两个项目Nova和Swift,仅能实现非常简单和基础的功能。时至今日,OpenStack已经日渐成熟和强大,其组成项目也已经大大增多,仅包含在Mitaka版本release notes中的服务项目就多达29个。各个项目各司其责,分工合作,共同形成了一个架构灵活、功能丰富、扩展性强的云操作系统框架。
为便于读者快速了解OpenStack的概貌,但又不致淹没在众多的信息当中,本节将优先选择OpenStack中最为关键和有代表性的部分项目,进行扼要介绍,以便帮助读者更为直观地了解OpenStack。
1. Keystone:身份认证与授权服务
将计算、存储、网络等各种资源,以及基于上述资源构建的各类IaaS、PaaS、SaaS层服务,在不同的用户间共享,让众多用户安全地访问和使用同一个云计算系统,是一个云操作系统的基本能力。而实现这个能力的基础,就是一个安全可靠的身份认证与授权服务。而Keystone就是OpenStack的身份认证与授权服务项目。
Keystone负责对用户进行身份认证,并向被认定为合法的用户发放令牌(token)。用户持Keystone发放的令牌访问OpenStack的其他项目,以使用其提供的服务。而各个组件中内嵌的令牌校验和权限控制机制,将与Keystone配合实现对用户身份的识别和权限级别的控制,保证只有恰当的用户能够对恰当的资源实施恰当的操作,以此保证对不同用户资源的隔离与保护。
2. Nova:计算服务
向用户按需提供不同规格的虚拟机,是任何一个云操作系统最为基础的功能。而Nova就是OpenStack中负责提供此类计算服务的项目。
Nova的核心功能,是将大量部署了计算虚拟化软件(即Hypervisor)的物理服务器统一纳入管理之下,组成一个具有完整资源视图的逻辑资源池。在此基础上,Nova通过接收不同用户发起的请求,对资源池中的资源进行生命周期管理操作。其中最为核心的,就是虚拟机的创建、删除、启动、停止等操作。通过执行客户发起的虚拟机创建操作,Nova将逻辑资源池中的CPU、内存、本地存储、IO设备等资源,组装成不同规格的虚拟机,再安装上不同类型的操作系统,最终提供给用户进行使用,由此满足用户对于计算资源的需求。
除了虚拟机资源管理服务能力之外,Nova还通过与Ironic项目配合,共同为用户提供裸机资源管理服务能力。具体而言,Nova可以接收用户发起的裸机资源申请,然后调用Ironic项目的对应功能,实现对裸机的自动化选择、分配与操作系统安装部署,从而使得用户可以获得与虚拟机资源使用体验相当的物理机资源使用体验。
3. Ironice:裸机管理
Ironic通过与Nova相配合,共同为用户提供裸机服务能力。
在实际工作时,Ironic直接负责对物理服务器的管理操作。一方面,在物理服务器被纳入到资源池之中时,Ironic负责记录物理服务器的硬件规格信息,并向Nova上报;另一方面,在用户发起裸机管理操作时,Ironic负责根据Nova的指令,对相应的物理服务器执行具体的管理操作动作。例如,当用户发起一个创建裸机操作时,Ironic需要根据Nova调度的结果,对选定的物理服务器执行硬件初始化配置、操作系统安装等一系列具体操作,以完成裸机创建动作。
4. Glance:镜像服务
通常而言,在虚拟机被创建之后,都需要为其安装一个操作系统,以便用户使用。为此,云计算系统中往往需要预置若干不同种类、不同版本的操作系统镜像,以便用户选用。此外,在一些应用场景下,为进一步方便用户,镜像中还需要预装一些常用的应用软件,这将进一步增加镜像的种类与数量。为此,云操作系统必须具备镜像管理服务能力。Glance就是OpenStack中的镜像服务项目。
Glance主要负责对系统中提供的各类镜像的元数据进行管理,并提供镜像的创建、删除、查询、上传、下载等能力。但在正常的生产环境下,Glance本身并不直接负责镜像文件的存储,而是仅负责保管镜像文件的元数据,本质上是一个管理前端。Glance需要与真正的对象存储后端对接,才能共同提供完整的镜像管理与存储服务能力。
5. Swift:对象存储服务
对象存储服务,是云计算领域中一种常见的数据存储服务,通常用于存储单文件数据量较大、访问不甚频繁、对数据访问延迟要求不高、对数据存储成本较为敏感的场景。Swift就是OpenStack中用于提供对象存储服务的项目。
与OpenStack中大部分只实现控制功能、并不直接承载用户业务的项目不同,Swift本身实现了完整的对象存储系统功能,甚至可以独立于OpenStack,被单独作为一个对象存储系统加以应用。
此外,在OpenStack系统中,Swift也可以被用做Glance项目的后端存储,负责存储镜像文件。
6. Cinder:块存储服务
在典型的、基于KVM虚拟化技术的OpenStack部署方案下,Nova创建的虚拟机默认使用各个计算节点的本地文件系统作为数据存储。这种数据存储的生命周期与虚拟机本身的生命周期相同,即当虚拟机被删除时,数据存储也随之被删除。如果用户希望获得生命周期独立于虚拟机自身的、能够持久存在的块存储介质,则需要使用Cinder提供的块存储服务,也称为卷服务。
Cinder负责将不同的后端存储设备或软件定义存储集群提供的存储能力,统一抽象为块存储资源池,然后根据不同需求划分为大小各异的卷,分配给用户使用。
用户在使用Cinder提供的卷时,需要使用Nova提供的能力,将卷挂载在指定的虚拟机上。此时,用户可以在虚拟机操作系统内看到该卷对应的块设备,并加以访问。
7. Neutron:网络服务
网络服务,是任意云操作系统IaaS层能力的关键组成部分。只有基于稳定、易用、高性能的云上虚拟网络,用户才能将云计算系统提供的各类资源和服务能力连接成真正满足需求的应用系统,以解决自身的实际业务需求。
Neutron是OpenStack中的网络服务项目。Neutron及其自身孵化出来的一系列子项目,共同为用户提供了从Layer 2到Layer 7上不同层次的多种网络服务功能,包括Layer 2组网、Layer 3组网、内网DHCP管理、Internet浮动IP管理、内外网防火墙、负载均衡、VPN等。整体而言,Neutron的Layer 2、Layer 3服务能力已经较为成熟。时至今日,Neutron已经取代了早期的nova-network,成为了OpenStack中Layer 2、Layer3的主流虚拟网络服务实现方式。与之对应,Neutron的Layer 4至Layer 7服务能力仍在迅速发展中,目前已具备初步应用能力。
需要说明的是,OpenStack的DNS即服务能力,并未包含在Neutron项目的功能范围当中,而是由另一个单独的项目Designate负责实现。
8. Heat:资源编配服务
云计算的核心价值之一,即在于IT资源与服务管理和使用的自动化。换言之,在引入云计算技术之后,大量在传统IT领域中需要依靠管理人员或用户通过手工操作实现的复杂管理操作,应当可以通过调用云操作系统提供的API,以程序化的方式自动完成,从而显著提高IT系统管理的效率。
在上述提及的IT领域复杂管理操作中,用户业务应用系统的生命周期管理操作,即应用系统的安装、配置、扩容、撤除等,可谓是具有代表性的一类。这类操作的复杂与耗时耗力,与当前不断凸现的业务快速上线、弹性部署诉求,已经表现出明显的不适应性。
Heat项目的出现,就是为了在OpenStack中提供自动化的应用系统生命周期管理能力。具体而言,Heat能够解析用户提交的,描述应用系统对资源类型、数量、连接关系要求的定义模板,并根据模板要求,调用Nova、Cinder、Neutron等项目提供的API,自动实现应用系统的部署工作。这一过程高度自动化,高度程序化。同样的模板,可以在相同或不同的基于OpenStack的云计算系统上重复使用,从而大大提升了应用系统的部署效率。
在此基础上,Heat还可以与OpenStack Ceilometer项目的Aodh子项目相配合,共同实现对于应用系统的自动伸缩能力。这更进一步简化了部分采用无状态、可水平扩展架构的应用系统的管理,具有典型的云计算服务特征。
9. Ceilometer:监控与计量
在云计算系统中,各类资源均以服务化的形式向用户提供,用户也需要按照所使用资源的类型和数量缴费。这种基本业务形态,就要求云操作系统必须能够提供资源用量的监控与计量能力。这正是OpenStack引入Ceilometer项目的根本动机。
Ceilometer项目的核心功能,是以轮询的方式,收集不同用户所使用的资源类型与数量信息,以此作为计费的依据。
在此基础上,Ceilometer可以利用收集的信息,通过Aodh子项目发送告警信号,触发Heat项目执行弹性伸缩功能。
需要说明的是,Ceilometer项目自身并不提供计费能力。系统设计者需要将其与适当的计费模块相对接,才能实现完整的用户计费功能。目前,OpenStack社区已经创建了CloudKitty项目,作为OpenStack社区原生的计费组件。但该项目当前尚处于较为初期的阶段,难以直接商用。
10. Horizon:图形界面
Horizon项目是OpenStack社区提供的图形化人机界面。经过社区长期的开发完善,Horizon界面简洁美观,功能丰富易用,可以满足云计算系统管理员和普通用户的基本需求,适于作为基于OpenStack的云计算系统的基本管理界面使用。
此外,Horizon的架构高度插件化,灵活而易于扩展,也便于有定制化需求的系统设计人员针对具体场景进行增量开发。
11. Sahara:数据处理服务
应当说,大数据和云计算,是两个天然紧密联系的技术领域。云计算技术的出现,为大数据处理提供了廉价、易用、易扩展的计算支撑平台。而大数据处理业务,由于其可并行、高弹性、自身可容错的特征,也是云计算平台上的一种理想业务。
针对这一背景,OpenStack社区推出了Sahara项目,以实现Hadoop、Spark等主流大数据处理集群软件的云化。使用Sahara项目,即便是没有任何大数据处理集群软件安装部署和管理应用经验的用户,也可以以图形化的方式,极其简便地安装部署属于自己的、规模适当的大数据集群,并以简明易懂的方式对自己的数据集进行指定算法的处理,以获取处理结果。Sahara的出现,极大地简化了普通用户使用大数据处理软件的过程,将大数据和云计算两项技术紧密地结合在了一起。
12. Magnum:容器服务
容器是当今无可回避的热门技术话题。容器技术的出现、发展与繁荣,极大地提升了软件的开发与部署效率,也极大地改变了软件生命周期管理的既有模式。围绕着以Docker为代表的容器化软件生命周期管理技术体系,已经逐渐发展出Kubernetes、Mesos、Swarm等容器集群管理系统,以便在服务器集群上实施应用软件生命周期管理和集群资源调度。
在这种情况下,OpenStack社区自然也不会无动于衷。Magnum项目就是OpenStack社区为实现容器集群管理系统的服务化而推出的新项目。使用Magnum,用户可以在基于OpenStack的云计算系统上,实现容器集群管理系统的生命周期管理自动化。具体而言,利用Magnum,用户可以完全通过API调用的方式,实现Kubernetes集群在OpenStack之上的自动化安装部署,并通过Magnum的API对Kubernetes实施管理操作,非常简单便捷。