边缘计算以及kubeedge概念的通俗解释

1,边缘计算的基本概念

边缘计算,听名字很高大上,那感觉像极了“在宇宙的边缘进行计算”。官方的解释也特别专业:边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。

抛掉各种专业术语不谈,边缘计算的概念其实很好理解。可以拿一只章鱼来举例——它有只手碰到了一个物体,然后将触感送给大脑。大脑对信号进行判断,哦,是食物,然后传回抓取信号,手接到信号,对该物体进行了抓取。

可是啊,章鱼有八只手,每只手都把信号传给大脑做判断发指令,对神经和大脑的负担太重了。于是大脑将一部分计算能力分给手,每只手都具备一定程度的“识别-发令”功能,再遇到疑似食物的物体就可以不经过大脑自行判断。

这就是边缘计算——将计算能力下放到系统的边缘设备上,从而降低中央设备和网络的负担。用一句通俗且专业话的解释就是:赋予二级设备一定程度的计算能力。

那我们生活中的边缘计算有哪些呢?很简单,我们的手机就是。例如我们用手机修图,大部分操作都是依靠手机本地的计算能力实现的,只有小部分(例如某些特别牛逼的变脸特效)是通过云端进行的。

在这里,我们手机就是一个边缘设备,手机进行的计算就是边缘计算。

2,kubeedge的基本概念

那边缘计算是怎么实现的呢?这里就出现了一个全新的框架:kubeedge。

kubeedge,听名字就知道,和kubernetes有关系。kubernetes有什么用呢,是管理计算机集群,用master节点将应用部署到集群的各个节点上。集群节点是节点,边缘节点是也是节点,那么直接将kubernetes应用到边缘计算当中,不是很开心么?

可是在实际的应用过程中,发现kubernetes存在很多缺点。

以一个公司的管理举例。如果说kubernetes管理的是公司的各部门,那在边缘计算领域,管理的就是遍布于世界各地的分公司,更远,更乱,更难。

  • 边缘侧设备没有足够的资源运行一个完整的Kubelet。那什么叫Kubelet呢?在kubernetes集群中,各节点都有一个Kubelet,它主要的作用是获取最新的规范,确保各节点的Pod和容器在规范下运行——可以把它理解为公司下放到各个分公司的监工。而分公司太穷了,养不起这个监工。
  • 某些边缘侧设备是ARM(一种处理器,全称Advanced RISC Machine) 架构的,然而大部分kubernetes不支持ARM架构——某些分公司理念和企业文化不和,人家不鸟你的。
  • 边缘侧网络很不稳定,甚至可能完全不通,而 kubernetes 需要实时通信,无法做到离线自治——就像《亮剑》里说的,总部电台只能联系到师旅一级,下面的部队没有电台。
  • 很多边缘设备都不支持TCP/IP 协议——驻冈比亚分公司,员工根本听不懂总部说的中国话。
  • ……

基于上述原因,kubernetes无法直接用于边缘计算。在这个基础上,继承了他部分躯体以及思想的kubeedge出现了。董事长一拍大腿——公司管理体系全面升级!

  • KubeEdge 保留了 Kubernetes 的管理面,重新开发了节点 agent,大幅度优化让边缘组件资源占用更低很多——保留公司管理层,优化下放到各分公司的监工配置(工资更低)。
  • KubeEdge 可以完美支持 ARM 架构和 x86 架构——公司的企业文化更加包容,允许各分公司百花齐放。
  • KubeEdge 有离线自治功能——我要是有一部无线电台,无肯定跟总部请示一下。可咱不是没有吗?豁出去了,干!
  • KubeEdge 丰富了应用和协议支持,目前已经支持和计划支持的有:MQTT、BlueTooth、OPC UA、Modbus等——不管分公司说的哪国语言,哪怕是鸟语,我们也能完美沟通。
  • KubeEdge 通过底层优化的多路复用消息通道优化了云边的通信的性能——通往各分公司,电话手机网线wifi全都安排上,就不信联系不上。

经过优化,公司对分公司的管理变得更加优质高效了。这就是KubeEdge,一套更加强力的管理体系。

2,kubeedge的架构

kubeedge的架构分为三层。分别是云(Cloud)、边(Edge)、端(Device)。云是控制面,边是边缘节点,而端就是端侧设备。
边缘计算以及kubeedge概念的通俗解释_第1张图片
首先,Cloud直接将K8S的master节点拿来使用了,然后在后面加了一个组件叫CloudCore。CloudCore起了一个承上启下的作用。对上,它拿取K8S的master节点的功能,对下,它控制Edge。可以理解为,原生的master无法直接用于边缘节点的控制,需要CloudCore的“中转”。实现这个中转功能的,就是CloudCore的两个组件:EdgeController和DeviceController。听名字就知道,边控制器,设备控制器。

云端要实现和边端的通信,依赖的组件是CloudHub,由它和边端的EdgeHub交换数据。其实看名字就知道,hub的意思是集线器,属于计算机网络中的物理层设备,作用是把信号从一个端口转发到另一个端口。云端集线器,边端集线器,这通信属性也太明显了。

边端的作用是应用管理和设备管理。MetaManager的意思是“元数据管理器”,负责管理应用,DeviceTwin的意思是“设备孪生”,负责管理设备。设备孪生的意思是,每个设备都有一个相应的json文件,记录了设备的信息。例如设备的型号、名称、使用地点以及服役年限等。就像是设备的一个孪生兄弟一样。

你可能感兴趣的:(云计算,分布式计算,物联网)