如何在 Atomic 系統(tǒng)上部署OpenStack
基于docker、kubernetes部署openstack到atomic系統(tǒng)上
openstack的服務(wù)定義,是不是看起來(lái)很簡(jiǎn)潔?
openstack的實(shí)際組件構(gòu)成,是不是看起來(lái)很復(fù)雜?
所有的openstack服務(wù)彼此依賴,帶來(lái)了服務(wù)生命周期管理的復(fù)雜性和低效。
比如openstack的鑒權(quán)服務(wù)keystone,在已有環(huán)境上部署一個(gè)新的keystone是否會(huì)對(duì)其他服務(wù)帶來(lái)兼容性問(wèn)題 是很難判斷的。用現(xiàn)在的工具,也是難以進(jìn)行回退的。 事實(shí)上,并非只有openstack是這樣的,很多基礎(chǔ)設(shè)施平臺(tái)或者應(yīng)用平臺(tái)都有類似的問(wèn)題。
openstack生命周期管理的方式
主要分為兩類:基于包、基于image
基于包
通常使用PXE,并搭配puppet、chef、Ansilbe這樣的配置工具。基于包的方式是低效的,原因如下:
- 操作系統(tǒng)、物理節(jié)點(diǎn)的差異性
- 合布時(shí)服務(wù)間的沖突(ports,文件系統(tǒng)等)
- 安裝速度(大規(guī)模部署時(shí),通過(guò)網(wǎng)絡(luò)下載包安裝)
- 也許有人會(huì)提虛擬機(jī)+包的方式,但是:
- 虛擬機(jī)比較重(內(nèi)存、CPU、磁盤占用。啟動(dòng)速度)
- 虛擬機(jī)缺乏metadata注入手段(或者需要額外的組件和代理完成這個(gè)事情)
基于image
- 解決了安裝速度慢的問(wèn)題,通常會(huì)有倉(cāng)庫(kù)存放image,直接下載到物理硬件上。
- 但是,由于image很大,基于image的方式,增量更新仍然很緩慢。
- 另外,基于iamge的方式并未解決opesntack服務(wù)間的復(fù)雜性問(wèn)題。只是將問(wèn)題提前到構(gòu)建鏡像時(shí)。
除此之外,運(yùn)維人員還會(huì)希望這個(gè)openstack生命周期管理系統(tǒng),能夠跨bare metal、IaaS、甚至PaaS。
Atomic、Docker、Kubernetes帶來(lái)了什么
如果有一個(gè)openstack服務(wù)的生命周期管理方案能帶來(lái)以下優(yōu)點(diǎn):
- 隔離、輕量、便攜、可分離
- 運(yùn)行態(tài)的服務(wù)關(guān)系易于描述
- 易于運(yùn)行、易于更新
- 獨(dú)立于openstack之外管理服務(wù)的生命周期
這正是docker、atomic、kubernetes組合方案所能提供的。
Docker提供了對(duì)linux容器的抽象,并提供了一種鏡像格式。通過(guò)這種鏡像格式,可以方便的分享并提供鏡像間的層次關(guān)系。另外docker還提供了docker倉(cāng)庫(kù)來(lái)分享docker鏡像。 這種方式很重要,因?yàn)殚_(kāi)發(fā)者可以發(fā)布便攜的容器鏡像,維護(hù)人員將之部署在不同的平臺(tái)。
kubernetes是開(kāi)源的容器集群管理平臺(tái)。它使用master/minion結(jié)構(gòu)提供給了容器的調(diào)度能力。開(kāi)發(fā)者可以使用聲明式語(yǔ)法描述容器間關(guān)系,并讓集群管理進(jìn)行調(diào)度。
Atomic項(xiàng)目提供給了一個(gè)安全、穩(wěn)定、高性能的容器運(yùn)行環(huán)境。Atomic包含了kubernetes和docker,并運(yùn)行用戶使用新的軟件更新機(jī)制ostree。
將以上三者結(jié)合起來(lái)的方案就像上圖。openstack開(kāi)發(fā)者使用自己熟悉的環(huán)境進(jìn)行開(kāi)發(fā)(linux/vagrant/libvirt),然后向倉(cāng)庫(kù)提交服務(wù)鏡像。運(yùn)維人員將kubernetes配置導(dǎo)入生命周期管理工具,然后啟動(dòng)pods和services。容器鏡像會(huì)被下載到本地并部署這些 openstack服務(wù)。由于服務(wù)是隔離的,我們可以在單臺(tái)機(jī)器上***化密度地部署openstack服務(wù)。除此之外還有其他優(yōu)點(diǎn),比如回滾、部署、更新的速度等。
博客地址:http://openstack.wiaapp.cn
關(guān)于OpenStack
OpenStack是一個(gè)由NASA(美國(guó)國(guó)家航空航天局)和Rackspace合作研發(fā)并發(fā)起的,是一個(gè)開(kāi)源的云計(jì)算管理平臺(tái)項(xiàng)目,由幾個(gè)主要的組件組合起來(lái)完成具體工作。OpenStack支持幾乎所有類型的云環(huán)境,項(xiàng)目目標(biāo)是提供實(shí)施簡(jiǎn)單、可大規(guī)模擴(kuò)展、豐富、標(biāo)準(zhǔn)統(tǒng)一的云計(jì)算管理平臺(tái)。
OpenStack除了有Rackspace和NASA的大力支持外,還有包括戴爾、Citrix、Cisco、Canonical等重量級(jí)公司的貢獻(xiàn)和支持,致力于簡(jiǎn)化云的部署過(guò)程并為其帶來(lái)良好的可擴(kuò)展性。