docker 介紹 (3-2): docker on OpenStack

在OpenStack kilo版本中, 提出了Magnum的支援,
不同於前述的Heat和Nova嘗試在既有的架構下結合docker的方式,
Magnum是一個通用的容器管理解決方案,  支援Kubernetes和Docker,
Magnum為了結合既有的OpenStack支援, 以及docker特有的叢集(Swarm)部屬方式,
而擁有以下的特點[4]:

  • Magnum在任何需要管理容器的地方, 使用其他的OpenStack元件,
    例如: Nova, Heat, Neutron, Glance和Keystone
  • Nova用於創建輕量的虛擬機(micro VM), docker容器在虛擬機中運行
  • Heat用於整體資源調度, 對於docker, Heat則會創建docker Swarm叢集以及Swarm Agent
  • Magnum創建bay-model(叢集模型), bay(叢集)以及容器的創建

上圖是Magnum的架構圖[2],
在圖中, 我們可以看到Magnum利用Heat engine和Nova來調度虛擬機,
而每一個虛擬機中都預設了docker程式安裝,
因此, 在每一個虛擬機中, 又包含了多個容器.

Magnum不牽涉到容器的調度以及容器之間網路的管理,
這一部分的功能, 由docker這一層的叢集自行解決,
但是, Magnum可以透過Magnum API直接地對於docker叢集管理,
當然, 其中牽涉到的容器調度也是由docker完成.

簡而言之, 為了結合OpenStack既有的功能, 以及docker的特殊架構,
Magnum提供一種階層式(或是疊床架屋)的架構,
使用者透過Heat和Nova調節虛擬機的資源,
並透過Magnum API像虛擬機中的docker叢集進行管理,
根據叢集管理的指令, docker將調度容器的資源.

這樣的架構好處在於完全相容於目前的OpenStack架構,
在網路和虛擬機的用戶隔離上, 能夠繼承OpenStack的功能,
然而, 另一方面, 也違背了docker輕, 快的設計目的,
雖說使用輕量虛擬機(micro VM)來增進效率,
然而, 實際的效能仍有待進一步的驗證.

[1] https://wiki.openstack.org/wiki/Docker
[2] https://wiki.openstack.org/wiki/Magnum
[3] https://sreeninet.wordpress.com/2015/06/14/openstack-and-docker-part-1/
[4] https://sreeninet.wordpress.com/2015/06/14/openstack-and-docker-part-2/
[5] http://dockone.io/article/445
[6] http://www.csdn.net/article/2015-11-07/2826146
[7] http://www.techrepublic.com/article/openstack-is-overkill-for-docker/
[8] https://docs.docker.com/machine/drivers/openstack/

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列