作者:Mike Calizo(Red Hat)
笔者看好边缘计算,它使“计算和数据存储更接近提高响应时间和节省带宽所需的位置”。移动设备和可穿戴设备的广泛使用,以及在某些地区提供的免费WiFi,创造了大量数据,如果使用得当,可以提供许多优势。
Gartner表示,移动应用程序采用的快速增长需要一个边缘基础设施来使用这些设备的数据。
在定义边缘计算架构时,有一点是不变的:平台必须具有灵活性和可扩展性,以便在其上和核心数据中心部署智能应用程序。
KubeEdge(它向资源受限的环境提供容器编排)是2020年笔者最喜欢的开源项目。这个极其轻量级但完全兼容的Kubernetes发行版是为了在网络边缘的物联网(IoT)设备中运行云原生工作负载而创建的。
收集和使用数据的挑战
如果数据使用不当,拥有丰富的数据源反倒是坏事。这就是边缘计算试图解决的难题。为了能够正确地使用数据,平台必须足够灵活,以处理收集、处理和服务数据所需的需求,并明智地决定数据是可以在边缘处理还是必须在区域或核心数据中心处理。
将数据从边缘位置移动到核心数据中心时面临的挑战包括:网络可靠性、安全、资源限制、自治。
边缘上的Kubernetes平台(如KubeEdge)满足了这些要求,因为它提供了执行数据收集、处理和服务所需的可伸缩性、灵活性和安全性。KubeEdge是开源的、轻量级的、易于部署的、资源需求低的,并且提供你所需要的一切。
KubeEdge架构
KubeEdge于2018年在西雅图举办的KubeCon首次亮相。2019年,它被接受为CNCF沙盒项目,这使其具有更高的知名度,并使其有望成为CNCF认可的成熟项目。
简而言之,KubeEdge有两个主要的组成部分:Cloud和Edge。
Cloud部分是Kubernetes Master组件、EdgeController和edge Cloudhub所在的地方。
CloudHub是Cloud组件中的一个通信接口模块。它充当缓存机制,以确保Cloud部分中的更改被发送到边缘缓存机制(EdgeHub)。
EdgeController管理边缘节点并在边缘节点之间执行协调。
Edge部分是找到边缘节点的位置。最重要的Edge组件包括:
EdgeHub是与Cloud组件通信的接口模块。
Edged负责kubelet的工作,包括管理pod生命周期和节点上的其他相关kubelet工作。
MetaManager确保所有节点级元数据都是持久的。
DeviceTwin负责在Cloud和Edge组件之间同步设备。
EventBus使用消息队列遥测传输(MQTT)处理内部边缘通信。
面向边缘计算的Kubernetes
Kubernetes已经成为在本地和公共云中编排容器化工作负载的黄金标准。这就是为什么笔者认为KubeEdge是使用边缘计算从移动技术产生的数据中获益的完美解决方案。
KubeEdge架构允许在边缘计算层实现自治,从而解决了网络延迟和速度问题。这使你能够管理和编排核心数据中心中的容器,并通过自主边缘计算层管理数百万个移动设备。这是可能的,因为KubeEdge使用消息总线(在Cloud和Edge组件中)和Edge组件的数据存储的组合来允许边缘节点独立。通过缓存,每次握手时数据都与本地数据存储同步。类似的原理也适用于需要持久性的边缘设备。
KubeEdge处理机器对机器(M2M)通信的方式与其他边缘平台解决方案不同。KubeEdge使用EclipseMosquitto,它是Eclipse基金会中流行的开源MQTT代理。Mosquitto支持边缘和主节点之间的WebSocket通信。最重要的是,Mosquitto允许开发人员编写自定义逻辑,并在边缘实现资源受限的设备通信。
对于M2M通信来说,安全性是必须的;它是你信任通过web发送的敏感数据的唯一方法。目前,KubeEdge支持Secure Production Identity Framework for Everyone(SPIFFE),确保:只有可验证的节点才能加入边缘集群;只有可验证的工作负载才能在边缘节点上运行;短期证书与轮换策略一起使用。
KubeEdge 要去哪里?
KubeEdge还处于采用的早期阶段,但由于其灵活的方法使边缘计算通信安全、可靠和自治,而不受网络延迟的影响,它正变得越来越流行。
KubeEdge是一个灵活的、供应商中立的、轻量级的、异构的边缘计算平台。这使得它能够支持诸如数据分析、视频分析、机器学习等用例。因为它是供应商中立的,KubeEdge允许大型云厂商使用它。
这就是KubeEdge是笔者最喜欢的2020年项目的原因。还有更多的事情要做,笔者希望看到更多的社区贡献以推动更广泛的采用。它的未来令人感到兴奋,它将使我们能够使用可用的数据并将其获得更大的利益。
原文链接:https://opensource.com/article/21/1/kubeedge