硬件群集中運(yùn)行的虛擬機(jī)承載了所有控制服務(wù):OpenStack控制器、OpenContrail控制器(SDN)、Kubernetes主機(jī)、Salt主機(jī)。
OpenStack云
OpenStack項(xiàng)目為數(shù)據(jù)庫(Graphite、Influxdb、openTSDB)、大數(shù)據(jù)處理(Hadoop),以及數(shù)據(jù)可視化(Grafana、LeonardoCMS)所涉及的不同虛擬機(jī)服務(wù)提供了分隔和劃分。這個(gè)云運(yùn)行在KVM hypervisor之上,通過OpenContrail的Neutron插件實(shí)現(xiàn)網(wǎng)絡(luò)連接。
邊緣路由器
OpenContrail會(huì)與數(shù)據(jù)中心邊緣路由器創(chuàng)建iBGP對端,這樣便可以將OpenStack虛擬機(jī)和Kubernetes POD的動(dòng)態(tài)網(wǎng)絡(luò)路由傳播至IoT網(wǎng)關(guān)。該設(shè)備可以MPLSoverGRE或MPLSoverUDP方式創(chuàng)建標(biāo)準(zhǔn)的L3VPN。
遠(yuǎn)程網(wǎng)關(guān)包含下列組件:
Kubernetes Minion
Kubernetes minion負(fù)責(zé)與數(shù)據(jù)中心內(nèi)的Kubernetes主機(jī)通信,并負(fù)責(zé)管理Kubeletand POD。Kubelet使用了Opencontrail插件,借此將Docker容器與vRouter代理連接在一起。
Kubernetes POD
Kubernetes POD是連接到vRouter的一個(gè)或多個(gè)Docker容器。POD可按照標(biāo)簽進(jìn)行分隔,這樣即可啟動(dòng)不同應(yīng)用程序,從不同消息總線以IQRF、藍(lán)牙,或GPIO方式讀取數(shù)據(jù)。
Docker容器
Kubernetes POD中的Docker容器為整個(gè)平臺提供了極大的收益,可在無需特別安裝的情況下支持任何類型的操作系統(tǒng)。例如,IQRF使用了某一版本的簡單Java應(yīng)用程序,可通過容器在幾分鐘內(nèi)交付,并且不會(huì)與網(wǎng)關(guān)本身的操作系統(tǒng)產(chǎn)生不匹配的情況。
應(yīng)用程序視圖
下列架構(gòu)圖詳細(xì)介紹了應(yīng)用程序視圖。從圖中可知,借助OpenContrail覆蓋的幫助,OpenStack云內(nèi)部的虛擬機(jī)可以通過L2或L3私有網(wǎng)絡(luò)聯(lián)系位于任何地理位置的Docker容器。因此應(yīng)用程序開發(fā)者可以使用標(biāo)準(zhǔn)云平臺中用過的同一套工具。他們可以通過HEAT部署虛擬機(jī)應(yīng)用程序控制器,隨后通過簡單的Yaml文件在遠(yuǎn)程網(wǎng)關(guān)上的容器中部署Kubernetes服務(wù)。

以通過環(huán)境傳感器收集數(shù)據(jù)的做法為例:傳感器直接連接至容器,數(shù)據(jù)在Docker容器中處理后發(fā)送至Graphite時(shí)序數(shù)據(jù)庫。因?yàn)槲覀兿M詧D形化方式實(shí)時(shí)呈現(xiàn)數(shù)據(jù),因此使用了另一個(gè)虛擬機(jī),通過Leonardo CMS借助Graphite API讀取數(shù)據(jù),并將其顯示在網(wǎng)站上。據(jù)此我們可以通過同一個(gè)云平臺,按照相同的原則創(chuàng)建不同項(xiàng)目,并使用多種輸入和輸出位置。
結(jié)論
我們希望對這個(gè)IoT平臺的愿景和已經(jīng)部署的原型進(jìn)行一個(gè)簡要的介紹。目前我們正在完成整個(gè)智慧城市解決方案的細(xì)節(jié)設(shè)計(jì)工作。
今年在奧斯丁舉行的OpenStack峰會(huì)和倫敦舉行的KubeCon上對該方案進(jìn)行介紹后,我們收到了來自社區(qū)成員的大量反饋。在IoT平臺的安全性、彈性,以及性能方面,我們的構(gòu)想得到了大家的認(rèn)可,很多技術(shù)合作伙伴希望通過合作對我們的IoT平臺進(jìn)行擴(kuò)展,借此構(gòu)建他們自己的解決方案。我們現(xiàn)在正在著手有關(guān)工業(yè)4.0的構(gòu)想,打算通過開源項(xiàng)目創(chuàng)建第一個(gè)智能工廠。
作者:Jakub Pavlik
閱讀英文原文: OpenStack and Kubernetes join forces for an Internet of Things platform