讀古今文學網 > OpenStack系統架構設計實戰 > 12.5 容器管理服務(Magnum) >

12.5 容器管理服務(Magnum)

12.5.1 概述

對於容器的管理,OpenStack社區開始是採用Nova driver的方式,對Nova計算控制器進行擴展,在Linux環境下同時管理虛擬機和容器。但是最終技術人員意識到,容器和虛擬機差異很大,它們底層技術不同,生命週期管理方式不同,容器需要有與虛擬機不同的獨立的管理方式。容器管理不是簡單地將Hypervisor替換為Docker就可以的。在大規模雲環境下,需要有不同於虛擬化的管理工具對容器有效管理。

2014年,OpenStack創建了Magnum項目。

Magnum項目由OpenStack聯合創始公司Rackspace Hosting主導,項目PTL Andrio otto是Rackspace的資深架構師。IBM、NEC也對Magnum項目很重視,IBM目前的代碼貢獻率為第一,如圖12-13所示。

圖12-13 Magnum項目社區的貢獻情況

與其說Magnum提供容器管理,不如說Magnum提供了OpenStack與大規模容器管理系統進行交互的接口,這裡所指的容器管理系統包括Docker Swarm和Google Kubernets。其中Kubernets不僅可管理Docker容器,現在還正在擴展以支持CoreOS發佈的AppC容器。儘管這些容器管理系統足以對容器進行管理,但是它們需要一個OpenStack這樣的雲控制器,對管理系統進行封裝。

1)很多公司構建雲平台,希望通過支持多個Swarm和Kubernetes實例,對客戶提供一定的隔離性。所以需要一個雲控制器對Swarm和Kubernetes集合進行資源分配和管理。

2)Magunm作為一個接口,屏蔽不同容器管理工具的操作差異。OpenStack對於用戶選擇何種虛擬化、何種網絡沒有傾向性。同樣,OpenStack對於用戶選擇的各種容器技術也都提供很好的支持。當用戶希望增加新的容器管理系統,以支持LXC、OpenVZ、rkt或者其他容器格式時,Magnum的可插拔架構使得這些成為可能。

3)Magnum不僅支持Linux,目前微軟有兩種容器技術:Windows服務器容器和Hyper-V容器。Magnum最終會對Docker和Microsoft的容器管理工具進行封裝,管理各種類型容器的混合形態。

當前Rackspace內部正在試運行一個基於Libvirt-LXC容器技術的服務。顧名思義,Magnum驅動可以管理和控制LXC容器,這項產品2015年年底在Rackspace Cloud上已經對外發佈。

Magnum在2014年11月才接納了第一個commit,直到2015年3月底才發佈第一個版本,所以Magnum在OpenStack社區中還是個很年輕的項目。Magnum的複雜度和OpenStack初期的Nova Controller相當,但是隨著OpenStack的發展,OpenStack開發者積累了很多的經驗,所以,Magnum PTL Andrio Otto認為,項目可能在Liberty版本就達到生產級別。