OpenYurt v1.0 正式发布!一文了解三大社区 SIG 重点更新
作者:
何淋波(新胜),阿里云技术专家
陈锦赐(敬易),阿里云开发工程师
熊峰(籁鸣),阿里云技术专家
OpenYurt 定位为云边协同的云原生边缘基础设施,经过 2 年多的发展,社区在云边协同治理,边缘自治,边缘网络与存储,以及 IoT 等方向已经孵化超过 20+子项目,为更好的提升社区协同效率和完善社区治理,OpenYurt 社区成立了 3 个 SIG:ControlPlane, DataPlane, IoT 来统筹管理社区所有项目,同时社区会议也由双周会调整为周会。经过 OpenYurt 社区各个 SIG 的一齐努力,OpenYurt v1.0 版本于北京时间 9 月 9 号正式发布。
v1.0 版本重点关注代码品质提升,降低 OpenYurt 的入门门槛,以及核心组件的性能测试,同时统一 API 的自动化治理。
SIG ControlPlane
重点更新
-
API 治理:NodePool 资源版本升级到
v1beta1
,同时 OpenYurt 所有 API 管理迁移到 openyurtio/api [ 1] ,建议用户通过引用这个项目来使用 OpenYurt 的资源 API -
完善测试覆盖率:使用 CodeCov [ 2] 来跟踪各个项目的 unit test 覆盖率。目前 ControlPlane 各个项目的测试覆盖率基本达到 50%。同时完善了 yurt-app-manager 项目的 E2E 和 Fuzz 测试
-
性能测试:重点关注 Yurthub 组件的性能和云边断网状态下节点重启时 Pod 恢复效率,相关测试报告可以参考:Yurthub 性能测试报告 [ 3] ,节点重启时 Pod 恢复效率测试 [ 4]
-
OpenYurt 安装部署优化: 移除了早期的 K8s 和 OpenYurt 相互转换工具,同时 OpenYurt 安装优化为: OpenYurt Control-Plane 组件安装 [ 5] ,边缘节点接入 [ 6]
未来规划
SIG ControlPlane 仍将继续提升云边协同场景下的治理能力,目前规划的能力包括:
- 支持节点池为入口的运维监控能力,确保云边网络断连状态下,仍可对节点池内资源进行运维监控操作 #775 [ 7]
- 支持节点池维度的 Pod 驱逐管理策略,确保边缘业务的可用性 #779 [ 8]
- 支持云边流量复用能力,大幅降低云边通信的管控流量,以及减少 95%+的list/watch 请求 #778 [ 9]
- 探索边缘业务的新型升级模型,如 DaemonSet 工作负载的 OTA 升级和 Auto 升级 #914 [ 10]
- 基于 kubeadm 重构 yurtadm join command #889 [ 11]
- 优化服务流量拓扑能力,解决 Service 和 NodePool 变化时引发的流量拓扑的更新问题 #871 [ 12]
- 优化基于流水线打包 OpenYurt 集群镜像(基于 sealer) #942 [ 13]
详细规划可以参考:https://github.com/orgs/openyurtio/projects/7/views/1
SIG DataPlane
重点更新
- raven 支持 WireGuard 作为 VPN 后端;相比于 IPSec 作为 VPN 后端有更好的性能
- raven 支持 Calico,适配 Calico 对于单节点多容器网络网段的特性
- raven 支持网络链路最小 MTU 的探测
- 完善测试覆盖率: 使用 CodeCov 来跟踪 raven 和 raven-controller-manager 的 unit test 覆盖率,目前 DataPlane 各个项目中测试覆盖率都有效提升,其中 raven 项目的测试覆盖率已经达到 60%以上
未来规划
SIG DataPlane 仍将继续提升云边协同场景下的网络能力,目前规划的能力包括:
- raven 支持 SLB 作为公网暴露方式,当前仅支持云端 eip 或公网 ip 的方式打通边-边、云边网络 #22 [ 14]
- raven 支持 NAT 穿越,使得边端的网络能够不借助于云端的转发,达到互相打通的效果 #45 [ 15]
- raven 支持接管 yurt-tunnel 的能力,将 OpenYurt 的网络组件统一收口到 raven 项目 #40 [ 16] #41 [ 17]
SIG IoT
重点更新
1. yurt-edgex-manager
- Helm Chart 支持。#17 [ 18]
- 支持 1.22 及以上版本 Kubernetes。#21 [ 19]
- 针对 EdgeX CRD 新增 Webhook 支持。#22
- 优化 EdgeX 微服务的 Service 类型及网络监听方式,避免端口冲突,提升开发测试易用性。#29 [ 20] #37 [ 21]
2. yurt-device-controller
- 支持指定 device、deviceprofile、deviceservice 资源双向同步名称,解决自动通过过程中重复创建资源问题。#50 [ 22]
- 升级 Kube-Builder 版本,调整 Project Layout为Multi-Group,便于后续 Device 相关 API 的 ClientSet 生成。调整 DeviceProfile CRD DeviceResource.Attributes 数据类型,修复支持 2.x 版本 EdgeX 后,make generate 失败问题。#43 [ 23]
- Helm Chart 支持。#57 [ 24]
3. 完善测试覆盖
使用 CodeCov 来跟踪各个项目的 unit test 覆盖率。通过增加单元测试,E2E 测试,持续提升 IoT SIG 中各个项目的测试覆盖率,其中,yurt-device-controller 测试覆盖率提升至 45%。
未来规划(SIG IoT v0.3)
- yurt-edgex-manager 调整为 yurt-iot-manager,提供自动化支持 EdgeX 新 release 版本的能力;统一 IoT SIG 中所有组件的部署,提供更加便捷的安装部署方式;支持组件定制化部署。
- OpenYurt 设备管理 Benchmark。
- 基于 OpenYurt+EdgeX+OpenVINO 的摄像头管理及适配识别 End-to-End 参考架构及实现。
详细规划可以参考:https://github.com/orgs/openyurtio/projects/2/views/1
如果您对于 OpenYurt 有任何疑问,欢迎使用钉钉扫描二维码加入钉钉交流群。
相关链接
[1] openyurtio/api
https://github.com/openyurtio/api
[2] CodeCov
[3] Yurthub性能测试报告
https://openyurt.io/docs/test-report/yurthub-performance-test
[4] 节点重启时Pod恢复效率测试
https://openyurt.io/docs/test-report/pod-recover-efficiency-test
[5] OpenYurt Control-Plane组件安装
https://openyurt.io/docs/installation/summary
[6] 边缘节点接入
https://openyurt.io/docs/installation/yurtadm-join
[7] #775
https://github.com/openyurtio/openyurt/issues/775
[8] #779
https://github.com/openyurtio/openyurt/issues/779
[9] #778
https://github.com/openyurtio/openyurt/issues/778
[10] #914
https://github.com/openyurtio/openyurt/issues/914
[11] #889
https://github.com/openyurtio/openyurt/issues/889
[12] #871
https://github.com/openyurtio/openyurt/issues/871
[13] #942
https://github.com/openyurtio/openyurt/issues/942
[14] #22
https://github.com/openyurtio/raven/issues/22
[15] #45
https://github.com/openyurtio/raven/issues/45
[16] #40
https://github.com/openyurtio/raven/issues/40
[17] #41
https://github.com/openyurtio/raven/issues/41
[18] #17
https://github.com/openyurtio/yurt-edgex-manager/pull/17
[19] #21
https://github.com/openyurtio/yurt-edgex-manager/issues/21
[20] #29
https://github.com/openyurtio/yurt-edgex-manager/pull/29
**[21] #37
https://github.com/openyurtio/yurt-edgex-manager/pull/37
**[22] #50
https://github.com/openyurtio/yurt-device-controller/pull/50
**[23] #43
https://github.com/openyurtio/yurt-device-controller/pull/43
**[24] #57
https://github.com/openyurtio/yurt-device-controller/pull/57
点击此处,立即了解 OpenYurt 项目!