走向成熟的KubeEdge边缘网络项目EdgeMesh详解

2023-11-15

本文首发:容器魔方

KubeEdge 社区边缘网络方案致力于研究和解决边缘计算场景下跟网络连通、服务协同、流量治理等相关的一系列问题。其中,EdgeMesh 子项目当前实现了边缘计算场景下应用的跨云边、跨边边的网络通信,目前项目已逐渐从一个创新项目走向成熟,被多家厂商集成到自己的边缘计算解决方案中。本文带大家进一步了解 EdgeMesh 的进展以及未来的规划

▍1 边缘网络通信挑战

下图展示了一个目前比较通用的边云协同视频AI服务的大致架构,通过这个服务我们可以去做一些人脸识别、人流分析等任务,并将这些技术运用在安防、交通、电力等等实际的产业里。如下图所示,边缘会有一些端侧设备接入到EdgeCore中,比如摄像头或车载系统,在某些场景下边缘应用会采集视频流、图片、音频等等媒体资源,再到云上处理或训练,通过这种边云协同的方式来提高AI识别的精度。

e2c97b3e3d41ae56ba257969d6e6b7b4.jpeg

但是在边缘计算场景下,会遇到一些困难和挑战使得没法顺利的完成这些功能。总结如下:

  • 边云、边边网络割裂,微服务之间无法跨子网直接通信

  • 边缘端网络质量不稳定,节点离线、网络抖动是常态

  • 边缘场景下网络组网复杂、配置管理困难

  • 边缘侧缺少服务发现、负载均衡与流量治理等能力

通过上述边缘计算场景网络通信面临的挑战分析,总结归纳后,我们将它们抽象成了一个分层的结构。

701f436cb92b28a0ba66527ac9ed8a79.png

如上图所示,边缘网络通信痛点问题主要分为三个层次:

  • 从物理链路层看

1.边缘网络拓扑构造复杂,网络质量不稳定

2.边云、边边物理网络割裂,多边服务协同困难

  • 从虚拟网络层看

1.传统的虚拟网络技术,比如kube-proxy、cni等,无法解决跨网络数据的转发

2.数据处理链路较长,专线铺设造价昂贵

  • 从物理链路层看

1.边缘网络拓扑构造复杂,网络质量不稳定

2.边云、边边物理网络割裂,多边服务协同困难

▍2 KubeEdge的边缘网络 Scope

依据上面的痛点分析结果,我们归纳出了当前阶段主要关注的几个核心问题的范畴。如下所示,依旧是按照一个分层的结构去抽象问题。

97ce2f28d5c8ac5103d1d3dac919d6f3.png

  • 边缘物理网络层

边缘物理网络层也是使用传统的计算机网络技术搭建的网络基础设施。在边缘场景里,物理网络一般都是基于区域隔离,大到跨省、跨市,小到跨园区。它们之间的网络往往是不互通的,必须经过因特网以及电信运营商的网络才能互通。对于物理网络这个层次,其实很难在这个层面进行改造,主要因为物理网络层几乎都是硬件的基础设施,确实不太好深入去改造,所以我们主要将焦点瞄准在上面几个层次。

  • 边缘隧道网络层

边缘隧道网络层最核心的问题就是如何将下层割裂的物理网络进行连通,以此屏蔽边缘网络拓扑的复杂性。这层核心的能力是提供网络隧道技术、加密技术等,主要的业界实现有libp2p,ipsec等。像EdgeMesh其实就是用到了libp2p技术,尝试去建立每个对等点的连接(无论这些对等点是否处于同一个子网内),以此形成一个p2p的隧道网络。像阿里云开源的raven以及博云开源的fabedge就是用了ipsec技术来完成这件事情。像kilo这款cni插件,用了wireguard技术先实现了隧道网络,再实现了cni的功能。

  • 边缘容器网络层

容器网络主要围绕cni技术展开,前文也提到过边缘场景下cni插件是不支持跨子网转发数据的,因为cni本身依赖三层网络能互通。所以边缘容器网络得依赖边缘隧道网络层的能力才能发挥原本cni容器网络配置、数据包封包和路由以及网络策略的能力。上层依赖下层提供的服务的形式类型于计算机网络协议栈的概念。EdgeMesh目前缺失边缘容器网络层的能力,因此EdgeMesh目前还不支持pod ip级别的数据转发,也还不支持网络策略,不过这块内容在EdgeMesh未来的路标内。

  • 边缘虚拟网络层

能够通过K8s service去访问特定的服务是此层的核心功能,主要负责应用暴露服务的透明代理兼负载均衡器,比较常见的实现有k8s官方的kube-proxy,其他还有cilium等。Cilium的能力覆盖到了容器网络层和虚拟网络层,它使用了ebpf技术能在内核态去转发数据,性能很高,这也是EdgeMesh未来在性能转发方面的一个优化方向。

  • 边缘服务网格层

这一层会提供比容器网络层更加丰富的网络策略管理能力,此外还有很多服务治理功能,比如服务发现、灰度发布、熔断、限流、分布式调用链等等。目前业界实现的istio、linkerd之类的产品,都做的非常强大,EdgeMesh对此层更倾向于集成已有的Service Mesh的成果。

可能有人会疑问的是,除了边缘隧道网络层以外的其他几层现在都有业界成熟的实现,那是不是只需要把边缘隧道网络层做出来,其他上面几层直接部署原生的组件即可?其实这是没问题的,但是可能场景覆盖得不够全面。比如在一些资源特别受限的场景下,边缘计算资源很难集成太多组件(比如kube-proxy、cni插件、coredns等),而且服务网格数据面使用sidecar模式会占用更多的资源。然而edgemesh仅需一个轻量的组件(内存占用<80MB)即可解决一切问题,也会采用节点级的模式代替sidecar模式进行服务治理。

▍3 EdgeMesh:边缘网络通信解决方案

EdgeMesh定位于解决边缘场景下云边、边边网络通信,下图是EdgeMesh的架构。

f4e7771dfbb6033d2dc948b5e035bf36.png

EdgeMesh具有以下几点优势:

  • 跨子网通信

    屏蔽复杂的边缘网络环境,提供容器间的跨子网边边和边云通信能力

  • 高可靠性

    通过NAT穿透技术建立点对点直连,转发效率高;在不支持打洞时通过中继转发流量,保障服务之间的正常通讯

  • 云原生体验

    为 KubeEdge 集群中的容器应用提供与云原生一致的服务发现与流量转发体验

  • 轻量化

    每个节点仅需部署一个极轻的代理组件,采用分层式设计架构,各模块能够与原生组件兼容并支持动态关闭

下图展示了EdgeMesh的基本工作流程:

ecdfed306583e1fb328c1b3780e0f77a.png


4 进展与未来规划

下图展示了我们正在做的以及后续规格中要做的事项,红色边的区域代表目前基本已经完成的模块,后续也会持续的演进和优化。其他蓝色区域表示都是在未来规划内的模块,比如容器网络/网络策略、服务网格、动态路由。动态路由这一块内容,主要是想去探索一下在移动场景下的网络通信的优化。最后是消息系统,目前市面上有很多消息中间件,比如rabbitmq,kafka和redis等,可以为网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统,这在边缘网络通信场景下也是非常有价值的。

b25dd3145fa699e382361e5342f987a2.png

关于 KubeEdge

KubeEdge是业界首个云原生边缘计算框架、云原生计算基金会内部唯一孵化级边缘计算开源项目,社区已完成业界最大规模云原生边云协同高速公路项目(统一管理10万边缘节点/50万边缘应用)、业界首个云原生星地协同卫星、业界首个云原生车云协同汽车、业界首个云原生油田项目,开源业界首个分布式协同AI框架Sedna及业界首个边云协同终身学习范式,并在持续开拓创新中。

KubeEdge网站 :  https://kubeedge.io

GitHub地址 : https://github.com/kubeedge/kubeedge

Slack地址 : https://kubeedge.slack.com

邮件列表 : https://groups.google.com/forum/#!forum/kubeedge

每周社区例会 : https://zoom.us/j/4167237304

Twitter : https://twitter.com/KubeEdge

文档地址 : https://docs.kubeedge.io/en/latest/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

走向成熟的KubeEdge边缘网络项目EdgeMesh详解 的相关文章

随机推荐

  • [Cocos Creator] Cocos Creator 下拉框(Dropdown)组件的实现

    模仿Unity写了一个Dropdown的组件 使用方法可以见工程 链接见底下 https github com ETRick CocosCreator Dropdown tree master Dropdown
  • opencv-python学习教程【持续更新】

    Opencv python学习系列教程 一 图片的读取 代码 实验结果 二 视频的读取 代码 实验结果 三 颜色通道的读取 代码 实验结果 四 图像边界填充 代码 实验结果 五 图像融合 代码 运行效果 六 图像阈值 代码 实验结果 存疑
  • 《Spring cloud Alibaba全解》阅读笔记

    技术 2022 05 Spring cloud Alibaba全解 创建时间 2022 5 22 15 21 更新时间 2023 2 17 8 52 作者 HelloXF 第一章 微服务的介绍 1 1系统架构的演变 1 1 1单体应用架构
  • ospf综合实验v1

    实验题目 搭建拓扑图 部分配置 r3r4r5r6r7之间的mgre r3中心站点的配置 r5的配置 r6r7的配置以此类推 于r5相似 各个区域之间的ospf 解释 为了方便对不规则区域之间的联络 我采用多进程双点双向重发布来实现其中区域1
  • Swift 之 继承、构造过程与析构过程

    Swift 继承 继承我们可以理解为一个类获取了另外一个类的方法和属性 当一个类继承其它类时 继承类叫子类 被继承类叫超类 或父类 在 Swift 中 类可以调用和访问超类的方法 属性和下标脚本 并且可以重写它们 我们也可以为类中继承来的属
  • STC15单片机实战项目 - PCB打样

    PCB打样 一 设计文件链接 1 PADS9 5格式PCB设计文件 gt Project STC15 V1 0 pcb 2 AltiumDesigner格式PCB设计文件 gt Project STC15 V1 0 PcbDoc 二 获取开
  • Vue 实现商品分类、列表、详情、购物车、搜索(vant)

    商品分类Classify
  • MySQL 1130错误原因及解决方案

    相信大家在使用MySQL数据库的过程中肯定都遇到过报错 其中MySQl 1130就是一个我们在远程登陆是经常遇到的错误 本文树懒君就给大家介绍一下MySQL 1130报错的原因以及解决的思路 并给大家三种具体的解决方案供大家参考 错误概述
  • 简单理解DLL文件是什么,如何使用?

    DLL文件是什么 DLL文件是动态链接库的缩写 可以在多种程序中使用 如何编写DLL文件 可以使用C C VB之类的语言编写 其中包含了一个或者多个函数 以供其他程序调用 例如 如何在Python中使用DLL文件 使用ctypes模块 在P
  • 虚幻引擎(UE4)场景漫游交互项目制作

    1 模型导出 3dmax模型准备 导出FBX格式 导入UE4引擎等 2 模型导入UE4 项目创建 导入注意 模型查看 3 场景搭建 创建关卡 模型材质 搭建场景 4 地形制作 创建地形 资源导入 地形制作 5 场景漫游 碰撞 第一人称控制
  • 6. 整合Spring

    6 整合Spring MyBatis Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中 它将允许 MyBatis 参与到 Spring 的事务管理之中 创建映射器 mapper 和 SqlSession 并注入到
  • Oracle RAC原理

    单点数据库VS RAC 单节点数据库 如果实例宕机了 如果一个业务链接在实例上面 那么这个业务就中断了 这个时候系统就不具有可用性了 那么这个时候单节点的可用性是很差的 对于RAC来说 和单实例一样 还是一份数据文件 都是相同的存储上面放着
  • C#连接SQLServer数据库并通过Button实现增删改查

    C 连接SQLServer数据库并通过Button实现增删改查 数据库课程实验 要求写程序实现数据库的增删改查 不限语言类型 前面实验已经使用VC实现了对数据内容的读取 今天想用C 实现 本文主要写了我过程中遇到的几个问题以及我的解决方法
  • 【限时免费】20天拿下华为OD笔试之【BFS】2023B-最长广播响应-200分【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解

    BFS 2023B 最长广播响应 题目描述与示例 题目描述 某通信网络中有N个网络节点 用1到N进行标识 网络中的节点互联互通 且节点之间的消息传递有时延 相连节点的时延均为一个时间单位 现给定网络节点的连接关系link i u v 其中u
  • rippled节点配置文件详解

    文章目录 一 简介 二 配置文件示例 三 配置项说明 server port rpc admin local port peer port ws admin local node size node db ledger history da
  • java的序列化注解Serial、序列化版本号serialVersionUID、eclipse中自动生成serialVersionUID

    说明 例如 jdk源码NTLMException类的定义 其中涉及到了序列化注解Serial和序列化版本号字段serialVersionUID 序列化注解java io Serial 序列化注解java io Serial是在javaSE
  • C++项目 GitHub Actions操作实例

    GitHub Actions 是帮助开发者和管理者实现工作流的一种有效方式 如更改存储库中的代码和事件等 这些事件可以是 push 事件 例如编写新的 C 代码 打开或改变拉取请求 以合并更新的 C 代码 创建新的分支 打开或修复问题 cr
  • 【数据结构】链栈的定义和基本操作

    链栈定义及各类操作 include
  • eNSP-企业三层架构实验

    企业三层架构实验 三层架构 三层架构主要是指将业务应用规划中的表示层 UI 数据访问层 DAL 以及业务逻辑层 BLL 其分层的核心任务是 高内聚低耦合 的实现 在整个软件架构中 分层结构是常见和普通的软件结构框架 同时也具有非常重要的地位
  • 走向成熟的KubeEdge边缘网络项目EdgeMesh详解

    本文首发 容器魔方 KubeEdge 社区边缘网络方案致力于研究和解决边缘计算场景下跟网络连通 服务协同 流量治理等相关的一系列问题 其中 EdgeMesh 子项目当前实现了边缘计算场景下应用的跨云边 跨边边的网络通信 目前项目已逐渐从一个