首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KubeEdge 1.2发布:全面升级云边协同传输的可靠性!

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

作者头像
CNCF
发布2020-02-20 17:15:01
1K0
发布2020-02-20 17:15:01
举报
文章被收录于专栏:CNCFCNCF

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

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

Release详情:

https://github.com/kubeedge/kubeedge/blob/release-1.2/CHANGELOG-1.2.md

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

项目背景

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

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

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

1

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

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

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

1. 增加业务层消息发送的校验机制。

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

2. 持久化云边协同消息状态。

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

3. 周期性检查同步云边数据,保持一致性。

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

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

工作机制详见:

https://github.com/kubeedge/kubeedge/blob/master/docs/proposals/reliable-message-delivery.md

2

Component Config API

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

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

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

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

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

https://github.com/kubeedge/kubeedge/pull/1172

3

自动注册边缘节点到云端

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

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

特性详情:

https://github.com/kubeedge/kubeedge/pull/1401

4

升级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兼容性:

5

其他修改

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

  • 修复了EdgeCore在运行多个POD时,CPU占用高的问题。
  • 将Beehive、Viaduct两个子项目移到了KubeEdge主库中的Staging目录下,方便开发者开发调
  • EdgeCore不应与Kubelet在同一主机(节点)上运行,因此添加了对EdgeCore运行环境的检查。

结语

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

更多详情请关注

https://kubeedge.io

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档