登录
主页
开源的边缘容器项目(OpenYurt)
2025-06-19
  
789
深数据
OpenYurt由阿里巴巴云原生团队开发,于2020年5月29日正式开源,作为阿里云边缘容器服务ACK@Edge的核心框架,最初应用于CDN、音视频直播、物联网等场景。项目在2021年加入云原生计算基金会(CNCF)沙箱项目,2023年晋升为CNCF孵化项目,截至2025年仍保持沙箱状态,持续推动云边协同技术标准化。
项目地址:https://github.com/openyurtio/openyurt
一、架构分层与核心组件
OpenYurt 采用经典的云边一体化架构,将 Kubernetes 控制平面部署在云端(或中心机房),边缘节点分布在靠近数据源的边缘站点,通过轻量级组件实现云边能力协同。整体架构分为以下层次:
1. 云端控制平面
Yurt-Manager
扩展 Kubernetes 控制平面的核心组件,包含多个控制器和 Webhook,负责云边协同逻辑:
节点管理:通过 `yurtcsrapprover` 控制器处理 TLS 证书申请,确保边缘节点安全接入。
工作负载管理:`daemonpodupdater` 控制器为 DaemonSet 提供 OTA(空中升级)和 Auto 升级模型,支持边缘节点自主决定升级时机。
流量拓扑管理:`servicetopologycontroller` 配合 YurtHub 的流量闭环功能,实时响应 Service 和 NodePool 变化,确保跨节点池流量仅在本地闭环。
心跳代理:`poolcoordinator` 控制器与边缘节点的 Pool-Coordinator 协同,实现云边断网时的心跳代理上报,避免 Pod 被误驱逐。
YurtAppManager
管理 OpenYurt 定义的自定义资源(CRD),支持边缘负载的单元化部署:
NodePool:按地域或资源特性划分边缘节点池,实现资源分组管理。
YurtAppSet:通过单一模板定义多节点池的工作负载,支持地域差异化配置(如不同节点池的副本数、资源配额)。
YurtAppDaemon:类似 DaemonSet 的节点池级工作负载模型,自动在新增节点池部署实例。
YurtIngress:将 Ingress Controller 部署到指定节点池,实现边缘流量入口的本地化控制。
Raven Controller Manager
负责跨地域网络通信,通过 VPN 隧道建立云边、边边间的第 3 层连接,支持原生 CNI 网络方案(如 Flannel、Calico)的无缝协同。
2. 边缘节点组件
YurtHub
边缘节点的核心代理组件,以静态 Pod 形式运行,提供以下能力:
流量代理与缓存:作为透明网关,代理 Kubelet、KubeProxy 等组件对 API Server 的请求,同时缓存响应数据。当云边断网时,本地缓存支撑边缘业务持续运行(如盒马鲜生的智能货架数据处理)。
数据过滤框架:内置可编程过滤器(如 `servicetopology`、`discardcloudservice`),按需转换云端返回数据,例如限制 Service 访问范围在同一节点池内。
双模式运行:支持 `edge`(边缘节点)和 `cloud`(云端节点)模式,前者启用本地缓存和心跳代理,后者仅转发请求。
Pool-Coordinator
每个 NodePool 自动部署一个实例,联合 YurtHub 实现节点池级自治:
心跳代理:断网时,Kubelet 通过 YurtHub 上报心跳到 Pool-Coordinator,由 Leader YurtHub 代理转发至云端,避免 Pod 驱逐。
流量复用:优化云边通信流量,减少跨区域数据传输。
Raven-Agent
部署在边缘节点,与云端 Raven Controller Manager 配合建立 VPN 隧道,实现跨节点池 Pod 的三层通信(如城市大脑中路口摄像头数据的跨区域调度)。
Node Resource Manager
统一管理边缘节点本地资源(如 LVM、PMem 内存),支持异构硬件架构(x86、ARM、GPU)。
二、关键技术机制
1. 边缘自治实现
本地缓存与断网生存
YurtHub 通过 `TeeReader` 对流式响应数据进行实时缓存,支持 Kubelet 在断网时从本地获取 Pod 配置、Service 端点等关键信息。例如,优酷直播推流节点在弱网环境下仍能保持稳定运行。
心跳代理与 Pod 保护
断网时,Pool-Coordinator 收集节点心跳并通过 Leader YurtHub 代理上报云端,同时为节点添加 `node.beta.openyurt.io/autonomy=true` 污点,阻止新 Pod 调度,确保现有业务不被驱逐。
2. 云边通信优化
反向隧道(YurtTunnel)
由 Server(云端)和 Agent(边缘节点)组成双向加密通道,支持原生运维 API(如日志、命令执行)在弱网环境下的可用性。例如,阿里云 LinkEdge 管理数百万 IoT 设备时,通过 YurtTunnel 实现远程调试。
跨节点池网络(Raven)
每个 NodePool 选举 Gateway 节点建立 VPN 隧道,跨池流量通过 Gateway 转发,池内流量仍使用原生 CNI 方案,平衡通信效率与兼容性。
3. 单元化管理
资源分组与负载调度
NodePool 按地域或业务需求划分边缘节点,YurtAppSet 通过 `nodepoolSelector` 动态匹配节点池,实现应用的跨区域部署。例如,阿里视频云将转码任务调度至就近节点池,降低延迟。
流量闭环控制
YurtHub 的 `servicetopology` 过滤器根据节点池信息重组 EndpointSlice,确保 Service 流量仅在本地池内流通,避免跨池通信费用(如智能电网实时故障检测的本地化处理)。
三、扩展与生态集成
1. 云原生兼容性
零侵入式设计
完全兼容 Kubernetes API,通过 `yurtctl` 工具一键转换原生 K8s 集群为边缘集群,保留与 Prometheus、Istio 等生态工具的集成能力。
异构资源支持
支持 x86、ARM、GPU 等多种架构,已在工业大脑场景中管理数百万核边缘算力。
2. 设备与物联网集成
EdgeX Foundry 对接
通过 YurtIoTDock 组件连接 EdgeX Foundry,提供云原生设备管理能力。例如,工厂设备故障预测系统通过 EdgeX 采集数据,由 YurtAppManager 调度边缘推理任务。
声明式设备管理
定义 `YurtDevice` CRD,实现边缘设备的生命周期管理和数据同步,支持 MQTT、OPC UA 等协议。
3. 多集群与混合云
跨集群协同
YurtAppManager 支持多集群调度,例如优酷直播通过 OpenYurt 统一管理多个边缘集群的内容分发节点。
混合云适配
兼容公有云、专有云、边缘云的混合部署,例如智慧交通项目中云端全局决策与边缘实时处理的结合。
四、主要特点
1. 零侵入式扩展
完全兼容Kubernetes API,无需修改核心组件,可通过工具`yurtctl`一键将原生K8s集群转换为边缘集群,保留与云厂商服务的兼容性。
2. 边缘自治能力
断网生存:YurtHub缓存关键配置,确保节点在离线时仍能处理请求(如盒马鲜生的边缘设备管理)。
节点绑定:支持将特定Pod固定到边缘节点(如智慧交通摄像头的实时处理),避免云端强制迁移。
3. 高效云边协同
轻量通信:通过协议优化降低云边流量消耗,例如CDN场景下内容分发效率提升30%。
多集群管理:支持跨地域节点池的统一调度,如优酷视频直播的分布式转码任务。
4. 异构资源支持
兼容x86、ARM、GPU等多种架构,已在阿里云LinkEdge、工业大脑等场景中管理数百万核边缘算力。
五、不足之处
1. 工具链易用性待提升
尽管社区成立UI/CLI SIG优化体验,但命令行工具(如yurtadm)的功能仍需简化,且缺乏直观的Web管理界面。
2. 高并发场景性能挑战
在管理数万台边缘节点时,控制平面的资源消耗较高,需进一步优化组件间通信效率。
3. 生态工具集成度有限
与Prometheus、Istio等云原生工具的集成方案仍需完善,部分边缘特定需求(如设备管理)依赖第三方插件(如EdgeX Foundry)。
六、应用场景
1. 智能制造
盒马鲜生通过OpenYurt统一调度线下边缘节点(如智能货架、物流机器人),实现“人货场”数据实时处理,降低云端带宽成本30%。
2. 智能交通
城市大脑项目中,OpenYurt将摄像头视频分析任务部署在路口边缘节点,结合云端全局决策,实现毫秒级交通信号优化。
3. 视频与直播
优酷、阿里视频云利用OpenYurt的边缘自治能力,在弱网环境下保障直播推流稳定性,同时通过多集群协同实现跨区域内容分发。
4. 物联网与边缘AI
阿里云LinkEdge基于OpenYurt管理海量IoT设备,结合WasmEdge实现边缘侧轻量级AI推理(如工厂设备故障预测)。
5. 能源与农业
2025年新增场景包括智能电网的实时故障检测、农业无人机的本地化数据处理,利用边缘自治减少对云端的依赖。
结言
OpenYurt通过对Kubernetes的非侵入式扩展,为边缘计算提供了云原生解决方案,尤其在弱网环境下的自治能力和异构资源管理上表现突出。尽管存在工具链和性能挑战,但其在智能制造、交通、视频等领域的成功案例已验证了技术价值。随着社区持续优化和生态扩展,OpenYurt有望成为边缘云原生的主流选择之一。
点赞数:4
© 2021 - 现在 杭州极深数据有限公司 版权所有 联系我们 
浙公网安备 33018302001059号  浙ICP备18026513号-1号