KubeSphere 系列
2023-03-06 14:27:15 11 举报
EdgeMesh
作者其他创作
大纲/内容
优势有哪些:1 Kubernetes 原生支持:使用 KubeEdge 用户可以在边缘节点上编排应用、管理设备并监控应用程序/设备状态,就如同在云端操作 Kubernetes 集群一样。2 云边可靠协作:在不稳定的云边网络上,可以保证消息传递的可靠性,不会丢失。3 边缘自治:当云边之间的网络不稳定或者边缘端离线或重启时,确保边缘节点可以自主运行,同时确保边缘端的应用正常运行。4 边缘设备管理:通过 Kubernetes 的原生API,并由CRD来管理边缘设备。极致轻量的边缘代理:在资源有限的边缘端上运行的非常轻量级的边缘代理(EdgeCore)。
./kk create custer --with-kubernetes v1.21.5 --with-kubesphere v3.2.1
简单的云边协同
网络通信问题
./kk create cluster [--with-kubernetes version] [--with-kubesphere version]
KubeSphere
EdgeMesh 是一个用于边缘计算环境的服务网格。它旨在简化在边缘设备上部署和管理服务的过程,并提供一些工具和功能来帮助用户更好地监控、管理和保护其服务。EdgeMesh 的主要功能包括:服务发现:EdgeMesh 提供了一种基于 DNS 的服务发现机制,使得在边缘设备上的服务可以通过它们的服务名来进行访问。流量管理:EdgeMesh 可以通过流量路由和负载均衡功能来控制流量的流向,从而实现边缘设备之间的高效通信。安全:EdgeMesh 提供了服务间认证和加密功能,以保护边缘设备之间的通信安全。此外,它还支持策略管理和访问控制,以确保服务只能被授权的实体访问。部署和管理:EdgeMesh 提供了一些工具和组件,帮助用户轻松部署和管理边缘设备上的服务。其中包括设备管理、自动化部署、远程配置和监控等功能。总之,EdgeMesh 旨在简化在边缘计算环境中部署和管理服务的过程,并提供一些工具和功能来帮助用户更好地监控、管理和保护其服务。
KubeEdge基本框架
KubeEdge 是非常流行的边缘计算平台,但是缺少开源容器管理平台在云端控制层面的的支持,此外需要经过较复杂和繁琐的配置才能实现边缘节点纳管及和可观测,KubeSphere 在与 KubeEdge 集成的过程中,着重解决了上述问题,使得 KubeEdge 纳管边缘节点更加方便,并自动实现边缘节点及工作负载的可观测。
边侧主要是EdgeCore组件,包含Edged、MetaManager、EdgeHub等模块,通过接收云端的消息,负责容器的生命周期管理。
EdgeMesh 包含两个微服务:edgemesh-server 和 edgemesh-agent。EdgeMesh-Server:EdgeMesh-Server运行在云上节点,具有一个公网IP,监听来自EdgeMesh-Agent的连接请求,并协助EdgeMesh-Agent之间完成UDP打洞,建立P2P连接;在EdgeMesh-Agent之间打洞失败的情况下,负责中继EdgeMesh-Agent之间的流量,保证100%的流量中转成功率。EdgeMesh-Agent:EdgeMesh-Agent的DNS模块,是内置的轻量级DNS Server,完成Service域名到ClusterIP的转换。EdgeMesh-Agent的Proxy模块,负责集群的Service服务发现与ClusterIP的流量劫持。EdgeMesh-Agent的Tunnel模块,在启动时,会建立与EdgeMesh-Server的长连接,在两个边缘节点上的应用需要通信时,会通过EdgeMesh-Server进行UDP打洞,尝试建立P2P连接,一旦连接建立成功,后续两个边缘节点上的流量不需要经过EdgeMesh-Server的中转,进而降低网络时延。
参考网站
EdgeMesh
KubeEdge 社区边缘网络方案致力于研究和解决边缘计算场景下跟网络连通、服务协同、流量治理等相关的一系列问题。其中,
KubeSphere 2.1_12-使用 Ingress-Nginx 进行灰度发布可绘制的流水线
集成到
边缘节点定义
没有官方文档:https://kubeedge.io/zh/docs/advanced/edgemesh/
Kubekey 是用 Go 语言开发的一款全新的安装工具,代替了以前基于 ansible 的安装程序。Kubekey 为用户提供了灵活的安装选择,可以分别安装 KubeSphere和 Kubernetes或二者同时安装,既方便又高效。
子模块
云上部分1 CloudHub: CloudHub 是一个 Web Socket 服务端,负责监听云端的变化,缓存并发送消息到 EdgeHub。2 EdgeController: EdgeController 是一个扩展的 Kubernetes 控制器,管理边缘节点和 Pods 的元数据确保数据能够传递到指定的边缘节点。3 DeviceController: DeviceController 是一个扩展的 Kubernetes 控制器,管理边缘设备,确保设备信息、设备状态的云边同步。边缘部分1 EdgeHub: EdgeHub 是一个 Web Socket 客户端,负责与边缘计算的云服务(例如 KubeEdge 架构图中的 Edge Controller)交互,包括同步云端资源更新、报告边缘主机和设备状态变化到云端等功能。2 Edged: Edged 是运行在边缘节点的代理,用于管理容器化的应用程序。3 EventBus: EventBus 是一个与 MQTT 服务器 (mosquitto) 交互的 MQTT 客户端,为其他组件提供订阅和发布功能。4 ServiceBus: ServiceBus 是一个运行在边缘的 HTTP 客户端,接受来自云上服务的请求,与运行在边缘端的 HTTP 服务器交互,提供了云上服务通过 HTTP 协议访问边缘端 HTTP 服务器的能力。5 DeviceTwin: DeviceTwin 负责存储设备状态并将设备状态同步到云,它还为应用程序提供查询接口。6 MetaManager: MetaManager 是消息处理器,位于 Edged 和 Edgehub 之间,它负责向轻量级数据库 (SQLite) 存储/检索元数据。
EdgeMesh的定位
https://www.cnblogs.com/wubolive/p/16473292.html
EdgeMesh的定位是KubeEdge用户数据面轻量化的通讯组件,完成节点之间网络的Mesh,在边缘复杂网络拓扑上的节点之间建立P2P通道,并在此通道上完成边缘集群中流量的管理和转发,最终为用户KubeEdge集群中的容器应用提供与Kubernetes Service一致的服务发现与流量转发体验。
EdgeMesh 子项目当前实现了边缘计算场景下应用的跨云边、跨边边的网络通信
cur1 -sfl https://get-kk.kubesphere.io VERSION=v2.0.0 sh -
官方架构
EdgeMesh 在KubeEdge中的使用链路
边缘节点是对边缘网关、边缘控制器、边缘服务器等边缘侧多种产品形态的基础共性能力的逻辑抽象。
EdgeCore是kubeedge运行在边缘节点的组件,与云端组件CloudCore通信并处理边缘节点的一切事宜,相当于地方管理者
定位块
KubeSphere + KubeEdge:打造云原生边缘计算服务
端侧主要是device mapper和eventBus,负责端侧设备的接入。
EdgeMesh 基本架构图
上图中的CloudCore 部分的EdgeMesh-Agent 实际是EdgeMesh-Server
云上是统一的控制面,包含原生的Kubernetes管理组件,以及KubeEdge自研的CloudCore组件,负责监听云端资源的变化,提供可靠和高效的云边消息同步。
优点
EdgeCore
KubeEdge
收藏
收藏
0 条评论
下一页