KubeEdge 1.18.0 版本发布!可靠性和安全性带来提升
KubeEdge 1.18.0 版本现已正式发布。新版本在稳定性、安全性等方面有了显著的提升,同时持续在易用性等方面做了增强。
KubeEdge v1.18.0 新增特性:
-
RouterManager 支持高可用
-
CloudCore 云边通道鉴权增强
-
支持设备状态上报
-
keadm 能力增强
-
封装 Token,CA 和证书操作,提高扩展性
-
升级 K8s 依赖到 v1.29
新特性概览
▍RouterManager支持高可用
针对 CloudCore 采用高可用部署时,RouterManager 无法准确路由的问题,在新版本中,对 RouterManager 在高可用部署时做了优化与增强,云端发往边缘的自定义消息将会被路由到对应 EdgeNode 所连接的 CloudCore中,并正确下发到对应的 EdgeNode。同时考虑了边界情况,在转发过程中,如果 EdgeNode重连到其他 CloudCore 时,消息将会被重新转发到正确的 CloudCore 中。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5635
https://github.com/kubeedge/kubeedge/pull/5619
▍CloudCore云边通道鉴权增强
CloudCore 作为连接边缘节点和 Kube-APIServer 的桥梁,需要限制边缘节点对集群资源的访问权限。在新版本中,我们对云边通道的安全性进行了增强,CloudHub 会识别消息发送方并校验其是否有足够的权限,从而限制边缘节点操作其他节点的资源。
v1.18.0 目前已支持 node authorization 模式。该特性引入了如下配置参数,在新版本中默认关闭,开启如下开关即可启用该特性。
apiVersion: v1
data:
cloudcore.yaml:
...
modules:
cloudhub:
authorization:
// optional, default false, toggle authoration
enable: true
// optional, default to false, do authorization but always allow all the requests
debug: false
// required, an authorizer chain
authorizers:
// node authorization mode
- node:
ebable:true
...
为了安全启用此特性,可以先开启 debug。当鉴权失败时,CloudCore 只记录日志,但请求仍会正常处理。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5512
https://github.com/kubeedge/kubeedge/pull/5585
▍支持设备状态上报
设备有其自身的状态,比如在线、离线、异常等。1.18.0版本支持了设备状态上报的能力。该特性在 Mapper-Framework 已经默认实现,用户基于 Mapper-Framework 生成自己需要的 mapper,即可使用。状态上报成功后,可通过 device 的资源查看结果:
apiVersion: devices.kubeedge.io/v1beta1
kind: Device
...
spec:
status:
lastOnlineTime: "2024-07-30T17:55:49Z"
state: ok
twins:
- observedDesired:
....
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5650
https://github.com/kubeedge/kubeedge/pull/5649
https://github.com/kubeedge/kubeedge/pull/5651
▍Keadm能力增强
在旧版本中,使用 keadm join 安装 EdgeCore 只能指定部分参数的配置。在最新版本中,我们对 EdgeCore 的配置流程进行了显著优化。现在,您无需等待节点接入完成,手动编辑 edgecore.yaml 配置文件,再重启 EdgeCore。通过在 keadm join 命令中使用新增的 --set 参数,您可以在节点加入时直接设置配置,就像使用 Helm 配置 values.yaml 一样便捷。这一改进大大简化了配置管理过程,提高了效率。下列指令是一个开启 MetaServer 的样例:
keadm join --set modules.metaManager.enable=true,modules.metaManager.metaServer.enable=true,modules.metaManager.remoteQueryTimeout=32
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5574
https://github.com/kubeedge/kubeedge/pull/5564
▍封装Token,CA和证书操作,提高扩展性
在本版本中,我们对 Token 和 Certificate 的处理进行了彻底的整理和优化。原先分散在代码各处的处理逻辑现在已被集中管理,显著降低了维护成本。Token 处理已被集成到一个统一的工具包中,而 Certificate 的处理则通过接口抽象化,不仅支持自建 CA 流程,还适配了通过 Kubernetes CSR 申请 Certificate 的流程。此外,我们的设计允许未来轻松扩展以支持更多类型的私钥和客户自定义的 Certificate。此次重构不仅提升了 Token 和 Certificate 业务代码的可读性和可维护性,而且保持了对外接口的完全向下兼容性,确保了现有系统的无缝升级。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5502
https://github.com/kubeedge/kubeedge/pull/5544
▍升级K8s依赖到v1.29
新版本将依赖的 Kubernetes 版本升级到 v1.29.6,您可以在云和边缘使用新版本的特性。
更多信息可参考:
https://github.com/kubeedge/kubeedge/pull/5656
▍致谢
感谢 KubeEdge 社区技术指导委员会(TSC)、各 SIG 成员对 v1.18.0 版本开发的支持与贡献,未来 KubeEdge 将持续在新场景探索与支持、稳定性、安全性、可扩展性等方面持续发展与演进!
▍相关链接
Release Notes:https://github.com/kubeedge/kubeedge/blob/master/CHANGELOG/CHANGELOG-1.18.md
扫码回复“Mentorship”
进入技术交流群
- 点赞
- 收藏
- 关注作者
评论(0)