背景

Magnum 项目是 2014 年 11 月增加 OpenStack 的年轻项目,由 Rackspace主导发起,其定位是提供容器即服务(Container as a Service)的 API 框架,计划在 2015 年 10 月推出的 Liberty 版本号时成熟。

我们知道,眼下 OpenStack 中 Nova 项目已经通过 nova-docker 的形式支持了 Docker 容器(把容器当虚机管)。但在实际使用中,会发现有不少的问题。毕竟,Nova 设计的初衷是管理虚拟机,而容器跟虚拟机在行为和特性上存在较大的不同。不管是管理层还是底层的虚拟化支持层都全然不同。

并且,让 Nova 支持各种各样的容器机制(Docker、OpenVZ、Rocket、LXC 等)要进行改动的地方着实不少,可能跟现有框架形成冲突。

此外,Heat 项目也支持 Docker 官方插件。来直接通过 Docker 的 REST API 来管理容器,而且支持容器的高级特性。

然而。不支持资源的调度和网络功能。

社区之所以接收 Magnum 项目。一方面是容器技术如今着实火热,还有一方面,也是往更高一层发展提供更好的支持。

设计原理

Magnum 在设计上,希望调用其他的容器管理平台的 API 来实现功能,自身作为一套 API 框架,眼下支持 Docker、Kubernetes、Swarm 等。主要优势包含多租户、多后端框架、完好的容器功能、支持资源调度等。

假设说 Nova 是一套支持不同 Hypervisor (KVM、VMWare 等虚拟机平台)的 API 框架,那么 Magnum 则是支持不同容器机制的 API 框架。

基本概念

从小往大的顺序:

  • Node:容器执行的节点,能够是裸机、虚拟机甚至容器。
  • Bay:一组 Node 的集合(底层同一个驱动机制),是 Magnum 中容器调度的基本单元。Bay 在租户之间是隔离的。
  • BayModle:类似于 Nova 中的 flavor。定义一个 Docker 集群的规格。

以下几个是来自 Kubernetes 中的概念。

  • Container:容器。
  • Pod:最小的管理单元。一个或多个相互关联的容器(一般执行相同应用),执行在同一个 Minion Node 上。共享相同的数据挂载和网络空间,代表某种应用的一个实例。

  • Service:由一个或者多个 Pod 组成,代表一个抽象的应用服务。对外呈现为同一个訪问接口。这样訪问能够通过 service 来路由。而无需详细知道 Pods 的地址。

  • ReplicationController:对 pod 指定副本数,RC 能够保证一直存在该数目的副本存在并执行。

主要服务

主要服务有两个。Magnum API 和 Magnum Conductor。

前者提供调用的接口,接收 python-magnumclient 的请求。能够同一时候执行一个或者多个实例。这些请求终于扔给 AMQP 消息队列。发送到 magnum-conductor 服务。

后者执行在控制节点上,详细负责将 client 的请求转发到详细的后端机制(Kubernetes API 或者 Docker API)。眼下限制仅仅能存在一个实例。

转载请注明:http://blog.csdn.net/yeasy/article/details/46331679

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

  1. OpenStack Magnum项目简介

    1 项目简介 Magnum是OpenStack中一个提供容器集群部署的服务. Magnum是一个Pass层的OpenStack项目. Magnum使用Heat部署一个包含Docker和Kubernet ...

  2. Openstack容器项目之Magnum

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

  3. openstack架构简单介绍J版(更新中)

    title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以A ...

  4. Android项目开发全程(二)--Afinal用法简单介绍

    本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目 ...

  5. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  6. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  7. 【云计算】OpenStack项目全面介绍

    关于OpenStack孵化项目trove(DBaaS)之我见:http://blog.csdn.net/ddl007/article/details/17253751 OpenStack Trove将 ...

  8. C#中Fun简单介绍及运用到项目中与缓存(本地缓存,Redis)结合使用

     1.简单介绍Fun C#中Fun和Action有点类似,都是一个委托方法,不同的是Func是有返回值的,而Action没有. (T)此委托封装的方法的参数类型. 备注:详情了解Fun到(https: ...

  9. Openstack单元测试工具简单说明

    一.Openstack 的单元测试工具介绍 1.unittest unittest: 是 Python 的标准库,提供了最基本的单元测试功能,包括 单元测试运行器(简称runner) 和 单元测试框架 ...

随机推荐

  1. [Everyday Mathematics]20150128

    求极限 $$\bex \lim_{x\to 0}\sex{\frac{e^x+e^{2x}+\cdots+e^{nx}}{n}}^\frac{1}{x}. \eex$$

  2. Redis入门教程:特性及数据类型的操作

    虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍.是一个很不错的Redis入门 ...

  3. mysql-5.6.15_winX64在win764位系统下的安装操作步骤总结

      mysql 版权声明:本文为博主原创文章,未经博主允许不得转载. 自从换了新电脑win764位,支持的内存从原来的3G(2G机身+1G内存条)变到了现在的8G(机身4G+4G内存条),机子的速度是 ...

  4. 《Python CookBook2》 第四章 Python技巧 - 若列表中某元素存在则返回之 && 在无须共享引用的条件下创建列表的列表

    若列表中某元素存在则返回之 任务: 你有一个列表L,还有一个索引号i,若i是有效索引时,返回L[i],若不是,则返回默认值v 解决方案: 列表支持双向索引,所以i可以为负数 >>> ...

  5. 白盒测试之gmock入门篇

    一.gmock是什么 gmock是google公司推出的一款开源的白盒测试工具.gmock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程 ...

  6. Github上如何取消fork别人的repository

    在Github上如果看到有很不错的项目和作品,一般我们可以进行三种操作:那就是watch, star和fork. Watch也就是关注该repo的动态,star则类似于Facebook和Twitter ...

  7. exists与in的使用与区别

    1.in的使用举例 select * from tableA where id in (select id from tableB) 2.exists的使用举例 select * from table ...

  8. document.write("\x3c\x54")?是加密了吗?

    <script>document.writeln("\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22\x48\x54\x5 ...

  9. Lucene学习笔记: 四,Lucene索引过程分析

    对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后 ...

  10. Iaas概述

    IAAS :设施即服务,为开发者提供存储,计算,网络等资源,整体架构如下图: 整体分为三个部分: 1.Iaas云的管理部分:对整个云有超级用户管理权限,可以查看监控整个云中的资源,租户信息,并进行管理 ...