暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

『阿里云』何淋波:OpenYurt助力云边高效协同

508

2022

全球分布式云大会

- 深 圳 站 -


2022全球分布式云大会·深圳站于12月21日正式召开,全球分布式云联盟携手阿里云、腾讯云、华为云、天翼云、浪潮云等联盟成员,共同打造属于分布式云计算的年终科技盛典,深度总结分布式云计算发展至今取得的科技实践成果,立足深圳、辐射华南、影响全国,以分布式云计算筑牢数字化转型的基石底座,擘画数字化深水区新商业版图!


在12月22日下午举办的“云原生开源生态及实践论坛”上,阿里云容器服务团队技术专家 何淋波发表了题为《OpenYurt助力云边高效协同》的精彩演讲,本文为演讲内容文字实录。



一 项目背景


云边协同场景在物流、IoT、CDN等业务领域较为常见,通常都有构建云边端协同的容器管理平台的需求。容器管理平台一般具有以下业务特征:边缘侧服务器部署位置离端设备较近,因此其上运行的业务应用(容器化)可以快速响应端设备的请求;边缘侧服务器部署位置有比较明显的地域属性,但是其上运行的一般是同类型的业务应用;边缘侧服务器通过公网与云端连接,无法充分保证云边网络连接的稳定性,同时云端无法直接访问边缘节点;用户可以从云端管控对边缘资源和容器化业务进行统一管控。


针对上述业务诉求,构建云边端协同的容器化管理系统,业界普遍以Kubernetes作为首选。目前,Kubernetes在云边协同场景落地主要面临四大关键挑战:多地域业务管理、业务连续性保障、跨网络域通信和云原生设备管理。


二 架构及重点特性


OpenYurt架构


在云端,蓝色的部分是原生Kubernetes组件,橙色部分部署的是OpenYurt的管控组件;在边缘侧,每个节点蓝色的部分也是原生Kubernetes组件,橙色部分是OpenYurt节点侧组件,每个地域内部的节点形成节点池。OpenYurt的整体设计理念,就是对Kubernetes零修改,同时保持和主流云原生生态兼容。


OpenYurt提供多地域应用管理,包括节点池管理、单元化应用部署模型、Service流量路由拓扑管理、OTA,Auto升级模型。在边缘自治能力方面,OpenYurt拥有边缘业务自愈能力,支持节点故障时业务自动重建和节点强绑定业务管理。在跨网络域通信方面,OpenYurt拥有实时流式通信的运维通道、云边/边边通信的低数据通道,与原生K8s CNI网络无缝融合。在云原生设备管理方面,OpenYurt与业界主流IoT解决方案(EdgeX Foundry)无缝融合,拥有丰富的云原生设备管理模型。


多地域应用管理


在边缘计算场景下,边缘节点通常具备很强的区域性、地域性、或其他逻辑上的分组特性;相同的应用和镜像,可能需要部署到不同的节点池中;原生Kubernetes Service的后端端点扁平分布在集群中任意节点,而不少场景下,用户期待Service流量只访问同一地域的后端端点。


解决方案


节点单元化:以节点池(NodePool)视角对不同边缘区域下的主机进行统一管理和运维;


应用的单元化部署:使用新的单元化部署模型(YurtAPPSet、YurtAPPDaemon)将用户工作负载部署在不同的节点池中,业务的实例数、版本都可以按照节点池的维度进行统一管理;


流量的单元化:Service流量路由拓扑,通过简单配置来限制Service后端Endpoint的访问范围,例如只访问同一节点池的Endpoint,或只访问节点的Endpoint。


边缘自治能力


边缘自治的主要能力体现在云边网格弱连接或断连状态下,边缘业务或者节点重启时,业务可以自愈;单个地域内,用户希望只有在节点故障的情况下,业务pod才会进行迁移和重建;Solo的边缘节点,容器业务需要和节点强绑定,业务pod不会发生迁移。


解决方案


边缘节点上引入YurtHub组件,无感知接管云边之间的管控流量,同时本地缓存边缘业务的Meta数据。云边网络断连状态下,YurtHub利用本地缓存的Meta数据恢复边缘业务。


Pod可用策略自由配置:新增节点可用和节点池可用两种策略,节点可用策略:代表业务Pod与运行节点强绑定,整个生命周期内Pod不迁移。节点池可用策略:代表节点故障时,在节点池内其他正常节点上重建Pod。


云端YurtControllerManager组件根据Pod的可用策略,同时根据节点心跳状态(网络故障节点由节点池内Leader YurtHub代理上报心跳),联合决定Pod的驱逐和重建


跨网络域通信


需要跨网络域通信的主要原因是云端无法直接访问节点,因此无法往边缘下发运维命令,也无法收集边缘的监控数据;跨云边、跨边边的不同业务之间需要连通,如边缘节点上的处理结果需要上传回云端Pod。


解决方案


Raven Controller Manger组件:管理每个节点池中的Gateway节点。


Raven agent组件:每个节点上都部署一个raven agent实例,其中每个节点池有一个raven agent充当Gateway,Gateway节点之间通过VPN和TLS连接。


通过优先路由规则,跨节点池的流量会forward到Gateway节点,通过Gateway节点与其他节点池中Pod通信,节点池内流量还是通过原始CNI,保持CNI兼容性。


云原生设备管理


K8s业务负载模型与IoT设备管理模型无法缝合,以Kubernetes native方式管理边缘设备。融合方案可扩展,不绑定特定IOT解决方案。


解决方案


引入3个CRD资源——DeviceProfile:描述不同类型的设备;DeviceService:描述设备和集群的接入方式;Device:定义设备自身特性。


DeviceController负责CRD资源与IoT系统与设备的映射;


联合VMware推动EdgeX Foundry解决方案集成。



三 社区介绍



OpenYurt 基于原生 Kubernetes 构建,由阿里云于 2020 年 5 月开源,并于同年 9 月份入选 CNCF SandBox 项目,是业界首个对 Kubernetes 无侵入的边缘计算云原生开源平台,目前正在进行incubation的申请。


社区在云边协同治理,边缘自治,边缘网络与存储,以及 IoT 等方向,OpenYurt已经孵化超过 20+子项目,为更好的提升社区协同效率和完善社区治理,OpenYurt 社区成立了 3 个 SIG:ControlPlane, DataPlane, IoT 来统筹管理社区所有项目。


目前,OpenYurt拥有社区Maintainers 10人,来自阿里云、VMware、英特尔、微软、字节跳动、浙江大学、中国电信等知名企业和机构;社区Member 60人,来自30多家不同公司。希望借助本次分享,让更多朋友能够共同参与到OpenYurt开源社区贡献中来,共同助力云边高效协同。





-   媒 体 矩 阵   -

文章转载自亚太CDN产业联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论