OpenStack Magnum通常用于部署和監控容器——如Docker Swarm、Google Kubernetes 和 Apache Mesos等,但是除此之外這個項目還有一些其他有用工具。
易于部署,并且體積要比hypervisor小很多,這些都是容器技術日益流行的原因,此外,單個容器只需要完成特定任務?,F在最為常見的三種容器是Docker Swarm、Google Kubernetes和Apache Mesos。
使用容器技術,管理員能夠部署完整應用或者是應用的重要組成部分,并且其體積只有幾十MB。容器啟動過程只需要幾秒鐘,而hypervisor需要數分鐘才能夠完成啟動過程。
容器運行在主機操作之上,因此其中包含了一個迷你操作系統。這種架構是必要的,因為不論安裝何種應用程序,都需要運行在底層操作系統之上。但是不同于hypervisor,容器不會額外的系統開銷(比如模擬硬件)。
之前容器只能工作在Linux平臺上,而現在其也能夠支持Windows Server 2016了。
OpenStack和容器最為常見的容器使用方式就是下載完整系統,之后立刻開始進行工作。比如,管理員需要創建并運行Ubuntu虛擬機或者Apache Spark環境,那么只需要安裝Docker,之后從Docker公共鏡像庫中下載已經封裝好的鏡像就可以了。
如果企業需要使用50種應用,并且全部運行在容器當中,那么用不了多久管理員就會忘記應用程序和容器的對應關系,因為缺少集中管理機制。這種情況將會導致孤立容器占用資源——并且增加大量的云成本。而OpenStack Magnum可以幫助解決這種問題。
OpenStack Magnu能夠部署容器并且對其進行監控記錄。此外還允許管理員對應用程序進行抽象,快速復制大量容器以滿足負載需求,并且在不需要的時候隨時關閉。
OpenStack MagnumOpenStack Magnum使用非常簡單。如,部署一個容器只需三個步:
1.使用OpenStack Magnum創建Google Kubernetes、Docker Swarm或者Apache Mesos Bay。
2.創建Docker Swarm Bay,Docker Swarm將會在多臺機器之間啟用集群。
3.現在管理員就可以運行Docker命令來從OpenStack Glance當中獲取鏡像,并且啟動Docker容器了。
管理員可以使用OpenStack Glance程序來存儲Docker鏡像,就像hypervisor鏡像一樣。比如,只需要兩個步驟就可以下載MySQL,并將其存儲到Glance當中:
docker pull mysqldocker save mysql | glance image-create --is-public=True --container-format=docker --disk-format=raw --name mysqlOpenStack Magnum中對容器的邏輯分組稱為Bay。Bay中包含了由OpenStack編排工具Heat創建的一組OpenStack鏡像。Heat能夠在模板中定義云應用需要使用的所有資源,這個集合被稱為棧,這種方式遵循了AWS CloudFormation所定義的規則。
Docker Swarm將主機資源抽象為Docker容器共享的資源池
其他OpenStack Magnum工具在OpenStack Magnum項目中,還有另外兩款十分有用的工具:Kolla和Murano。
Kolla支持在容器當中部署OpenStack。很多情況都需要這樣做,比如為了降低安裝OpenStack的復雜度等。更為常見的情況是為開發人員提供一個能夠完成工作的OpenStack環境。Kolla使用Ansible完成實現這種功能。
Murano幫助管理員對容器鏡像進行分類,之后添加到Horizon dashboard中。除了管理員自己定義的類別之外,還可以使用一些公共類別,比如OpenStack Community App Catalog、 Google Container Repository和Docker Hub/Registry等。這樣做的好處在于能夠極大簡化使用和部署Docker Swarm、Google Kubernetes以及Apache Mesos容器的流程,并且將它們加入到Horizon網頁圖形界面當。