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开源团队工程师向新勇

最新文章

  1. Dynamics CRM 之ADFS 使用 WID 的独立联合服务器
  2. reactjs 注意点
  3. Linux命令行–基本的bash shell命令
  4. linux中ls、ls -l、ls -al、ll命令
  5. IE 弹出框处理经验
  6. 上传图片到文件夹并显示在GridView控件里面
  7. c# 索引器方法
  8. ViurtualBox配置虚拟机Linux的网络环境
  9. Jenkins结合.net平台综合之监听git仓库并自动摘取最新代码编译
  10. #WEB安全基础 : HTTP协议 | 0x9 GET和POST请求以及请求URI的方式
  11. Vue+min-width实现最大两栏布局
  12. 「2017 Multi-University Training Contest 7」2017多校训练7
  13. 发现一sonar-runner bug
  14. VB.NET只允许打开一个实例
  15. 利用Tensorflow实现神经网络模型
  16. vue中使用js动画与velocity.js
  17. Java编程的逻辑 (3) - 基本运算
  18. InterView之PHP
  19. ADO.NET:C#/SQL Server
  20. 4gcc编译器

热门文章

  1. MyBatis_动态sql_foreach_mysql下foreach批量插入的两种方式
  2. MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
  3. go if for while 的使用
  4. 2019牛客暑期多校训练营(第十场)Coffee Chicken——递归
  5. java 设计模式 --委派模式
  6. 008_软件安装之_MATLAB2017B
  7. 最短路--SPFA及其优化
  8. Spring动态代理及Spring Bean的生命周期
  9. mysql删除完全重复数据保留一条
  10. cf242 E