KubeEdge 1.22.0 版本已发布。新版本对 Beehive 框架以及 Device Model 做了优化升级,同时对边缘资源管理能力做了提升。
新增特性:
- 新增 hold/release 机制控制边缘资源更新
- Beehive框架升级,支持配置子模块重启策略
- 基于物模型与产品概念的设备模型能力升级
- 边缘轻量化 Kubelet 新增 Pod Resources Server 和 CSI Plugin 特性开关
- C语言版本的 Mapper-Framework 支持
- 升级 K8s 依赖到1.31
新增 hold/release 机制控制边缘资源更新
在1.22.0版本中引入了hold/release 机制来管理边缘资源的更新。
在云端,用户可以通过对 Deployment、StatefulSet 和 DaemonSet 等资源添加 edge.kubeedge.io/hold-upgrade: "true"的 annotation,表示对应的 Pod 在边缘更新需要被 hold。
在边缘,被标记了edge.kubeedge.io/hold-upgrade: "true"的 Pod 会被暂缓被处理。边缘管理员可以通过执行以下命令来释放对该 Pod 的锁,完成资源更新。
keadmctlunhold-upgradepod<pod-name>
也可以执行以下命令解锁边缘节点上所有被 hold 的边缘资源。
keadmctlunhold-upgradenode
注意:
使用keadm ctl命令需要启动 DynamicController 和 MetaServer 开关。
更多信息可参考:
Beehive框架升级,支持配置子模块重启策略
在1.17版本中实现了 EdgeCore 模块的自重启,可以通过全局配置来设置边缘模块的重启。在1.22版本中对 Beehive 框架进行了升级优化,支持边缘子模块级别的重启策略配置。同时统一了 Beehive 各子模块启动的错误处理方式,对子模块能力标准化。
更多信息可参考:
基于物模型与产品概念的设备模型能力升级
目前的 Device Model 基于物模型概念设计,而在传统 IoT 中,设备通常采用物模型、产品和设备实例三层结构进行设计,可能导致用户在实际使用中产生困惑。
在 1.22.0 版本中结合物模型与实际产品的概念,对设备模型的设计进行了升级。从现有的设备实例中提取了 protocolConfigData , visitors 字段到设备模型中,设备实例可以共享这些模型配置。同时,为了降低模型分离的成本,设备实例可以重写覆盖以上配置。
更多信息可参考:
边缘轻量化 Kubelet 新增 Pod Resources Server 和 CSI Plugin 特性开关
在之前的版本中在 EdgeCore 集成的轻量化 Kubelet 中移除了 Pod Resources Server 能力,但在一些使用场景中,用户希望恢复该能力以实现对Pod的监控等。同时,由于 Kubelet 默认启动 CSI Plugin,离线环境下启动 EdgeCore 会由于 CSINode 创建失败而导致失败。
在 1.22.0 版本中在轻量化 Kubelet 中新增了 Pod Resources Server 和 CSI Plugin 特性开关,如果你需要启用 Pod Resources Server 或关闭 CSI Plugin,可以在 EdgeCore 配置中添加如下特性开关:
apiVersion:edgecore.config.kubeedge.io/v1alpha2
kind:EdgeCore
modules:
edged:
tailoredKubeletConfig:
featureGates:
KubeletPodResources:true
DisableCSIVolumePlugin:true
...
更多信息可参考:
C语言版本 Mapper-Framework 支持
在1.20.0版本中,在原有的 go 语言版本 Mapper 工程基础上,新增了 Java 版本的 Mapper-Framework。由于边缘 IoT 设备通信协议的多样性,很多边缘设备驱动协议都是基于 C语言实现的,因此在新版本中,KubeEdge 提供了 C语言版本的 Mapper-Framework,用户可以访问 KubeEdge 主仓库的 feature-multilingual-mapper-c 分支,利用 Mapper-Framework 生成 C语言版本的自定义 Mapper 工程。
更多信息可参考:
升级 K8s 依赖到1.31
新版本将依赖的 Kubernetes 版本升级到v1.31.12,可以在云和边缘使用新版本的特性。
更多信息可参考: