写点什么

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:092275

评论

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

数据湖(十七):Flink与Iceberg整合DataStream API操作

Lansonli

数据湖 11月月更

数据湖(十八):Flink与Iceberg整合SQL API操作

Lansonli

数据湖 11月月更

计算机网络:流量控制与可靠传输机制

timerring

计算机网络 流量控制 11月月更 可靠传输

架构实战营模块4作业

冷夫冲

架构实战营

全网首次公开!阿里巴巴分布式系统设计核心原理技术内幕

程序员小毕

程序员 架构 面试 分布式 程序人生

峰会实录 | 基于StarRocks和腾讯云EMR构建云上Lakehouse

StarRocks

数据库

【超干货】阿里内部 Spring Boot 笔记,全硬核知识点

程序知音

Java spring 架构 springboot 后端技术

SAP UI5 barcode 控件的 feature 检查探测机制单步调试 - checkCordovaInIframe

汪子熙

JavaScript Fiori SAP UI5 ui5 11月月更

从0制作一个web端网易云

格斗家不爱在外太空沉思

vue.js axios 11月月更

数据库审计的四种类型

阿泽🧸

数据库审计 11月月更

【C 语言】const 关键字

謓泽

11月月更

一次遍历导致的崩溃

小小怪下士

Java 程序员

为了面试字节,熬夜肝完这份Redis笔记后,我终于“硬”了一回

小小怪下士

Java redis 程序员 面试

我没想到,做IT还有感动众生的机会

明道云

数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表

Lansonli

数据湖 11月月更

Vue-VueRouter使用

格斗家不爱在外太空沉思

vue.js VueRouter 11月月更

Go语言入门14—Channel

良猿

Go golang 后端 11月月更

HDC2022 携手共创鸿蒙生态 增长解决方案焕新升级构筑商业增长闭环

叶落便知秋

随机森林-分类森林

烧灯续昼2002

Python 机器学习 算法 随机森林 11月月更

uniapp-如何在邀请页面生成海报

格斗家不爱在外太空沉思

vue.js uniapp 11月月更

Verilog语法入门

梦笔生花

Verilog 11月月更 组合逻辑电路

【愚公系列】2022年11月 微信小程序-app.json配置属性

愚公搬代码

11月月更

架构误区系列1:简单依靠扩容解决容量问题

agnostic

架构误区

云栖探馆!云小宝首秀遇上老司机小龙,猜猜谁赢了?

OpenAnolis小助手

龙蜥社区 2022云栖大会 小龙 云小宝 开源活动

华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活

HarmonyOS SDK

HMS Core

架构误区系列(Architecture Pitfall)

agnostic

构架师

Mac部署spark2.4.4

程序员欣宸

大数据 spark 11月月更

【LeetCode】三角形最小路径和Java题解

Albert

算法 LeetCode 11月月更

华为云从入门到实战 | AI云开发ModelArts入门与WAF应用与部署

TiAmo

华为 华为云 云开发 11月月更

HEM亮相华为HDC2022开发者大会,助力企业数字化办公

最新动态

披荆斩棘成功上岸美团、字节、华为,分享Java面经及答案

程序知音

Java java面试 后端技术 Java面试八股文

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