OpenStack Magnum仍然是開源云平臺上容器部署的一個關鍵服務。但是諸如Kolla和Kuryr這樣的新服務也在不斷發展成熟。
基于容器的虛擬化技術影響了IT的所有方面,甚至還包括了云軟件堆棧。因此,OpenStack社區已經開發了一套能夠在基于OpenStack的私有云或混合云上打開可以緊密運行容器實例選項的服務模塊。
Magnum是一個已經實施兩年左右時間的OpenStack容器項目。它被認為是運行容器軟件(例如Docker Swarm、Kubernetes和Apache Mesos等)的一種方法,它能夠讓企業用戶在OpenStack上對容器進行編排。Magnum是一個靈活的工具,例如它能夠配合Swarm讓操作系統鏡像在裸機或虛擬機內運行。
OpenStack Magnum在Nova實例中構建容器架構。該服務通常使用輕量級操作系統(例如Core OS或Fedora Atomic)來支持Docker。實例中也包括了合適的編排器——Swarm、Kubernetes或Mesos。OpenStack Magnum在Heat中創建了一個控制結構來識別實例和容器。這種方法允許管理員通過OpenStack項目的核心組合使用Heat模板,以及必要的存儲資源、應用程序鏡像和網絡連接。Magnum還支持Neutron負載平衡器。
OpenStack容器的近期發展
OpenStack的最新版本Ocata推出了新功能來幫助用戶部署和管理容器。這些新功能包括:
Kolla:一個容器化的OpenStack服務,它可支持三個主要的容器編排器——Docker Swarm、Kubernetes和Apache Mesos在OpenStack中運行,并與其他模塊進行交互。
Kuryr:連接容器與Neutron,以便將虛擬網絡連接至其他容器、虛擬機實例以及外部世界。目前,它支持Docker Swarm。
Fuxi:是Kuryr的一個子項目,Fuxi允許容器訪問Cinder塊存儲和Manila共享存儲。
Zun:是一個OpenStack容器管理服務。OpenStack Wiki將Zun定義為Magnum的原始意圖,后者已經發展成為托管上述提及的三大容器編排引擎。
Kuryr和Fuxi提供了可將眾多容器從有限環境遷移至全應用程序環境的網絡與存儲連接。綜上所述,前面列出的三個模塊可允許一組容器實現相互交互并共享與存儲數據。
現在Kolla支持支持三大容器編排引擎,Zun是OpenStack專有創建容器和管理其生命周期的方法。因為容器與其相關操作系統和應用程序鏡像的可移植性對于平滑和高效操作是至關重要的,所以它可能不適用于混合云。
Kolla中標準編排環境的使用應當有助于提高公共云容器服務的可移植性。Murano模塊中的模板、鏡像和容器支持都可跨混合云發揮作用。但是,跨云處理支持所需的API仍然存在有問題。
有了這些新功能,Magnum成為了OpenStack容器部署的更簡便方法,而不需要使用Puppet或Ansible從頭開發。盡管如此,OpenStack Magnum和DIY方法更多的是一種DevOps級任務,而不是一個最終用戶的策略驅動過程。
OpenStack容器服務的下一步
OpenStack使用的領導者之一是CERN(歐洲核研究組織)。該組織基于OpenStack Magnum建立了一個1,000節點的集群,并于近期達到了每秒七百萬次Kubernetes請求的記錄。CERN的項目反映了OpenStack中Kubernetes的增長過程,而Kubernetes則繼續調整其運行性能。
但是,盡管如此,OpenStack容器服務仍然有一些工作要做。Project Navigator是所有官方OpenStack項目的一個指南,它提供了對項目成熟度和利用率的一個客觀衡量。
目前根據Project Navigator的說法,OpenStack Magnum在成熟度方面在八個競爭者中排名第二,并用于11%的OpenStack安裝。顯而易見,OpenStack Magnum并未涵蓋所有的基礎應用方面;例如在與認證的集成上還是偏弱的。
其他關鍵集成工作還處于起步階段。例如這些管理環境需要與Ansible和Puppet進行進一步的集成以便擴展至OpenStack容器世界。此外,如果工作負載開始從中央IT管理員轉移到部門用戶,容器編排的簡化控制機制也是至關重要的。擴展至模板系統和基于策略的管理都是這項任務的一部分。
容器技術正處于全面發展階段,OpenStack必須迎頭趕上。但是,Magnum及其相關OpenStack容器項目的成熟度與穩定性將在2017年繼續有所提高。