Docker学习笔记 — Docker与OpenStack集成

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/wangtaoking1/article/details/45065923

听了企事录联合创始人李明宇的关于Docker与OpenStack的演讲后,了解了Docker与OpenStack的多种集成方案,总结如下。

云计算有一个愿景,就是希望把计算像水电一样提供给用户使用。然而用户并不是直接使用电,而是使用电灯电视等;同样,用户并不会直接使用计算资源,而是使用在计算资源上层开发的一些应用。
OpenStack将硬件资源虚拟化出计算资源池,向上开放了一系列API,用于支持上层应用的开发,满足用户对计算资源的各种需求。

OpenStack与Docker的集成有两个方面:
1. 利用Docker进行OpenStack部署。
2. 在OpenStack中集成Docker,提供PaaS服务。

使用Docker进行OpenStack部署

将OpenStack的各种服务分别部署在一个容器中,将所有容器互连提供OpenStack服务。

这里写图片描述

以往的自动化部署需要将在每台服务器上面跑部署脚本,现在只需在每台服务器上面运行Docker容器即可,真正实现了OpenStack平台的秒级部署。

OpenStack中集成Docker

目前有三种方案,分别如下。

Docker Driver for Nova

通过nova-api,docker driver作为hypervisor部署。原理很好理解,nova-computer-api调用virt api 将nova docker driver作为http agent和docker rest api互通,从而控制docker和与容器的通信。另外,glance作为docker register服务的本地节点,提供image服务。

这里写图片描述

优点
- 相比VM的性能优势,特别是Auto-Scale Out的时候
- 使用经验、资料详细
- 混合方案,满足不同性能需求
缺点
- 不支持Docker的一些高级特性
- “一种轻量级虚拟机”这个idea是一把双刃剑
- Nova API是对机器的抽象
- 而Docker API包含了对进程/应用的抽象

Docker Plugin for Heat

通过Heat组件来实现。利用heat来管理docker的资源模板,这样可以避免nova仅仅在hypervisor层面对docker管理的限制,比如一些docker本身构建的能力,或是docker容器之间的网络管理等。

这里写图片描述

优点
- 血统纯正——DockerInc.
- 能够充分利用Docker的API
问题
- 缺乏调度机制:quota、 host aggregate
- 不能用Glance来管理镜像

Magnum

因为Docker Driver for Nova和Docker Plugin for Heat的不足,OpenStack组建了一个Containers团队,用于开发Magnum。

Magnum的优点
- 支持多租户(安全性)
- 支持资源调度(Nova Scheduler、Gantt)
- 支持多种Backends
- 支持Bare Metal⽅方案

但是Magnum还尚不成熟。

如何选择

如果需要的是一个轻量级的虚拟化技术,那么选用Docker Driver for Nova。

如果希望直接通过OpenStack使用Docker的“高级”功能,把Docker作为应用的载体,那么选用Docker Plugin for Heat或者Magnum。

如果希望使用Kubernetes或者希望使用混合云方案,那么使用Magnum或者Google开发的Murano。



参考文档
1. http://www.cloudsource.cn/?p=95
2. http://www.open-open.com/lib/view/open1425625353775.html
3. http://www.infoq.com/cn/presentations/docker-and-openstack

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页