1 项目简介

  Magnum是OpenStack中一个提供容器集群部署的服务。

  Magnum是一个Pass层的OpenStack项目。

  Magnum使用Heat部署一个包含Docker和Kubernetes的操作系统镜像,

  让容器集群运行在虚拟机(Virtual Machine)或者裸机(Bare Metal)中。

2 项目发展故事

  Magnum项目创建之初,项目目标以Caas为宗旨,即容器即服务。

  但在后续的发展过程中,社区更倾向于分离容器的集群部署功能和Docker容器集群的管理功能。

  因此Magnum重新修改了项目目标,Magnum本身专注于容器的集群部署功能。

  另一个正在孵化中的项目Zun专注管理Docker容器集群。

3 项目组成

  Magnum 由三个代码库组成:

  Magnum: http://git.openstack.org/cgit/openstack/magnum

  Python-magnumclient: http://git.openstack.org/cgit/openstack/python-magnumclient

  Magnum-ui: http://git.openstack.org/cgit/openstack/magnum-ui

  Magnum主要提供两个服务:Magnum APIMagnum Conductor

  Python-magnumclient封装Magnum Rest API向外提供Magnum的接口调用,同时提供CLI功能。

  Magnum-ui提供一个Horizon的插件,使用Django和AngularJS实现Magnum的界面操作。

4 项目概念

  Container:Docker容器。

  Node:容器运行的节点,可以是裸机、虚拟机甚至容器。

  Bay:运行容器的一组node的集合,是Magnum中容器调度的基本单元。

  BayModel:用来存储Bay的模板的对象,类似于Nova中的flavor。

  Pods:运行在同一个Node上一组容器集合,这是Kubernetes中的一个概念。

  Service:由一个或者多个 Pod 组成,代表一个抽象的应用服务,对外呈现为同一个访问接口,

这样访问可以通过 service 来路由,而无需具体知道 Pods 的地址。

  ReplicationController:简称RC,RC 对 pod 指定副本数,可以保证一直存在该数目的副本存在并运行。

5 项目架构

  Magnum自身作为一套 API 框架,本身调用其它的容器管理平台的 API 来实现功能,

  目前支持的后端包括 Kubernetes、Swarm和Mesos。

  如果说 Nova 是一套支持不同 Hypervisor 虚拟机平台的 API 框架,那么 Magnum 则是支持不同容器机制的 API 框架。

  Magnum API提供资源的Rest接口。

  Magnum Conductor是整个项目的核心,首先通过Heat部署虚拟机实例或者裸机实例上,

  然后通过Cloud init在虚拟机实例或者裸机实例上,调用Kubernetes、Swarm或者Mesos部署容器集群。

6 DevStack部署

  下载DevStack,并在DevStack目录下添加local.conf,文件内容如下:

[[local|localrc]]
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_TOKEN=password
SERVICE_PASSWORD=password
ADMIN_PASSWORD=password
# magnum requires the following to be set correctly
PUBLIC_INTERFACE=eth0
enable_plugin magnum https://git.openstack.org/openstack/magnum
# Enable barbican service and use it to store TLS certificates
# For details http://docs.openstack.org/developer/magnum/dev/dev-tls.html
enable_plugin barbican https://git.openstack.org/openstack/barbican
VOLUME_BACKING_FILE_SIZE=20G

  执行./stack.sh即可完成Magnum服务的安装。

7 项目交流

  IRC Channel:    #openstack-containers on freenode

  Weekly Meetings:  北京时间每周三的00:00 #openstack-meeting-alt

编者注:本文来自OpenStack开源团队工程师向新勇

OpenStack Magnum项目简介的更多相关文章

  1. OpenStack Magnum 项目简单介绍

    背景 Magnum 项目是 2014 年 11 月增加 OpenStack 的年轻项目,由 Rackspace主导发起,其定位是提供容器即服务(Container as a Service)的 API ...

  2. OpenStack Smaug项目简介

    1 项目简介 Smaug是一个OpenStack中提供应用数据保护服务的项目. 2 项目使命 在OpenStack中建立应用数据保护的标准和规范. 保护OpenStack中的任何资源以及资源的依赖项. ...

  3. Openstack容器项目之Magnum

    本文以Newton版本为例. 1.Magnum简介 Magnum项目通过Openstack API能够在Openstack中创建基于容器的服务,但它本身并不直接对容器进行操作,而是通过Kubernet ...

  4. OpenStack云计算快速入门之一:OpenStack及其构成简介

    原文:http://blog.chinaunix.net/uid-22414998-id-3263551.html OpenStack云计算快速入门(1) 该教程基于Ubuntu12.04版,它将帮助 ...

  5. OpenStack及其构成简介1

    第一部分 OpenStack及其构成简介 一.云计算   云计算是一种计算模型,它将诸如运算能力.存储.网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样 ...

  6. 【转】GitHub 排名前 100 的安卓、iOS项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  7. 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)

    排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...

  8. 64.GitHub 排名前100的android项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  9. Android小项目练习之一 项目简介

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

随机推荐

  1. 看完100篇Python技术精华文章,平均涨薪30%!

    一个以技术为立身根基的教育机构做出来的微信号,干货程度会有多高? 马哥Linux运维公众号运营五年,从一开始的定位就是给技术人分享加薪干货的地方.这五年里,公众号运营最重的任务就是做内容.内容并不好做 ...

  2. 高性能集群(HPC

    串行计算与并行计算1.串行计算串行计算是指在单个计算机(拥有单个中央独立单元) 上执行软件写操作.CPU 逐个使用一系列指令解决问题.为了加快处理速度,在原有的串行计算的基础上演变出并行计算2.并行计 ...

  3. vue2 单一事件中心管理组件通信

  4. Python十大经典排序算法

    现在很多的事情都可以用算法来解决,在编程上,算法有着很重要的地位,将算法用函数封装起来,使程序能更好的调用,不需要反复编写. Python十大经典算法: 一.插入排序 1.算法思想 从第二个元素开始和 ...

  5. BZOJ 2699: 更新 (DP)

    题目 对于一个数列A[1-N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值.假设所有数都在范围[1, ...

  6. AirTest与模拟器连接(二)

    如果我们手边没有可用的Android真机,又想进行Android应用自动化测试,这时候就要使用AirtestIDE的Android模拟器自动化测试功能了. AirtestIDE所支持的模拟器包括 An ...

  7. 47、[源码]-Spring容器创建-初始化MessageSource

    47.[源码]-Spring容器创建-初始化MessageSource 7.initMessageSource();初始化MessageSource组件(做国际化功能:消息绑定,消息解析): 获取Be ...

  8. MongoDB 分片管理(四)数据均衡 -- 特大快

    1.1 特大快形成 如果用date字段作为片键,集合中date是一个日期字符串,如:year/month/day,也就是说,mongoDB一天创建一个块.因块内所有文档的片键一样,因此这些块是不可拆分 ...

  9. Maven Module和Maven Project的区别

    1.maven project和module相当于父子关系.2.当新建的项目中不存在父子关系时使用project.3.当项目中存在父子关系时用project做父工程,module做子工程,module ...

  10. luogu 5505 [JSOI2011]分特产 广义容斥

    共有 $m$ 种物品,每个物品 $a[i]$ 个,分给 $n$ 个人,每个人至少要拿到一件,求方案数. 令 $f[i]$ 表示钦定 $i$ 个没分到特产,其余 $(n-i)$ 个人随便选的方案数,$g ...