Magnum是OpenStack容器箱項目,已經(jīng)存在兩年了。它被認為是運行容器軟件(例如Docker Swarm、Kubernetes和Apache Mesos)的一種方式,并允許機構在OpenStack上編排容器。Magnum是一個(gè)靈活的工具,例如,允許使用Swarm的OS鏡像在裸機或虛擬機上運行。
OpenStack Magnum在Nova實(shí)例中構建容器結構。該服務(wù)通常使用輕量級的操作系統(如Core OS或Fedora Atomic)來(lái)支持Docker。這個(gè)實(shí)例也包括適當的編排器——Swarm、Kubernetes或Mesos。OpenStack Magnum在Heat中創(chuàng )建一個(gè)控制結構來(lái)識別實(shí)例和容器。這種方法允許管理員通過(guò)OpenStack項目的核心組合使用具有必要的存儲、應用程序鏡像和網(wǎng)絡(luò )連接的Heat模板。Magnum還支持Neutron負載均衡器。

最新版本的OpenStack Ocata推出了新功能來(lái)幫助部署和管理容器,包括:
- Kolla:一種容器化的OpenStack服務(wù),允許三個(gè)主要的容器編排程序 —— Docker Swarm、Kubernetes和Apache Mesos在OpenStack中運行,并與其他模塊進(jìn)行交互。
- Kuryr:將容器連接到Neutron,以便虛擬網(wǎng)絡(luò )與其他容器、虛擬機實(shí)例和外部世界的互連。 它現在支持Docker Swarm。
- Fuxi:Kuryr的一個(gè)子項目,允許容器訪(fǎng)問(wèn)Cinder塊存儲和Manila共享存儲。
- Zun:一個(gè)OpenStack容器管理服務(wù)。OpenStack Wiki將Zun定義為Magnum的原始意圖,而Magnum已經(jīng)管理為主持上述的三大容器編排引擎。
現在Kolla支持三大容器編排引擎,Zun是OpenStack專(zhuān)有的創(chuàng )建容器和管理其生命周期的方式。這在混合云中可能用不著(zhù),因為容器及其相關(guān)的操作系統和應用程序鏡像的可移植性對于平滑和高效的操作至關(guān)重要。
在Kolla使用標準的編排環(huán)境應該有助于遷移到公有云容器服務(wù)。Murano模塊中容器支持的模板和圖像應可以在混合云中運行。但是,支持跨云處理所需的API仍然存在缺陷。
有了這些新功能,與使用Puppet或Ansible從頭開(kāi)始構建相比,Magnum成為OpenStack容器部署的一個(gè)更簡(jiǎn)單的方法。盡管如此,OpenStack Magnum和DIY方法更多的是DevOps級別的任務(wù),而不是最終用戶(hù)、政策驅動(dòng)的過(guò)程。
OpenStack容器服務(wù)的下一步
OpenStack使用的領(lǐng)導者之一是CERN。該組織基于OpenStack Magnum建立了一個(gè)1000節點(diǎn)的集群,最近每秒的Kubernetes請求數可以達到700萬(wàn)個(gè)。 CERN的項目反映了在OpenStack中擴展Kubernetes的進(jìn)展,而且Kubernetes繼續在進(jìn)步。
盡管如此,OpenStack容器服務(wù)仍然有待成熟。Project Navigator是所有官方OpenStack項目的指南,它提供了對項目成熟度和利用率的客觀(guān)衡量。
目前,根據Project Navigator,OpenStack Magnum在八個(gè)成熟度中排名第二,被用于11%的OpenStack安裝。很明顯,OpenStack Magnum還沒(méi)有涵蓋所有的基礎,例如,與認證的集成較弱。
其他關(guān)鍵整合還處于起步階段。舉例來(lái)說(shuō),與Ansible和Puppet的進(jìn)一步整合
對這些管理環(huán)境擴展到OpenStack容器世界而言是必要的。此外,如果工作負載開(kāi)始從中央IT管理員轉移到部門(mén)用戶(hù),容器編排的簡(jiǎn)化控制機制是至關(guān)重要的。擴展到模板系統和基于策略的管理是此任務(wù)的一部分。
容器技術(shù)飛速發(fā)展,OpenStack必須趕上。這就意味著(zhù)Magnum和相關(guān)的OpenStack容器項目的成熟度和穩定性將在2017年持續改善。