写点什么

KubeEdge 1.2 发布:全面升级云边协同传输的可靠性!

  • 2020-02-12
  • 本文字数:1760 字

    阅读完需:约 6 分钟

KubeEdge 1.2发布:全面升级云边协同传输的可靠性!

北京时间 2 月 7 日,KubeEdge 发布了新的特性版本 v1.2.0。


本次发布的 1.2 版本迎来可靠性方面的重大升级,包含:增强云边协同传输的可靠性、Component Config API、自动注册边缘节点到云端、升级 Kubernetes 依赖到 v1.17 Stable 版本,以及 30 处问题修复。


Release详情


接下来本文将逐一解读 KubeEdge v1.2 的新特性。

项目背景

KubeEdge 名字来源于 Kube+Edge,即在 Kubernetes 原生的容器编排和调度能力之上,实现云边协同、计算下沉、海量边缘设备管理、边缘自治等能力。在追求边缘极致轻量化的同时,结合云原生生态的众多优势,解决当前智能边缘领域面临的挑战。


KubeEdge 架构上分为云、边、端三个层次。云端负责应用和配置的校验、下发,边缘侧负责运行边缘应用和管理接入的设备,设备端运行各种边缘设备。


KubeEdge 完整的打通了边缘计算中云、边、设备协同的场景,整体架构如下图。


01 增强云边协同传输的可靠性

在边缘计算场景下,边缘的网络通常是不稳定的,这将导致云边的网络连接频繁断开,在云边协同通信时存在丢失数据的风险。


在针对边缘网络不稳定场景优化的基础上,KubeEdge v1.2 版本做了以下增强:


1. 增加业务层消息发送的校验机制。云端发送状态同步消息到边缘时,边缘在接收并且持久化成功后,会回复状态同步成功的 ACK 消息给云端。如果云端未收到边缘状态同步成功的消息回复,则由业务层代码触发重传机制,重新进行状态同步。


2. 持久化云边协同消息状态。在云和边缘状态同步的过程中,云端会实时记录每个边缘节点同步成功的最新消息版本号(ResourceVersion),并以 CRD 的形式持久化保存到 K8s 中。该机制可以保证在边际场景下云端故障或者边缘离线重启后消息发送的顺序和连续性,避免重发旧消息引起云边状态不一致问题。


3. 周期性检查同步云边数据,保持一致性。在前两步的基础上,KubeEdge 又在云端 CloudCore 中添加了新的模块 SyncController,它主要负责周期性检查个边缘节点的同步状态,对比 K8s 中资源的信息,将不一致的状态同步到边缘,确保云边状态的最终一致性。


整体工作流程如下图所示:



工作机制详见

02 Component Config API

KubeEdge v1.2 版本的另一项重要改进是将 CloudCore、EdgeCore、EdgeSite 等组件的所有配置项结构化,统一使用 K8s 原生风格的 Component Config API 定义,按 API 版本形式管理后续演进,提供历史兼容支持。


在以往版本中,KubeEdge 组件的配置项分散在各个模块的独立文件中,维护比较繁琐。配置项按组件聚合后,用户只需在一个配置文件中进行配置,并可通过”–config”设置配置文件的路径。


本次增强还提供了默认完整配置和最小配置两个命令,用户可以使用这两个命令来生成配置文件,快速部署 KubeEdge。


KubeEdge v1.2 版本中的组件配置 API:





详细配置及设计原则,请见

03 自动注册边缘节点到云端

1.2 版本之前,用户在添加一个边缘节点时,首先需要在云端创建 Node 对象,再启动边缘端的 EdgeCore。


在 v1.2 版本中,KubeEdge 提供了边缘节点自动注册到云端的功能,并且默认开启该特性,以减少用户在安装使用 KubeEdge 时的操作步骤。用户可以通过修改 EdgeCore 的“registerNode”配置项来关闭该特性(将其设置为“false”即可)。


特性详情

04 升级 Kubernetes 依赖到 v1.17 Stable 版本

1.2 版本将 K8s 相关的依赖升级到了 v1.17 Stable 版本,edged 对应的 k8s 版本也升级到了 v1.17,用户可以在边缘侧享用最新版 K8s 的应用管理、存储管理等能力。


由于边缘端只关心 Pod、ConfigMap、Secret、Service、Endpoint 这几个核心 API 对象,K8s 中这几个 API 对象保持不变,那么就可以保持兼容,兼容性表报如下图。


Kubernetes 兼容性:



Golang 兼容性:


05 其他修改

新版本除了以上新特性外,还包括以下修改:


  • 修复了 EdgeCore 在运行多个 POD 时,CPU 占用高的问题。

  • 将 Beehive、Viaduct 两个子项目移到了 KubeEdge 主库中的 Staging 目录下,方便开发者开发调试。

  • EdgeCore 不应与 Kubelet 在同一主机(节点)上运行,因此添加了对 EdgeCore 运行环境的检查。

结语

随着 v1.2 版本的发布,KubeEdge 提供了更稳定可靠的云边协同传输机制,更完备的边缘应用管理以及设备管理能力,更加友好的用户体验,以及更加友好的社区贡献者体验,感谢所有社区贡献者的支持!后续版本将进一步提升 KubeEdge 的用户使用体验,提供完备的智能边缘计算平台。


2020-02-12 19:092534

评论

发布
暂无评论
发现更多内容

百亿级日志流分析实践 | 剖析个推SDK后效分析功能实现原理

个推

消息推送 sdk

分布式服务下,消息中间件改造

Java 架构 面试 分布式 后端

2021年Android工作或更难找,2021Android面经

android 移动开发

2021Java进阶者的新篇章,做了5年Java

Java 面试 后端

2021Java面试心得,Spring的XML解析原理

Java 面试 后端

2021Java高频精选面试题讲解,2021Java大厂面试真题

Java 面试 后端

2021京东最新Java面试真题解析,2021Java开发面试解答

Java 面试 后端

2021Java网络编程总结篇,三年老Java经验面经

Java 面试 后端

科创人|华映资本章高男:好奇心顽童,趋势焦虑者,反套路投资人

科创人

个推融合实人认证服务和视觉智能技术,推出青少年网络游戏防沉迷解决方案

个推

AI 人脸识别

2021Java者未来的出路在哪里,怒斩获了30家互联网公司offer

Java 面试 后端

阿里淘技术带佬新作:设计模式的完美演绎,共计1290页

Java 程序员 架构 面试 计算机

2021Java面试心得,淘汰机制、缓存雪崩

Java 后端

科创人|华傲数据CEO贾西贝:梦想驱动的九个人生抉择

科创人

2021Java最新大厂面试真题,Java面试宝典pdf

Java 面试 后端

2021Java精选面试实战总结整理,Java程序员面试算法宝典

Java 面试 后端

Jenkins: 重置管理员密码

吴脑的键客

jenkins

2021年Android大厂面试,送大厂面经一份

android 面试 移动开发

2021Java最新大厂面试真题,37岁程序员被裁

Java 面试 后端

2021一位Java中级程序员的跳槽面经,springmvc源码解析pdf

Java 面试 后端

2021年Android大厂面试,劲爆

android 面试 移动开发

如何用人工智能技术优化 WebRTC 产品(内附具体方案)

融云 RongCloud

直播回顾 | seL4基金会主席谈物理系统安全工程实践

鉴释

自动驾驶 操作系统 微内核 在线研讨会

2021互联网大厂Java面经合集,阿里面试官必问

Java 面试 后端

三维可视化数字能源系统,助力智慧园区高效能源管理

ThingJS数字孪生引擎

大前端 物联网 可视化 数字孪生

2021Java最新大厂面试真题总结,入职阿里啦

Java 面试 后端

M-SQL:超强的多任务表示学习方法

华为云开发者联盟

sql 自然语言 M-SQL SQL语句 多任务

2021Java高级进阶学习资料,StringBoot编程式事务与声明式事务

Java 面试 后端

个推0代码数据可视化实操:基于Tableau的中国奥运数据探索

个推

2021年Android岗位BAT大厂面试题知识点小结,阿里巴巴安卓面试题答案

android 面试 移动开发

2021年Android工作或更难找,深入剖析原理

android 面试 移动开发

KubeEdge 1.2发布:全面升级云边协同传输的可靠性!_云原生_华为云原生团队_InfoQ精选文章