KubeCon深度洞察 | KubeEdge开源首秀
以下内容根据华为云DJ在KubeCon Shanghai Demo Session演讲实录整理而成。
KubeEdge Demo Show
11月15日上午Huawei宣布了KubeEdge项目开源,接下来我将公布KubeEdge这个开源项目的地址,并演示基于KubeEdge管理摄像头的一个智能考勤系统的例子。
在此之前,先简单介绍下KubeEdge这个项目背景。当前,越来越多的计算正在从云端往边缘侧转移。
我们身边随处可见边缘计算的场景,例如:
智慧园区,可以在边缘侧完成提取视频、图片的摘要,图像识别放在云端。
工业机器人,需要在边缘侧进行消息预处理与模式匹配。
车联网等等,需要在边缘侧进行ML模型预测等。
在我看来,5大现实场景下的“客观因素”推动计算从云端走向边缘:
低延时要求。AR/VR的时延要求是ms级,工业控制的时延更是在us级。
高可靠性。具体表现为:>99.999%的可用性,响应时间可预测,响应结果可重复等。
本地自治。要求边缘侧可适应偶尔断网,或者直接本地自治。
海量数据和有限带宽的矛盾。设备侧将产生海量数据,而以目前的带宽还无法承载这数据量。另外一个事实就是,很多数据没有全局价值,没有必要浪费带宽上传到云端。
信息安全。考虑到商业密码和个人隐私,很多机构和个人并不愿意把数据传输到云端。
中心云无法很好地解决以上问题,引入边缘计算可以解决这些问题。那么如何在边缘侧部署应用呢?我们很自然地想到了Kubernetes。虽然Kubernetes已经成为事实上容器编排的标准,但是当涉到在边缘侧部署时,仍然存在不少挑战。
例如:
边缘侧可能没有足够的资源运行一个完整的Kubelet;
当边缘节点和云端的网络不稳定时甚至完全不通时,能否实现本地自治;
边缘侧节点之间通信;
如何在云端管理多租户的边缘资源,包括设备;
边缘侧没有serverless的支持,比如:函数。
为了解决Kubernetes在IoT Edge场景下的问题,Kubernetes社区最近成立了一个新的工作组:IoT Edge WG。
该工作组由Huawei,红帽,Google和VMWare共同领导。这个工作组的目标是:
定义边缘计算的常用术语;
梳理和解释常见用例的架构;
在当前这些常见用例中梳理出可使用Kubernetes进行部署的用例及其面临的挑战;
提供一个能够适应多种IoT Edge场景下的参考的架构。
因此,我们开源了KubeEdge,一个Kubernetes Native的边缘计算管理框架,他的设计初衷就是:让云边协同,计算下沉,让云端更加容易地管理边缘节点和设备。
KubeEdge有以下几个特点:
KubeEdge构建在Kubernetes之上,100%兼容K8S API,可以使用K8S API原语管理边缘节点和设备;
为了让K8S应用能够跑在边缘上,深度定制和优化了runtime;
为了应对边缘侧的网络不稳定因素,设计了可靠的消息通道;
边缘适应本地自治;
丰富的应用和协议支持;
大大简化了设备的接入复杂度;
现在,我公布KubeEdge项目开源地址:
https://github.com/kubeedge/
KubeEdge是个开放的社区,欢迎开发者积极贡献代码,在使用过程中有任何问题也欢迎提issue讨论。
KubeEdge从功能上看,是打通了从底层设备到设备驱动/SDK,再到边缘侧Runtime,云端控制器以及云上应用整个软硬件全栈。
从架构看,又分为云端和边缘侧。边缘侧是单进程部署,采用了模块化设计,由edged,metamanager,devicetwin,eventbus,edgehub这五个模块构成,模块之间通过golang的channel进行通信。
edged就是为边缘计算深度定制的精简runtime,虽然这是一个精简的runtime,但它支持K8S的API原语,比如:Pod,Volume,Configmap等,同时也支持Pod探针和Event上报;
edgehub是一个web socket的client,负责和云端的消息通信,包括:向边缘侧同步云端资源更新,向云端报告边缘侧节点和设备状态更新;
metamanager则是一个消息处理器,是架在edged和edgehub之间的桥梁,同时也和后端data store交互,读写一些元数据;
EventBus则是边缘节点和设备的之间的纽带,他既可以从MQTT Broker处订阅设备状态更新事件,并向其他感兴趣的组件发布,也可以向MQTT Broker发送对设备的操作指令,同时云上app和用户自己部署在edge的应用通信,也走eventbus;
DeviceTwin则负责存储设备元数据到data store以及和云端同步设备状态,用户可以从云端下发的对设备操作指令发布给DeviceTwin。设备目前可以通过MQTT Broker注册进来,也就是eclipse的mosquitto。未来,我们将支持更多的设备协议,例如:AMQP,BlueTooth,ZigBee等。
接下来我们将用一个智慧园区人脸考勤系统为例,展示KubeEdge协同管理云,边和设备的能力。
整个过程分为以下三个步骤:
园区管理员通过KubeEdge纳管边缘计算节点,节点纳管后,管理员可以通过界面对边缘节点进行管理和业务发放;
园区管理员通过KubeEdge统一管理、配置边缘设备(如视频摄像头),并提供一套接口供边缘应用使用,简化应用配置;
园区管理员通过智能视频分析服务,部署边缘人脸识别算法,在边缘侧完成实时视频的人脸抠图,然后在云端完成人脸识别。
KubeCon深度洞察 | KubeEdge开源首秀的更多相关文章
- 巨变!a16z 关于新一代数据基础设施架构的深度洞察
点击上方 蓝字关注我们 来源 | a16z 作者 | Matt Bornstein, Martin Casado,Jennifer Li 翻译 | 夕颜 作为未来最重要的基础设施之一,数据正在成为各行 ...
- 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...
- 不会开发的你也能管理好企业漏洞,开源免费工具:洞察(insight II)
前言 公司刚开始建设安全管理时,都是从一片混沌开始的,资源总是不够的,我们每个做安全的人员,又要会渗透,又要抓制度,还得管理各种漏洞.在管理楼栋是,我相信大家都遇到过以下几个问题: 漏洞提交太多,自己 ...
- KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
KubeEdge开源背景 KubeEdge在18年11月24日的上海KubeCon上宣布开源,技术圈曾掀起一阵讨论边缘计算的风潮,从此翻开了边缘计算和云计算联动的新篇章. KubeEdge即Kube+ ...
- DolphinScheduler 在绿瘦的实践成果,开启了我的开源之路!
点击上方 蓝字关注我们 ✎ 编 者 按 2021 年,Apache DolphinScheduler 社区又迎来了新的蓬勃发展,社区活跃度持续提高.目前,项目 GitHub Star 已达 6.7k, ...
- DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!
点击上方 蓝字关注我们 好消息,中国开源云联盟(China Open Source Cloud League,简称"COSCL")于近日公布 2021 杰出开源贡献者.优秀开源项目 ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- 10 个顶尖的 Linux 开源人工智能工具
在这篇文章中,我们将介绍几个顶级的开源 Linux 生态系统的人工智能(AI)工具.目前,AI 是科学和技术中不断进步的领域之一,很多人都在致力于构建软件和硬件来解决诸如医疗,教育,安全,制造业,银行 ...
- paper 53 :深度学习(转载)
转载来源:http://blog.csdn.net/fengbingchun/article/details/50087005 这篇文章主要是为了对深度学习(DeepLearning)有个初步了解,算 ...
随机推荐
- Gluon 实现 dropout 丢弃法
多层感知机中: hi 以 p 的概率被丢弃,以 1-p 的概率被拉伸,除以 1 - p import mxnet as mx import sys import os import time imp ...
- 16、SpringBoot-CRUD错误处理机制(3)
3).将自己指定的数据携带出去 出现错误以后,会来到/error请求,会被BasicErrorController 进行处理 响应出去的数据是由 getErrorAttributes 得到的( Abs ...
- VS2008 工具栏CMFCToolBar的使用总结(转)
(一)自定义工具栏 自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标:二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似. 1. 自绘工具栏 1)添加Toolbar ...
- Asp.net MVC 自定义错误页面以及return HttpNotFound遇到的问题
今天在处理mvc 项目404和500页面时,发现我以前比较喜欢用的Return HttpNotFound()没有跳转到我在webconfig中配置的自定义404页面,而且也不会去执行Global中的A ...
- JAVA中时间格式转换
1.将任意日期格式的字符串转换为指定格式的字符串 //默认格式 String s1 = "20190110133236"; //给定格式 String s2 = "201 ...
- Crash for small compressed texture on some Android device
I created a full white texture with 4x4 size. Unity requires that compressed texture size should be ...
- Spring知识点小结(二)
一.配置非自定义的Bean(数据源DataSource模型) DBCP数据源: 导入dbcp的jar包:dbcp+pool+connector 代码实现: ...
- Eclipse新导入的项目中ctrl+点击指定方法名或类名没有反应,不能跳转问题
项目没有转成java项目 解决方法:右击项目名---选择properties----点击Project Facets,这样就可以实现ctrl+左键点击跳转了. 转成java项目后会报错 解决办法:选中 ...
- Zabbix——解决中文显示乱码
前提条件: 准备好上传工具,我用的是WinSCP 使用字体是微软雅黑,如果使用其他的更改名称即可. 更改Zabbix服务器的默认参数: vi /usr/share/zabbix/include/def ...
- MySQL必知必会 读书笔记二:MySQL使用
使用MySQL 选择数据库 使用USE关键字 USE database; 了解数据库和表 如果不知道可以使用的数据库名时,可用MySQL的SHOW命令来显示这些信息. SHOW DATABASES; ...