OpenStack合力Kubernetes打造IoT平台,提供智能城市解决方案

  硬件群集中运行的虚拟机承载了所有控制服务:OpenStack控制器、OpenContrail控制器(SDN)、Kubernetes主机、Salt主机。

  OpenStack云

  OpenStack项目为数据库(Graphite、Influxdb、openTSDB)、大数据处理(Hadoop),以及数据可视化(Grafana、LeonardoCMS)所涉及的不同虚拟机服务提供了分隔和划分。这个云运行在KVM hypervisor之上,通过OpenContrail的Neutron插件实现网络连接。

  边缘路由器

  OpenContrail会与数据中心边缘路由器创建iBGP对端,这样便可以将OpenStack虚拟机和Kubernetes POD的动态网络路由传播至IoT网关。该设备可以MPLSoverGRE或MPLSoverUDP方式创建标准的L3VPN。

  远程网关包含下列组件:

  Kubernetes Minion

  Kubernetes minion负责与数据中心内的Kubernetes主机通信,并负责管理Kubeletand POD。Kubelet使用了Opencontrail插件,借此将Docker容器与vRouter代理连接在一起。

  Kubernetes POD

  Kubernetes POD是连接到vRouter的一个或多个Docker容器。POD可按照标签进行分隔,这样即可启动不同应用程序,从不同消息总线以IQRF、蓝牙,或GPIO方式读取数据。

  Docker容器

  Kubernetes POD中的Docker容器为整个平台提供了极大的收益,可在无需特别安装的情况下支持任何类型的操作系统。例如,IQRF使用了某一版本的简单Java应用程序,可通过容器在几分钟内交付,并且不会与网关本身的操作系统产生不匹配的情况。

  应用程序视图

  下列架构图详细介绍了应用程序视图。从图中可知,借助OpenContrail覆盖的帮助,OpenStack云内部的虚拟机可以通过L2或L3私有网络联系位于任何地理位置的Docker容器。因此应用程序开发者可以使用标准云平台中用过的同一套工具。他们可以通过HEAT部署虚拟机应用程序控制器,随后通过简单的Yaml文件在远程网关上的容器中部署Kubernetes服务。

物联网

  以通过环境传感器收集数据的做法为例:传感器直接连接至容器,数据在Docker容器中处理后发送至Graphite时序数据库。因为我们希望以图形化方式实时呈现数据,因此使用了另一个虚拟机,通过Leonardo CMS借助Graphite API读取数据,并将其显示在网站上。据此我们可以通过同一个云平台,按照相同的原则创建不同项目,并使用多种输入和输出位置。

  结论

  我们希望对这个IoT平台的愿景和已经部署的原型进行一个简要的介绍。目前我们正在完成整个智慧城市解决方案的细节设计工作。

  今年在奥斯丁举行的OpenStack峰会和伦敦举行的KubeCon上对该方案进行介绍后,我们收到了来自社区成员的大量反馈。在IoT平台的安全性、弹性,以及性能方面,我们的构想得到了大家的认可,很多技术合作伙伴希望通过合作对我们的IoT平台进行扩展,借此构建他们自己的解决方案。我们现在正在着手有关工业4.0的构想,打算通过开源项目创建第一个智能工厂。

  作者:Jakub Pavlik

 

  阅读英文原文: OpenStack and Kubernetes join forces for an Internet of Things platform