本文仅为个人的学习笔记(速记),不具任何参考意义。
收集自网络片段及官方视频,但用自己理解的话字出来。
Cloud部分
以旁路方式接入k8s master,不影响原有k8s功能。
负责将k8s的操作指令发送到边缘端。
同时,将边缘端的状态、事件同步到k8s中。
注:k8s只知道资源,不知道真正机器在哪里。
EdgeController
边缘节点管理。应用状态数据云边协同。
DeviceController
接入和管理边缘设备。设备数据云边协同。
SyncController
1.2版本引入,看得不明白,待写。
CSI 驱动
同步存储数据到边缘端,为兼容标准的 CSI 做的适配器。
Admission webhook
校验进入kubeedge
Edge部分
管理边缘端的所有操作。
EdgeHub
与CloudHub通过websocket通信,提供可靠的云边信息同步(可理解为唯一的云边通道)。与云端的cloudhub对等。有:同步云端的资源到边缘端,将边缘的状态上报到云端。
MetaManager
元数据本地持久化。configmap、secret等,通过该组件写到本地存储,sqlite(足够轻量)。
离线自治功能?
MetaManager 模块后端对应一个本地的数据库(sqlLite),所有其他模块需要与 cloud 端通信的内容都会被保存到本地 DB 种一份,当需要查询数据时,如果本地 DB 中存在该数据,就会从本地获取,这样就避免了与 cloud 端之间频繁的网络交互;同时,在网络中断的情况下,本地的缓存的数据也能够保障其稳定运行(比如你的智能汽车进入到没有无线信号的隧道中),在通信恢复之后,重新同步数据。是边缘节点自治能力的关键;
Edged
类似kubelet,实现了pod生命周期管理的功能,但又删除了部分功能。实现 Pod,Volume,Node 等 Kubernetes 资源对象的生命周期管理。可接入docker、containerd、cri-o。
DeviceTwin
将设备管理数据(开头、状态)持久化存储,同时同步设备信息到云端。(是设备孪生概念,所以起名为devicetwin)
EventBus
实际为mqtt客户端,为其他组件提供发布和订阅功能
ServiceBus
实际是http客户端。vis类似EventBus,只通信协议不同。
Edgemesh
基于Istio的横跨Cloud和Edge的服务网格解决方案;
EdgeController
管理边缘节点。它是一个扩展的 Kubernetes 控制器,管理边缘节点和 pod 元数据,以便数据可以面向特定的边缘节点
Edgesite
为满足在边缘需要完整集群功能的场景,定制的在边缘搭建既能管理、编排又能运行负载的完整集群解决方案;
mappers
物联网协议实现包。
设备信息管理模块主要通过MQTT协议与接入到边缘端的设备交互。
支持的协议:MQTT、BlueTooth、OPC UA、Modbus。
模块、名称及所属组
1 | Module Name Group |