1. 程式人生 > >Docker學習筆記 — Docker與OpenStack整合

Docker學習筆記 — Docker與OpenStack整合

聽了企事錄聯合創始人李明宇的關於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。