边缘云原生的技术探索(3)
2023-06-03 来源:旧番剧
KubeEdge
KubeEdge 是将一个边缘计算节点以 K8s 工作节点的身份接入 K8s 集群中,主要适用于数量多、资源少,功能单一的物联网终端设备。
KubeEdge 架构主要分为云、边两部分:
云侧:KubeEdge 的控制面,云上左边是一个 K8s 的 apiserver,是原生的 K8s 控制面板,后边是 KubeEdge 的云侧组件 CloudCore,CloudCore 中的 Controllers 主要负责通过 CloudHub 建立起来的网络通道同步 Node、Pod、ConfigMap、设备等资源的状态和事件。
边缘侧:就是边缘节点,主要做了一个应用管理和设备管理的能力,在架构图边缘侧左边有一个 Edged,主要用于容器管理。右边有 DeviceTwin、EventBus, 负责设备管理,最左边有个 DataStore,DataStore 会缓存当前节点和云侧 apiserver 交互的数据,保证云边网络断开或者边缘节点重启了以后,Edged 可以从 DataStore 中恢复业务状态。
当然,KubeEdge 并不是一个完美的解决方案,仍有需要优化的地方:
侵入式的设计,导致需要和每个 K8s 版本适配。
K8s 元数据和设备同步使用了同一条 websocket 通道,当有大量设备数据时可能会对元数据同步造成延迟。
边缘节点协同能力不足,临近的边缘节点无法对外提供统一的服务。
OpenYurt
OpenYurt 是将部分原生 K8s 节点标记为自治节点以接入 OpenYurt 管理。OpenYurt 架构也分为云和边两部分。