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. 基本排序-冒泡/选择/插入(python)

    # -*- coding: utf-8 -*- import random def bubble_sort(seq): n = len(seq) for i in range(n-1): print( ...

  2. 利用os模块求一个文件夹的大小。

    一.递归方法 def size(path): #给定一个初始的文件夹路径 num = 0 list_name = os.listdir(path) #利用os模块方法,以列表的形式获得该文件夹下面的所 ...

  3. bloomberg bulkfile【一】 文件的分类

    文章导航 bloomberg bulkfile [一]  文件的分类 bloomberg bulkfile [二]  文件解析 bloomberg bulkfile [三]  在oracle的存储 订 ...

  4. .NET Core EF 版本问题

    最近在跟着官方的文档学习 .NET Core . 在写 “创建 Razor 页面 Web 应用” Demo 中的——“添加模型”这一篇的教程,“添加初始迁移”中遇到 “The EF Core tool ...

  5. Java8新特性--CompletableFuture

    并发与并行 Java 5并发库主要关注于异步任务的处理,它采用了这样一种模式,producer线程创建任务并且利用阻塞队列将其传递给任务的consumer.这种模型在Java 7和8中进一步发展,并且 ...

  6. python定义函数时的参数&调用函数时的传参

    一.定义函数: 1.位置参数:直接定义参数 2.默认参数(或者关键字参数):参数名 = "默认值" 3.位置参数必须在默认参数之前 二.调用函数: 1.按位置传,直接写参数的值 2 ...

  7. 56、servlet3.0-与SpringMVC整合分析

    56.servlet3.0-与SpringMVC整合分析 web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainer ...

  8. 002_软件安装之_keil4与keil5共存

    目的:实现keil4和keil5的共存 1. Keil4 主要用来开发 C51 程序 2. Keil5 也就是 MDK 主要用来开发 ARM 芯片,如 STM32 系列芯片 3. 资料下载地址:链接: ...

  9. 批量给文件去BOM(百度网盘)

    链接:https://pan.baidu.com/s/1jC8RkyC0xX1lA-zZjOyDsw 提取码:geko 第一步:浏览你要移除BOM编码的文件夹.第二步:点击移除bom,随后会弹出提示框 ...

  10. bzoj 3721: PA2014 Final Bazarek 贪心

    如果没有限制,直接取前 $k$ 大即可. 有限制,则只有几种可能:奇换偶,偶换奇. 维护奇数偶数的前缀最小值和后缀最大值即可. code: #include <bits/stdc++.h> ...