KubeEdge开源背景

KubeEdge在18年11月24日的上海KubeCon上宣布开源,技术圈曾掀起一阵讨论边缘计算的风潮,从此翻开了边缘计算和云计算联动的新篇章。

KubeEdge即Kube+Edge,顾名思义就是依托K8S的容器编排和调度能力,实现云边协同、计算下沉、海量设备的平滑接入。KubeEdge架构上包含两部分,分别是云端和边缘侧。云端负责应用和配置的下发,边缘侧则负责运行边缘应用和管理接入

此前,关于用K8S在边缘侧部署应用还一直停留在实验阶段,KubeEdge脱胎于华为云IEF服务,是第一个具备在生产环境部署能

力的边缘计算领域开源项目。前几天K8S IOT/Edge工作组发布了关于边缘计算的白皮书,并将KubeEdge作为K8S在IOT/Edge场景下的参考架构。

注:白皮书的内容“容器魔方”公众号会深入解读,敬请期待!

KubeEdge开源后国内外也出现了一些开源的边缘计算平台和基金会。但是当你仔细研究这些项目时会发现,LF Edge糅合了5个项目有点像是大杂烩,OpenEdge强绑定厂商中立性有待商榷,而k3s为了在边缘部署完整集群而魔改了K8S,他们似乎都称不上完整的从云到边缘再到设备的开源解决方案。TheNewStack在撰文对比过这些开源的边缘计算项目时如是写道:

It would appear openEdge is integrated with Baidu’s IoT cloud platform so it is not clear how independent is the technology.

与其他开源或半开的项目不同,不论是社区生态建设、项目运作或是代码开发,KubeEdge诞生之初就把开放性放在首位。那么, KubeEdge的开放性到底表现在哪里呢?这次的重大版本更新将会给整个边缘计算产业造成什么深远的影响呢?

v0.1- ALL in K8S,极致优化

容器天然的轻量化和可移植性,非常适合边缘计算的场景,这一点边缘计算的厂家和开发者们都心知肚明。而且鉴于K8S已经成为云原生编排的事实标准,因此携手K8S进入边缘将很有可能结束边缘计算当前混沌的状态,并定义云端和边缘统一的应用部署和管理的标准。

然而,由于边缘场景通信的不稳定性和严苛的资源消耗限制,导致原生的K8S组件无法直接运行在边缘节点上,例如:工业网关等。而受限于K8S本身list/watch机制带来的disconnect问题,数据面和管理面断连后,无法做到本地自治。

KubeEdge选择的是“轻边缘”架构,即边缘侧的容器引擎和设备管理agent尽量轻量化,管理面运行在云端,且构建在K8S的调度能力之上,100%兼容K8S原生API。KubeEdge all in K8S的设计理念使得用户可以围绕K8S的标准API定制需求或者轻松集成云原生生态中的成熟项目。

值得一提的是,KubeEdge项目的核心成员均来自于K8S/CNCF社区的maintainer和TOP contributor,他们对K8S的设计和理念和实现机制了然于心,自然也清楚K8S在边缘计算领域需要解决的问题。为了使KubeEdge可以运行在几乎所有的边缘场景(例如:工业制造、智慧园区、智能驾驶等),权衡K8S的资源占用和原生能力支持,KubeEdge选择在对接K8S API的基础上,全部重写边缘部分实现。当前,KubeEdge边缘组件的磁盘占用约为60MB,运行时内存占用小于30MB

KubeEdge开源的v0.1版本包含:edged,edgehub,eventbus,devicetwin和metamanager这五个边缘侧的组件,架构如下图所示:

其中:

  • edged是重新开发的轻量化Kubelet,实现Pod,Volume,Node等K8S资源对象的生命周期管理;

  • metamanager负责本地元数据的持久化,是边缘节点自治能力的关键;

  • edgehub提供可靠的云边信息同步,解决了K8S list/watch带来的disconnect问题;

  • devicetwin用于同步信息到云端;

  • eventbus订阅来自于MQTT Broker的设备数据;

不难发现,v0.1版本的KubeEdge最大的意义在于填平了K8S与边缘计算的鸿沟。它提供的无缝衔接K8S生态、数据本地化处理、边缘节点离线自治、简化应用在边缘侧部署、多场景支持等功能,为云原生的边缘计算架构提供了范例。

v0.2 - 生态建设的里程碑

如果说KubeEdge的 v0.1 版本只是抛砖引玉,那么 v0.2 版本将是发力生态建设的一个重要里程碑。由于其开放的设计,KubeEdge一经开源便引起了众多社区开发者和厂商的关注。

尽管v0.1版本可以通过与华为云IEF服务尝鲜云边协同的能力,但为了让海外更多的用户能够完整体验KubeEdge以及进一步消除用户对厂商绑定的顾虑,KubeEdge团队决定提前开放云端代码,即在最新的v0.2版本中发布。从KubeEdge v0.1到v0.2,虽然只是小数点后的一小步,却是边缘计算发展的一个里程碑。KubeEdge v0.1和v0.2的发布分别创造了两个记录:

  1. 全球首个开源的支持容器部署的边缘计算平台;

  2. 全球首个开放云边协同能力的边缘计算平台;

KubeEdge v0.2 的发布意味着任何人都可以在自己的环境中部署一个完整的涵盖云、边、设备的边缘计算解决方案。本次更新在 v0.1 的基础上新增了云上两个重要组件,分别是:CloudHub和EdgeController,架构如下所示:

其中:

  • Cloudhub负责接收EdgeHub同步到云端的信息;

  • EdgeController用于控制K8S API Server与边缘的节点、应用和配置的状态同步;

用户可以直接通过kubectl命令行在云端管理边缘节点、设备和应用,使用习惯与K8S原生的完全一致,无需重新适应。

Roadmap

在赋予了KubeEdge完全开放的云边协同能力后,接下来我们将与云原生社区和边缘计算生态玩家一道,从以下几个方面逐步完善 KubeEdge 项目,共建自主可控的边缘计算开源社区!

  • 通过CRD描述设备的编排信息,并实现相应的控制器;

  • 对外暴露边缘服务;

  • 支持边缘节点之间的直接通信;

  • 增强边缘节点的安全;

  • 优化云边消息通道的效率;

  • 提供通用的边缘数据管理/分析框架;

  • 支持边缘serverless;

  • 提供多设备协议接入的框架;

  • ……

彩蛋

KubeEdge项目当前在Github上开源,项目地址:https://github.com/kubeedge/kubeedge

作为国内发起的首个边缘计算开源项目,欢迎star和PR,合入任意一个PR便赠送《云原生分布式存储基石:etcd深入解析》一本:)

相关服务请访问: https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码的更多相关文章

  1. 重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

    作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Op ...

  2. 联发科发布全球首款搭载Android TV的智能电视系统芯片MT5595

    联发科发布全球首款搭载Android TV的智能电视系统芯片MT5595 admin 资讯 01-07 1 1月7日消息,联发科宣布与Google共同开发出全世界第一个搭载Android TV操作系统 ...

  3. 开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

    Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长.但同时我们也关注到,Kubernetes 的核心 API 资源比如 ...

  4. 致远·面向人工智能-逐浪CMS v8.1.2全面发布[全球首个基于dotNET core3.0的中文CMS]

    原文:https://www.z01.com/down/3484.shtml 再远, 我都不会停息, 因为技术而生, 因为技术而强, 这是逐浪软件的命与根! 全新打造, 三百多项超级功能, 助你十分钟 ...

  5. 厉害了,摩托罗拉发布全球首款支持VR和AR的手机MotoZ

    目前支持谷歌daydream移动VR生态系统的手机型号并不多,除了谷歌自家的Pixel系列外,还有华为推出的mate9系列.如今又到了一位新成员,即升级到Android 7.0后的Moto Z. 更为 ...

  6. 阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink

    11月28日,Flink Forward Asia 2019 在北京国家会议中心召开,阿里在会上发布Flink 1.10版本功能前瞻,同时宣布基于Flink的机器学习算法平台Alink正式开源,这也是 ...

  7. 北美KubeCon新风,正把K8S魔力带向边缘计算

    作者:DJ 审校:Kevin·Wang 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕.这次北美KubeCon总共吸引了8000多观众参会,创下历 ...

  8. KubeEdge,一个Kubernetes原生边缘计算框架

    ​KubeEdge成为第一个Kubernetes原生边缘计算平台,Edge和云组件现已开源! 开源边缘计算正在经历其业界最具活力的发展阶段.如此多的开源平台,如此多的整合以及如此多的标准化举措!这显示 ...

  9. KubeEdge SIG AI发布首个分布式协同AI Benchmark调研

    摘要:AI Benchmark旨在衡量AI模型的性能和效能. 本文分享自华为云社区<KubeEdge SIG AI发布首个分布式协同AI Benchmark调研>,作者:KubeEdge ...

随机推荐

  1. Python之汉诺塔递归运算

    汉诺塔问题是一个经典的问题.汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆 ...

  2. EasyNetQ使用(六)【多态发布和订阅,消息版本控制】

    你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...

  3. Linear regression with one variable - Cost function

    摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第二章<单变量线性回归>中第7课时<代价函数>的视频原文字幕.为本人在视频学习过程中逐字逐句记录下 ...

  4. thinkPHP 类库映射 类库导入

    遵循我们上面的命名空间定义规范的话,基本上可以完成类库的自动加载了,但是如果定义了较多的命名空间的话,效率会有所下降,所以,我们可以给常用的类库定义类库映射.命名类库映射相当于给类文件定义了一个别名, ...

  5. python微信服务号关注授权、消息推送流程

    阅读目录 推送的方式: 微信推送的流程: 流程分析: 给用户推送消息功能 推送的方式: 短信推送(第三方) 邮件推送 微信推送 公众号:认证的公众号(个人的认证公众号每天只能发一篇文章),粉丝可以跟公 ...

  6. linux系统中RAID10磁盘冗余阵列配置

    介绍:RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高,RAID10用两个磁盘做RAID0,用其他两个做RAID1当备份. 配置流程: 第一步:在原有基础上为磁盘再填入五块磁盘(至少 ...

  7. vue 强制刷新组件重新渲染

    实现功能:使用富文本编辑器编写文章,然后把编写成功的文章用子组件显示. 问题描述:父组件给子组件传递数据,子组件第一次调用数据的时候页面渲染是正常的,当数据变化的时候,子组件的页面渲染就失效了. 问题 ...

  8. LeetCode. 3的幂

    题目要求: 给定一个整数,写一个函数来判断它是否是 3 的幂次方. 示例: 输入: 27 输出: true 代码: class Solution { public: bool isPowerOfThr ...

  9. ubuntu系统里常用的几个命令

    ### ubuntu系统里常用的几个命令 卸载软件: sudo apt-get --purge remove easy-rsa //最后是包名, --purge是可选参数,加上的话移除配置文件 删除文 ...

  10. redis mongodb持久化的方式

    目录 redis持久化方式(两种) RDB持久化 AOF持久化 两种持续化方式需要明确的问题 对比 MongoDB持久化方式 redis持久化方式(两种) RDB持久化 redis提供了RDB持久化的 ...