KubeEdge 1.19.0 版本发布!更完备的节点设备能力,全新的 Dashboard 体验
北京时间 2024 年 10 月 28 日,KubeEdge 发布 1.19.0 版本。新版本在节点和设备方面引入了多个新特性,同时带来了全新版本的 Dashboard。
KubeEdge v1.19 新增特性:
支持边缘节点上报 Event
支持边缘节点 OTA 升级
Mapper 支持设备数据写入
Mapper 框架新增支持 OpenTelemetry
全新版本 Dashboard
新特性概览
▍支持边缘节点上报 Event
Kubernetes Event 作为集群中事件的报告,可以反馈节点、Pods 等集群资源的状态变化。在 1.19 版本中,EdgeCore 支持了边缘 Event 的上报,用户可以直接在云端通过 kubectl get events 或者 kubectl describe {resource_type} {resource_name} 获取边缘节点或者 pods 等状态。
该特性在 1.19 版本中默认关闭,使用 EdgeCore 时执行--set modules.edged.reportEvent=true 或者如下修改 EdgeCore 配置参数并重启 EdgeCore。
更过信息参考:
https://github.com/kubeedge/kubeedge/pull/5722
https://github.com/kubeedge/kubeedge/pull/5811
▍支持边缘节点 OTA 升级
新版本在节点升级 NodeUpgradeJob 基础上新增了边端节点卡点确认和对镜像摘要的验证。卡点确认可以使节点升级下发到边缘节点后,在用户得到确认后才进行升级。镜像摘要验证可以确保在边缘节点待升级的 kubeedge/installation-pacakge 镜像是安全可靠的。
在 1.19 版本中,我们可以通过 YAML 配置 NodeUpgradeJob 的 imageDigestGatter 来定义镜像摘要,value 用于直接定义摘要的值,registryAPI 用于通过 registry v2 接口获取镜像摘要,两者互斥,如果都没有配置则在升级时不进行镜像摘要的校验,样例:
我们还可以通过 YAML 配置 NodeUpgradeJob 的 requireConfirmation 来定义是否要在边端进行确认操作,样例:
当 requireConfirmation 设置为 true 时,在边端节点升级任务下发到边端后,任务状态会更新为 confirmation 状态等待边端发起确认命令后再继续进行升级。
我们可以通过执行 keadm ctl 指令进行确认,以继续升级任务:
或者调用 Metaserver 接口进行确认,以继续升级任务:
更多信息可参考:
https://github.com/kubeedge/kubeedge/issues/5589
https://github.com/kubeedge/kubeedge/pull/5761
https://github.com/kubeedge/kubeedge/pull/5863
▍Mapper 支持设备数据写入
Mapper 当前能够采集设备数据并上报,但在设备数据写入方面仍不完善。1.19 版本在 Mapper-Framework 中增加了设备数据写入的能力,允许用户通过 Mapper 提供的 API 调用 device method,对 device property 完成数据写入。
Device method API
目前基于物模型的 v1beta1 版本的设备管理 API 包含 device property 的定义,在 1.19 版本中,新增 device method 的定义。Device method 指设备能够被外部调用的能力或方法,一个 device method 能够控制多个 device property 值。用户能在 device-instance 文件中定义 device method,通过 device method 完成 device property 的控制、写入。
设备数据写入
在 1.19 中改进 Mapper API 能力,新增 device method 调用接口。用户能够调用相关的接口获取某个设备包含的所有 device method,以及 device method 的调用命令,通过返回的调用命令发起设备写入请求。device method 的具体功能实现需要用户自行在 Mapper 的设备驱动层中完成。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5662
https://github.com/kubeedge/kubeedge/pull/5902
▍Mapper 框架新增支持 OpenTelemetry
当前 Mapper 向用户应用推送设备数据默认内置 HTTP 与 MQTT 两种方式,但仍存在部分应用无法直接以这两种方式进行推送。在 1.19 版本中我们在数据面引入 OpenTelemetry 观测框架,能够封装设备数据并向多类应用或数据库推送数据,例如 GreptimeDB、 Prometheus 等,增强 Mapper 数据面推送设备数据的能力。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5628
▍全新版本 Dashboard
之前发布的 KubeEdge Dashboard,新版本使用主流的 Next.js 框架以及 MUI 样式库对其进行了重构。在新版本中我们重构并优化了近 60 个页面与组件,基于 KubeEdge 最新版本的后端 API,我们完善并增加了 Device 等相关功能页面,并在不影响原有功能的基础上将代码量减少至原先的四分之一。在这个过程中,我们整理完善了 Kubernetes 以及 KubeEdge 后端接口的 Typescript 类型定义,并将依赖的后端接口更新至最新版本,确保其与最新的 KubeEdge 兼容。
更多信息可参考:https://github.com/kubeedge/dashboard/pull/29
版本升级注意事项
下个版本(v1.20),EdgeCore 的配置项 edged.rootDirectory 的默认值将会由/var/lib/edged 切换至/var/lib/kubelet,如果您需要继续使用原有路径,可以在使用 keadm 安装 EdgeCore 时设置 --set edged.rootDirectory=/var/lib/edged。
从 1.19 版本开始,请在使用 keadm 安装 KubeEdge 时,使用--kubeedge-version 指定版本,--profile version 已废弃。
▍致谢
感谢 KubeEdge 社区技术指导委员会 (TSC)、各 SIG 成员对 v1.19 版本开发的支持与贡献,未来 KubeEdge 将持续在新场景探索与支持、稳定性、安全性、可扩展性等方面持续发展与演进!
▍相关链接
Release Notes:
https://github.com/kubeedge/kubeedge/blob/master/CHANGELOG/CHANGELOG-1.19.md
【更多 KubeEdge 资讯推荐】玩转 KubeEdge 保姆级攻略——环境搭建篇
玩转 KubeEdge 保姆级攻略——环境搭建篇
《玩转 KubeEdge 保姆级攻略——环境搭建篇》课程主要介绍如何通过华为云服务快速搭建一套 KubeEdge 边缘计算开发平台及部署 Sedna、EdgeMesh 等 KubeEdge 生态组件。
课程免费学习链接:https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiX+CBUCNXNX022+Self-paced/about
KubeEdge 社区介绍:KubeEdge 是业界首个云原生边缘计算框架、云原生计算基金会内部唯一孵化级边缘计算开源项目,社区已完成业界最大规模云原生边云协同高速公路项目(统一管理 10 万边缘节点/50 万边缘应用)、业界首个云原生星地协同卫星、业界首个云原生车云协同汽车、业界首个云原生油田项目,开源业界首个分布式协同 AI 框架 Sedna 及业界首个边云协同终身学习范式,并在持续开拓创新中。
KubeEdge 网站 : https://kubeedge.io
GitHub 地址 : https://github.com/kubeedge/kubeedge
Slack 地址 : https://kubeedge.slack.com
邮件列表 : https://groups.google.com/forum/#!forum/kubeedge
每周社区例会 : https://zoom.us/j/4167237304
Twitter : https://twitter.com/KubeEdge
评论