KubeEdge在边缘计算中是个非常实用的利器。
——谐云研发工程师林健
第一期谐云课堂内容分享终于和大家见面啦!
本期课堂由谐云研发工程师林健作为讲师,分享《边缘计算KubeEdge基础框架与实践》,为大家解读KubeEdge的优点、框架等内容,满满技术干货。
什么是Kubernetes?
Kubernetes(K8s)是一款由谷歌开源的容器集群管理系统。它基于容器技术,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能。
什么是KubeEdge?
KubeEdge做的是基于k8s构建,并将容器化的应用编排和设备管理扩展到端上的主机。它由云端和边缘端组成,为网络、应用的部署以及云和边缘之间的元数据同步提供架构支持。 KubeEdge理论上还是k8s的一个插件,它完成了k8s没有完成的事情,就是连接边缘、设备与云 。
KubeEdge的优点
支持边缘节点间的通信 :通过在Edge上运行的业务逻辑,可以在生成数据的本地保护和处理大量数据。这减少了网络带宽需求以及边缘和云之间的消耗。这样可以提高响应速度,降低成本并保护客户的数据隐私。
KubeEdge基础概念
KubeEdge分三个部分,分别是云、边、端。 云负责应用和配置的校验和下发,由k8s组件和CloudCore组成,是整个系统的中枢大脑。边负责运行应用和管理接入的设备,由EdgeCore和数据库SQLite组成,是系统中有一定自治能力的功能节点。端代表设备。 所有Kubernetes的组件和指令,都可以在KubeEdge中执行 。包括kubectl logs、kubectl create等指令,还有deployment、daemonset、statefulset、crd等资源对象,都可以在KubeEdge中使用。
KubeEdge架构
K8s组件
1.K8S API Server:提供k8s各类寺院对象的增删改查及watch等HTTP的REST借口,是整个系统的数据总线和数据中心。
云端组件
1.EdgeController: 管理Edge节点。 一种扩展的Kubernetes控制器,它管理边缘节点和pod元数据,来定义边缘节点。
2.DeviceController: 负责设备管理。一种扩展的Kubernetes控制器,用于管理设备,以便设备元数据/状态数据可以在边缘和云之间同步。
3.CloudHub: 云中的通信接口模块。一个Web套接字服务器,负责监视云端的更改、缓存和向EdgeHub发送消息。
边缘端组件
1.EdgeHub: Edge上负责与云服务交互的Web套接字客户端。 负责与用于边缘计算(如KubeEdge体系结构中的EdgeController)云服务交互的Web套接字客户端,。这包括同步云端资源更新到边缘,以及报告边缘端主机和设备状态对云的更改。
2.MetaManager:是Edged与EdgeHub之间的消息处理器,还负责将原数据存储到轻量级数据库(SQLite)或从中检索元数据。
3.DeviceTwin: 负责存储设备状态,处理设备属性,处理DeviceTwin操作,在边缘设备和边缘节点之间创建成员关系, 将设备状态同步到云以及在边缘和云之间同步DeviceTwin信息。它还为应用程序提供查询接口。
4.ServiceBus:充当用于发送/接收有关HTTP协议消息的接口
5.EventBus: 使用MQTT处理内部边缘通信。MQTT客户端与MQTT服务器(MQTT服务器)交互,为其他组件提供发布和订阅功能。
6.Edged: 管理节点生命周期的边缘节点模块。它可以帮助用户在边缘节点上部署容器化的工作负载或应用程序。
端组件
1.MQTT Broker:实质上EventBus就是一个MQTT Broker,它负责接收publisher的消息,并发送给相应的subscriber。
2.Mapper:设备上报到MQTT broker的一个中间组件,用于接收与转发设备消息。
数据库组件
1.NodeLevel DataStore:主要是SQLite
总结
KubeEdge作为K8s的一个拓展性插件,它依然依赖于K8s本身,不同于K3s,它对边缘端和设备端的支持,是通过对边缘与设备的强适应来完成的,而不是通过裁剪k8s本身。插件化也保证了它极轻量化和极高的性能,组件与组件之间相对的独立保证了解耦与功能的可开关,这些特性都表明它在边缘计算中是个非常实用的利器。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论