其他
多图详解边缘计算系统的组成及概念
组成部分:边缘计算系统由云、边、端三部分组成,每部分的解决方案不止一种。本文的云组成部分选择Kubernetes,边组成部分选择KubeEdge,端组成部分选择EdgeX Foundry。 概念解析:对组成边缘计算系统的云、边、端三部分涉及的相关概念进行说明。
Kube-apiserver:Kubernetes内部组件相互通信的消息总线,对外暴露集群API资源的唯一出口 Kube-controller:保证集群内部资源的现实状态与期望状态保持一致 Kube-scheduler:将需要调度的负载与可用资源最佳匹配 Kube-proxy:为节点内的负载访问和节点间的负载访问做代理 Kubelet:根据Kube-scheduler的调度结果,操作相应负载
Etcd:存储集群的元数据和状态数据 Flannel 集群的跨主机负载网络通信的解决方案 需要对原来的数据包进行额外的封装、解封装,性能损耗较大 Calico 集群的跨主机负载网络通信的解决方案 纯三层网络解决方案,不需要额外的封装、解封装,性能损耗较小 CoreDNS:负责集群中负载的域名解析
Docker:目前默认的容器运行时 Containerd:比Docker轻量,稳定性与Docker相当的容器运行时 Cri-o 轻量级容器运行时 目前稳定性没有保证 Frakti 基于Hypervisor的容器运行时 目前稳定性没有保证
云部分 | CloudCore 负责将云部分的事件和指令下发到边缘端,同时接收边缘端上报的状态信息和事件信息
边缘部分 | EdgeCore 接收云部分下发的事件和指令,并执行相关指令,同时将边缘的状态信息和事件信息上报到云部分
容器运行时 | Docker 目前,KubeEdge默认支持Docker 官方表示未来会支持Containerd、Cri-o等容器运行时
Device-modbus-go:Go实现对接使用Modbus协议设备的服务 Device-camera-go:Go实现对接摄像头设备的服务 Device-snmp-go:Go实现对接SNMP服务 Device-mqtt-go:Go实现对接使用MQTT协议设备的服务 Device-sdk-go Go实现对接其他设备的SDK SDK给设备接入提供了较大的灵活性
Core-command:负责向南向设备发送命令 Core-metadata:负责设备自身能力描述,提供配置新设备,并将它们与其拥有的设备服务配对的功能 Core-data:负责采集南向设备层数据,并向北向服务提供数据服务 Registry & Config:负责服务注册与发现,为其他EdgeX Foundry微服务提供关于EdgeX Foundry的相关服务的信息,包括微服务配置属性
Support-logging:负责日志记录 Support-notification:负责事件通知 Support-scheduler:负责数据调度
Export-client:导出数据的客户端 Export-distro:导出数据的应用
System-mgmt-agent:提供启动、停止所有微服务的API Sys-mgmt-executor:负责启动、停止所有微服务的最终执行
云:涉及的概念包括Container、Pod、ReplicaSet、Service、Deployment、DaemonSet、Job、Volume、ConfigMap、NameSpace、Ingress等。 边:目前边缘系统的实现方式是通过对云原有的组件进行裁剪并下沉到边缘,所以边涉及的概念是云的子集,而且与云保持一致。 端:部署在边上的一套微服务,目前没有引入新的概念。
本文摘编自《深入理解边缘计算:云、边、端工作原理与源码分析》,经出版方授权发布。
转载请联系微信:DoctorData
推荐语:这是一本从环境搭建、部署配置、系统架构、工作原理、源码分析、二次开发等维度系统讲解如何打造协同的云、边、端系统的著作。
更多精彩👇
在公众号对话框输入以下关键词查看更多优质内容!
读书 | 书单 | 干货 | 讲明白 | 神操作 | 手把手大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化AI | 人工智能 | 机器学习 | 深度学习 | NLP5G | 中台 | 用户画像 | 数学 | 算法 | 数字孪生
据统计,99%的大咖都关注了这个公众号👇