KubeEdge 1.20.0发布! 6大新特性提升边缘管理能力
1.Kurator V0.6.0:实现应用全流程生命周期管理2.亿级月活游戏《迷你世界》全栈容器化实践分享3.华为云云原生专家入选全球顶级开源组织CNCF技术监督委员会4.基于Sermant的全链路灰度发布在汽车行业DMS系统的应用5.华为云云原生FinOps解决方案,释放云原生最大价值6.CCE云原生混部场景下的测试案例7.通过HPA+CronHPA组合应对业务复杂弹性伸缩场景8.Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化9.云原生多云多集群Karmada|2024开源之夏8项课题邀您共创10.KubeEdge v1.17.0发布!数据处理能力与易用性全面提升11.Volcano社区新版本发布!7大功能全面增强队列能力与调度稳定性12.干货收藏!Calico的BGP RouteReflector策略实践13.破除软件开发困局,基于容器平台的DevOps转型实践14.跨越云端,华为云技术专家分享高效跨云迁移实践15.技术解读华为云CCE Autopilot,k8s集群托管免运维16.硬核解读KubeEdge基于大模型边云协同的机器人语义分割算法17.揭秘10亿+高并发应用如何实现高效稳定的开发和运维18.Karmada v1.10发布,新增多集群声明式负载重平衡19.华为云技术专家硬核分享,云原生中间件如何加速业务发展20.从零开始带你上手体验Sermant自定义插件开发21.以Java项目为例,实现Jenkins对接CCE Autopilot集群22.从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署23.ELB Ingress网关助力云原生应用轻松管理流量24.硬核案例分享,一文带你拆解PHP语言体系下的容器化改造25.华为云DTSE助力虎彩鲜檬优化运维效率,助力迁移上云26.一文教你在华为云上部署Discuz论坛网站27.蓝亚盒子迁移上云,华为云助力开启元宇宙直播电商新纪元28.华为云DTSE助力悦知技术架构升级、打破业务瓶颈29.革新技术架构,华为云DTSE助力紫藤科技迁移上云经验分享30.华为云Serverless可观测性解决方案打造高效、可靠的云原生应用31.从K8s的“临时容器”看K8s设计的厉害之处32.Volcano新版本发布:10大功能提升统一调度和细粒度资源管理能力33.华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发34.一图为你揭秘云数据库GaussDB管理平台亮点35.华为云架构师深度解读Volcano云原生混部解决方案36.资源利用率提高30%,揭秘华为云Serverless高效、高密度调度优化原理37.解读Karmada多云容器编排技术,加速分布式云原生应用升级38.流量治理架构对比:当Kmesh遇上Ambient Mesh39.Karmada v1.12 版本发布!单集群应用迁移可维护性增强40.Kmesh v1.0正式发布!7大特性提升网络流量管理效率和安全性41.Volcano v1.11发布,显著提升AI训练与推理任务的性能
42.KubeEdge 1.20.0发布! 6大新特性提升边缘管理能力
摘要:新版本大幅度提升边缘管理能力,满足更多边缘场景需求。
本文分享自华为云社区《KubeEdge 1.20.0版本发布!边缘管理能力提升,满足更多边缘场景需求!》,作者:华为云云原生团队。
KubeEdge 1.20.0 版本已正式发布。新版本针对大规模、离线等边缘场景对边缘节点和应用的管理、运维等能力进行了增强,同时新增了多语言 Mapper-Framework 的支持。

KubeEdge v1.20.0 新增特性:
● 支持批量节点操作
● 多语言 Mapper-Framework 支持
● 边缘 keadm ctl 新增 pods logs/exec/describe 和 Devices get/edit/describe 能力
● 解耦边缘应用与节点组,支持使用 Node LabelSelector
● 边云通道支持 IPv6
● 升级 k8s 依赖到1.30
新特性概览
▍支持批量节点操作
在之前的版本中,keadm 工具仅支持单个节点的安装与管理,然而在边缘场景中,节点数量通常比较庞大,单个节点的管理难以满足大规模场景的需求。在1.20.0版本中,我们提供了批量节点操作和运维的能力。基于这个能力,用户仅需要使用一个配置文件,即可通过一个控制节点(控制节点可以登录所有边缘节点)对所有边缘节点进行批量操作和维护。keadm 当前版本支持的批量能力包括 join, reset 和 upgrade。
# 配置文件配置要求参考如下 keadm: download: enable: true # <Optional> Whether to download the keadm package, which can be left unconfigured, default is true. if it is false, the 'offlinePackageDir' will be used. url: "" # <Optional> The download address of the keadm package, which can be left unconfigured. If this parameter is not configured, the official github repository will be used by default. keadmVersion: "" # <Required> The version of keadm to be installed. for example: v1.19.0 archGroup: # <Required> This parameter can configure one or more of amd64/arm64/arm. - amd64 offlinePackageDir: "" # <Optional> The path of the offline package. When download.enable is true, this parameter can be left unconfigured. cmdTplArgs: # <Optional> This parameter is the execution command template, which can be optionally configured and used in conjunction with nodes[x].keadmCmd. cmd: "" # This is an example parameter, which can be used in conjunction with nodes[x].keadmCmd. token: "" # This is an example parameter, which can be used in conjunction with nodes[x].keadmCmd. nodes: - nodeName: edge-node # <Required> Unique name, used to identify the node arch: amd64 # <Required> The architecture of the node, which can be configured as amd64/arm64/arm keadmCmd: "" # <Required> The command to be executed on the node, can used in conjunction with keadm.cmdTplArgs. for example: "{{.cmd}} --edgenode-name=containerd-node1 --token={{.token}}" copyFrom: "" # <Optional> The path of the file to be copied from the local machine to the node, which can be left unconfigured. ssh: ip: "" # <Required> The IP address of the node. username: root # <Required> The username of the node, need administrator permissions. port: 22 # <Optional> The port number of the node, the default is 22. auth: # Log in to the node with a private key or password, only one of them can be configured. type: password # <Required> The value can be configured as 'password' or 'privateKey'. passwordAuth: # It can be configured as 'passwordAuth' or 'privateKeyAuth'. password: "" # <Required> The key can be configured as 'password' or 'privateKeyPath'. maxRunNum: 5 # <Optional> The maximum number of concurrent executions, which can be left unconfigured. The default is 5.` # 配置文件参考用例 (各字段具体值请根据实际环境进行配置) keadm: download: enable: true url: https://github.com/kubeedge/kubeedge/releases/download/v1.20.0 # If this parameter is not configured, the official github repository will be used by default keadmVersion: v1.20.0 archGroup: # This parameter can configure one or more of amd64\arm64\arm - amd64 offlinePackageDir: /tmp/kubeedge/keadm/package/amd64 # When download.enable is true, this parameter can be left unconfigured cmdTplArgs: # This parameter is the execution command template, which can be optionally configured and used in conjunction with nodes[x].keadmCmd cmd: join--cgroupdriver=cgroupfs--cloudcore-ipport=192.168.1.102:10000--hub-protocol=websocket--certport=10002--image-repository=docker.m.daocloud.io/kubeedge--kubeedge-version=v1.20.0--remote-runtime-endpoint=unix:///run/containerd/containerd.sock token: xxx nodes: - nodeName: ubuntu1 # Unique name arch: amd64 keadmCmd: '{{.cmd}} --edgenode-name=containerd-node1 --token={{.token}}' # Used in conjunction with keadm.cmdTplArgs copyFrom: /root/test-keadm-batchjoin # The file directory that needs to be remotely accessed to the joining node ssh: ip: 192.168.1.103 username: root auth: type: privateKey # Log in to the node using a private key privateKeyAuth: privateKeyPath: /root/ssh/id_rsa - nodeName: ubuntu2 arch: amd64 keadmCmd: join--edgenode-name=containerd-node2--cgroupdriver=cgroupfs--cloudcore-ipport=192.168.1.102:10000--hub-protocol=websocket--certport=10002--image-repository=docker.m.daocloud.io/kubeedge--kubeedge-version=v1.20.0--remote-runtime-endpoint=unix:///run/containerd/containerd.sock # Used alone copyFrom: /root/test-keadm-batchjoin ssh: ip:192.168.1.104 username: root auth: type: password passwordAuth: password: ***** maxRunNum: 5 # 用法 (保存以上文件,例如保存为 config.yaml) # 在控制节点下载最新版本 keadm, 执行以下命令进行使用 keadmbatch-c config.yaml
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5988
https://github.com/kubeedge/kubeedge/pull/5968
https://github.com/kubeedge/website/pull/657
▍多语言 Mapper-Framework 支持
由于边缘 IoT 设备通信协议的多样性,用户可能需要使用 Mapper-Framework 生成自定义 Mapper 插件来纳管边缘设备。当前 Mapper-Framework 只能生成 go 语言版本的 Mapper 工程,对于部分不熟悉 go 语言的开发者来说使用门槛仍然较高。因此在新版本中,KubeEdge 提供了 Java 版本的 Mapper-Framework,用户可以访问 KubeEdge 主仓库的feature-multilingual-mapper分支,利用 Mapper-Framework 生成 Java 版的自定义 Mapper 工程。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5773
https://github.com/kubeedge/kubeedge/pull/5900
▍边缘 keadm ctl新增 pods logs/exec/describe 和 Devices get/edit/describe 能力
在v1.17.0版本中,我们新增了 keadm ctl 子命令,支持在离线场景下对边缘 pod 进行查询和重启。在v1.20中我们对该命令做了进一步增强,支持 pod 的logs/exec/describe等功能,用户在边缘可对 pod 进行日志查询、pod 资源详细信息查询、进入容器内部等操作。同时还新增了对 device 的操作,支持 device 的get/edit/describe的功能,可以在边缘获取 device 列表、device 的详细信息查询、在边缘离线场景下对 device 进行编辑操作。如下所示,新增的 keadm ctl 子命令功能均在 MetaServer 中开放了 Restful 接口,并与 K8s ApiServer 对应的接口完全兼容。
[root@edgenode1 ~] # keadm ctl -h Commands operating on the data plane at edge Usage: keadm ctl [command] Available Commands: ... describe Show details of a specific resource edit Edit a specific resource exec Execute command in edge pod get Get resources in edge node logs Get pod logs in edge node ...
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5752
https://github.com/kubeedge/kubeedge/pull/5901
▍解耦边缘应用与节点组,支持使用 Node LabelSelector
EdgeApplication 可以通过节点组覆盖部署定义(如副本、镜像、命令和环境),Pod 流量在节点组内闭环(EdgeApplication 管理的 Deployment 共用一个 Service)。但在实际场景中,需要批量操作的节点范围与需要相互协作的节点范围并不相同。例如在智慧园区的场景中,每个城市都有很多个智慧园区,我们需要应用的流量在一个智慧园区内闭环,但应用批量管理的范围可能是城市级,也可能是省级。
我们在EdgeApplication CRD中为节点标签选择器添加了一个新的targetNodeLabels字段,该字段将允许应用程序根据节点标签进行部署,并且覆盖特定的字段,YAML 定义如下:
apiVersion: apps.kubeedge.io/v1alpha1 kind: EdgeApplication metadata: name: edge-app namespace: default spec: workloadTemplate: {...} workloadScope: # New field: targetNodeLabels targetNodeLabels: - labelselector: - matchExpressions: - key: "region" operator: In values: - "HangZhou" overriders: {...}
更多信息可参考:
Pull Request: https://github.com/kubeedge/kubeedge/pull/5845
▍边云通道支持 IPv6
我们在官网的文档中提供了一份配置指南,介绍了 KubeEdge 如何在 Kubernetes 集群中让云边 hub 隧道支持 IPv6。文档地址:https://kubeedge.io/docs/advanced/support_ipv6
▍升级 K8s 依赖到 v1.30
新版本将依赖的 Kubernetes 版本升级到v1.30.7,您可以在云和边缘使用新版本的特性。
版本升级注意事项
从v1.20开始,EdgeCore的配置项edged.rootDirectory的默认值将会由/var/lib/edged切换至/var/lib/kubelet。如果您需要继续使用原有路径,可以在使用 keadm 安装 EdgeCore 时设置
--set edged.rootDirectory=/var/lib/edged。
▍致谢
感谢 KubeEdge 社区技术指导委员会 (TSC)、各 SIG 成员对v1.20版本开发的支持与贡献,未来 KubeEdge 将持续在新场景探索与支持、稳定性、安全性、可扩展性等方面持续发展与演进!
▍相关链接
Release Notes:
https://github.com/kubeedge/kubeedge/blob/master/CHANGELOG/CHANGELOG-1.20.md
KubeEdge社区
KubeEdge是业界首个云原生边缘计算框架、云原生计算基金会(CNCF)唯一毕业级边缘计算开源项目,社区已完成业界最大规模云原生边云协同高速公路项目(统一管理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
文档地址 : https://docs.kubeedge.io/en/latest/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
2024-02-18 教你用Rust实现Smpp协议
2024-02-18 0-overlay和underlay,这两种容器网络你分得清吗
2022-02-18 HTTP流量神器Goreplay核心源码详解
2022-02-18 OpenHarmony移植案例与原理:startup子系统之syspara_lite系统属性部件
2022-02-18 教你一个快速视频处理的神器:Python moviepy
2021-02-18 探究Python源码,终于弄懂了字符串驻留技术
2021-02-18 OAuth:每次授权暗中保护你的那个“MAN”