【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

评论

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

手把手教你在CentOS环境安装Docker

迷彩

Docker 架构 运维 6月月更 InfoQ极客传媒15周年庆

Zookeeper入门基础

No Silver Bullet

zookeeper 6月月更

Mysql源码阅读 -- Windows10编译运行MySQL源码

c++ MySQL 源码学习

C#入门系列(十八) -- 类的属性、索引、事件和this关键字

陈言必行

C# 6月月更

模块四

Geek_2ce415

测试需要做单元测试吗?

老张

软件测试 单元测试

如何构建、部署运行Flink程序

百思不得小赵

flink 部署 6月月更

别再说你不知道分布式事务了

牧小农

流计算中的死锁

Damon

6月月更

vue动态路由

小恺

6月月更

FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup

声网

语音识别 RTC Dev Meetup

spring4.1.8扩展实战之七:控制bean(BeanPostProcessor接口)

程序员欣宸

Java spring SpringFramework 6月月更

Web3 游戏:现状与未来

TinTinLand

区块链 科技 web3

SDN系统方法 | 7. 叶棘网络

俞凡

架构 网络 sdn SDN系统方法

彻底搞懂 select/poll/epoll,就这篇了!

C++后台开发

网络编程 linux开发 epoll select C++开发

Linux开发_Linux下进程编程

DS小龙哥

6月月更

BOM核心——window对象之Golbal

大熊G

JavaScript 前端 6月月更

办事利器推荐 | 社区征文

工程师日月

工具软件 6月月更 初夏征文

创建视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

Docker进阶(一):docker -v目录挂载

No Silver Bullet

Docker 6月月更

使用统计数据消除生活中的无谓

宇宙之一粟

贝叶斯公式 6月月更

关于 Angular SSR 应用在渲染中止时如何避免内存泄漏问题的一些尝试

Jerry Wang

typescript angular SSR Spartacus 6月月更

InfoQ 极客传媒15周年庆征文|云原生运维排障的关键要点

穿过生命散发芬芳

云原生 6月月更 InfoQ极客传媒15周年庆

金融之外,区块链还适合什么场景?

TinTinLand

区块链+ 科技 web3

颠覆Web2 社交媒体,Liberty 计划在波卡上找到了归宿

One Block Community

区块链 科技

走近分布式缓存Memcached

No Silver Bullet

memcached 分布式缓存 6月月更

NodeJS 读写文件 🎠

德育处主任

node.js 6月月更

五八同城(58.com)研发效能组织和团队建设之路

laofo

互联网 DevOps 研发效能 持续交付 工程效率

前端食堂技术周刊第 41 期:TC 39 会议、IE 退役、React Labs、Storybook 组件百科全书

童欧巴

前端 React IE TC39

【前端】前后端交互重点Ajaxの介绍及实战

孤寒者

json ajax tornado 6月月更

算法系列之动态规划

坚果

6月月更

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