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