前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谐云课堂 | 边缘计算KubeEdge基础框架与实践

谐云课堂 | 边缘计算KubeEdge基础框架与实践

原创
作者头像
谐云
发布2022-03-18 10:26:23
7870
发布2022-03-18 10:26:23
举报

KubeEdge在边缘计算中是个非常实用的利器。

——谐云研发工程师林健

第一期谐云课堂内容分享终于和大家见面啦!

本期课堂由谐云研发工程师林健作为讲师,分享《边缘计算KubeEdge基础框架与实践》,为大家解读KubeEdge的优点、框架等内容,满满技术干货。

什么是Kubernetes?

Kubernetes(K8s)是一款由谷歌开源的容器集群管理系统。它基于容器技术,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能。

什么是KubeEdge?

KubeEdge做的是基于k8s构建,并将容器化的应用编排和设备管理扩展到端上的主机。它由云端和边缘端组成,为网络、应用的部署以及云和边缘之间的元数据同步提供架构支持。KubeEdge理论上还是k8s的一个插件,它完成了k8s没有完成的事情,就是连接边缘、设备与云

KubeEdge的优点

1.离线模式:k8s在云端与node节点断连时,node节点恢复后就需要重新list-watch,但是在KubeEdge中,每个节点的Metadata被持久化,重启时不需要重新list-watch。2.基于k8s: 借助KubeEdge,用户可以在Edge节点上编排应用,管理设备并监视应用和设备状态,就像云中的传统Kubernetes集群一样 大量的应用: 可以轻松地将现有的复杂机器学习,图像识别,事件处理和其他高级应用程序部署和部署到Edge。3.可扩展:各个模块较为独立且轻量,我们可以通过更改或增减模块的办法,来扩展KubeEdge。4.资源优化:边缘端的资源较少,而KubeEdge可以将一些不必要的模块关闭,减少资源的消耗,优化在边缘节点上资源的利用。5.跨平台:兼容性极强,它不需要区分自己在什么云中,无论是私有云、公有云还是混合云,它都可以完美运行。6.多架构:无论是x86还是arm架构,都可以运行KubeEdge。7.开发简单:在添加设备和应用部署的方法上,KubeEdge还支持SDK,这样大大缩减了开发的流程。开发人员可以编写基于常规http或mqtt的应用程序,对其进行容器化,然后在Edge或Cloud中的任何位置运行它们中的更合适的一个。8.易于维护:k8s所具有的升级、回滚、监控、警报等功能,KubeEdge也都拥有。这样更有利于维护方便。

9.支持边缘节点间的通信:通过在Edge上运行的业务逻辑,可以在生成数据的本地保护和处理大量数据。这减少了网络带宽需求以及边缘和云之间的消耗。这样可以提高响应速度,降低成本并保护客户的数据隐私。

KubeEdge基础概念

KubeEdge分三个部分,分别是云、边、端。云负责应用和配置的校验和下发,由k8s组件和CloudCore组成,是整个系统的中枢大脑。边负责运行应用和管理接入的设备,由EdgeCore和数据库SQLite组成,是系统中有一定自治能力的功能节点。端代表设备。所有Kubernetes的组件和指令,都可以在KubeEdge中执行。包括kubectl logs、kubectl create等指令,还有deployment、daemonset、statefulset、crd等资源对象,都可以在KubeEdge中使用。

KubeEdge架构

K8s组件

1.K8S API Server:提供k8s各类寺院对象的增删改查及watch等HTTP的REST借口,是整个系统的数据总线和数据中心。

云端组件

1.EdgeController: 管理Edge节点。 一种扩展的Kubernetes控制器,它管理边缘节点和pod元数据,来定义边缘节点。

2.DeviceController: 负责设备管理。一种扩展的Kubernetes控制器,用于管理设备,以便设备元数据/状态数据可以在边缘和云之间同步。

3.CloudHub: 云中的通信接口模块。一个Web套接字服务器,负责监视云端的更改、缓存和向EdgeHub发送消息。

边缘端组件

1.EdgeHub: Edge上负责与云服务交互的Web套接字客户端。 负责与用于边缘计算(如KubeEdge体系结构中的EdgeController)云服务交互的Web套接字客户端,。这包括同步云端资源更新到边缘,以及报告边缘端主机和设备状态对云的更改。

2.MetaManager:是Edged与EdgeHub之间的消息处理器,还负责将原数据存储到轻量级数据库(SQLite)或从中检索元数据。

3.DeviceTwin: 负责存储设备状态,处理设备属性,处理DeviceTwin操作,在边缘设备和边缘节点之间创建成员关系, 将设备状态同步到云以及在边缘和云之间同步DeviceTwin信息。它还为应用程序提供查询接口。

4.ServiceBus:充当用于发送/接收有关HTTP协议消息的接口

5.EventBus: 使用MQTT处理内部边缘通信。MQTT客户端与MQTT服务器(MQTT服务器)交互,为其他组件提供发布和订阅功能。

6.Edged: 管理节点生命周期的边缘节点模块。它可以帮助用户在边缘节点上部署容器化的工作负载或应用程序。

端组件

1.MQTT Broker:实质上EventBus就是一个MQTT Broker,它负责接收publisher的消息,并发送给相应的subscriber。

2.Mapper:设备上报到MQTT broker的一个中间组件,用于接收与转发设备消息。

数据库组件

1.NodeLevel DataStore:主要是SQLite

总结

KubeEdge作为K8s的一个拓展性插件,它依然依赖于K8s本身,不同于K3s,它对边缘端和设备端的支持,是通过对边缘与设备的强适应来完成的,而不是通过裁剪k8s本身。插件化也保证了它极轻量化和极高的性能,组件与组件之间相对的独立保证了解耦与功能的可开关,这些特性都表明它在边缘计算中是个非常实用的利器。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档