深度解读openyurt:边缘自治能力设计解析(代码片段)

author author     2022-11-29     411

关键词:

技术图片

作者 | 新胜 阿里云技术专家

导读:OpenYurt 开源两周以来,以非侵入式的架构设计融合云原生和边缘计算两大领域,引起了不少行业内同学的关注。阿里云推出开源项目 OpenYurt,一方面是把阿里云在云原生边缘计算领域的经验回馈给开源社区,另一方面也希望加速云计算向边缘延伸的进程,并和社区共同探讨未来云原生边缘计算架构的统一标准。为了更好地向社区和用户介绍 OpenYurt,我们特地推出【深度解读OpenYurt】系列文章,本文为系列文章的第二篇,详细介绍了 OpenYurt 的边缘自治能力的设计细节。

系列文章推荐:

OpenYurt介绍

5 月 29 号 OpenYurt 正式开源了。OpenYurt 作为公共云服务 ACK@Edge 的核心框架,已经应用于 CDN、音视频直播、物联网、物流、工业大脑、城市大脑等实际应用场景中,并服务于阿里云 LinkEdge、盒马、优酷、视频云等多个业务或项目中。目前开源的能力包括:

  • 边缘自治能力
  • 原生 K8s 集群一键式转换为边缘集群

项目地址: OpenYurt, 欢迎大家一起来参与开源!

边缘自治特性

1. 特性介绍

将 Kubernetes 系统延展到边缘计算场景,边缘节点将通过公网和云端连接,从公网的不稳定性以及成本等因素考虑,边缘要求断网状态或者弱网状态下边缘业务可以持续运行。我们从 Gartner 的边缘计算报告中提到的边缘计算诉求中,边缘自治也是主要诉求之一:

技术图片

而从 Kubernetes 系统架构来看,主要因为 Slave Agent(Kubelet) 中的容器信息保存在内存中,断网状态下因为无法从云端获取业务数据,如果节点或者 Kubelet 重启,将无法进行业务容器恢复。如下图:

技术图片

2. 边缘自治需要解决的问题

因此边缘自治在 Kubernetes 系统里,需要解决下面的问题:

  • 问题 1: 节点异常或重启时,内存数据丢失,网络断连时业务容器无法恢复;
  • 问题 2: 网络长时间断连,云端控制器对业务容器进行驱逐;
  • 问题 3: 长时间断连后网络恢复时,边缘和云端数据的一致性保障。

1)问题 1 的解决方案

解决方案 1:

重构 kubelet 组件,复用或者参考 kubelet 的 checkpoint 功能,持久化容器业务数据到本地磁盘,网络断连状态下利用本地缓存数据实现业务恢复。

技术图片

该方案经过重构 kubelet,成功解决边缘自治的需求,具备如下优点:

  1. 通过重构 kubelet,方便在 kubelet 中集成对端设备的管理能力;
  2. 通过重构 kubelet,可以对 kubelet 进行轻量化改造。此优点但是也意味着原生 kubelet 功能缺失的问题。

但是也有如下不足:

  1. 可维护性差: 侵入式修改 kubelet core,跟随社区版本升级非常困难,熟悉kubelet的同学都会有同感,kubelet 组件由于直接负责跟计算,存储,网络交互,所以其代码结构和逻辑异常复杂。因此持续维护一个深度修改过的 kubelet 的工作量可想而知;
  2. 可扩展性差: 因为自治能力直接做到重构的 kubelet 组件中,这样边缘节点如果其他组件(如网络组件)想复用边缘自治能力将面临重复造轮子的境地;
  3. 场景耦合更深: 例如在 kubelet 重构中增加了 IOT 设备管理,将可能使 kubelet 和 IOT 场景深度耦合。

解决方案 2 (OpenYurt使用方案):

在边缘节点上增加 web 缓存及请求代理 hub(取名为 YurtHub,商业产品中名为 edge-hub),边缘侧组件(kubelet)和云端通信将经由该组件。YurtHub 相当于带有数据缓存功能的”透明网关“,和云端网络断连状态下,如果节点或者 kubelet 重启,将从 YurtHub 中获取到业务容器相关数据,有效解决边缘自治的问题。

技术图片

相比解决方案 1,有如下优势:

  • kubelet 零修改,意味原生 kubelet 能力天然具备,同时跟随 Kubernetes 版本升级零负担;
  • 可扩展性强,节点其他组件轻松复用 YurtHub;
  • 与 Kubernetes 设计理念契合,YurtHub 非常容易扩展出更多的能力。

当然 OpenYurt 的解决方案,也会面临如下的问题:原生 kubelet 比较 high-weight,在资源紧张场景下应用会比较挑战。目前商业产品中节点规格推荐 2U4G 起步。

2)问题 2 和 3 的解决方案

问题 2 和问题 3 的解决方案相比比较简单,因此不展开做过多的方案说明和比较。

  • 问题 2:原生云端组件 kube-controller-manager 对 Pod 驱逐解决

该问题正是通过开源组件 yurt-controller-manager 中的 Node Controller 来解决的。如 github 主页介绍所示:

技术图片

  • 问题 3: 网络恢复时,边缘和云端网络一致性

Kubernetes 系统中,用户是通过云端对边缘进行管控的(如应用部署,升级,扩缩容等),因此当边缘和云端网络断联时,边缘节点将不会从云端同步用户对节点的管控操作,因此断网期间,只要 YurtHub 保持本地缓存数据和断网时刻一致(即断网期间边缘缓存数据不更新),而网络恢复时,再从云端同步最新数据即可。

后续展开

OpenYurt 刚刚开源,也意味这块工作刚刚开始,相信我们更贴近云原生的架构设计,会支持 OpenYurt 走的更远。同时 OpenYurt 设计理念: Extending your native Kubernetes to edge,相信也会让云原生爱好者更为接受。

参考链接

  1. gartner 报告链接

OpenYurt 项目地址:https://github.com/alibaba/openyurt,欢迎大家参与共建!有疑问可加入钉钉交流群:31993519

课程推荐

为了更多开发者能够享受到 Serverless 带来的红利,这一次,我们集结了 10+ 位阿里巴巴 Serverless 领域技术专家,打造出最适合开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。

点击即可免费观看课程:https://developer.aliyun.com/learning/roadmap/serverless

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

深度解读openyurt:从边缘自治看yurthub的扩展能力(代码片段)

作者|新胜?阿里云技术专家导读:OpenYurt开源两周以来,以非侵入式的架构设计融合云原生和边缘计算两大领域,引起了不少行业内同学的关注。阿里云推出开源项目OpenYurt,一方面是把阿里云在云原生边缘计算领域的经验回馈给... 查看详情

openyurt深度解读|开启边缘设备的云原生管理能力

简介:北京时间9月27号,OpenYurt发布v0.5.0版本。新发布版本中首次提出kubernetes-native非侵入、可扩展的边缘设备管理标准,使Kubernetes业务负载模型和IOT设备管理模型无缝融合。作者|贾燚星(VMware),何淋波(阿里云)北... 查看详情

openyurt深度解读|开启边缘设备的云原生管理能力

简介: 北京时间9月27号,OpenYurt发布v0.5.0版本。新发布版本中首次提出kubernetes-native非侵入、可扩展的边缘设备管理标准,使Kubernetes业务负载模型和IOT设备管理模型无缝融合。作者|贾燚星(VMware),何淋波(阿里云)... 查看详情

应对网络不可靠挑战,用openyurt实现边缘业务连续性

我们今天主要想和大家分享OpenYurt社区针对最后一个问题的思考,以及针对其而设计的OpenYurt边缘自治能力。作者:陈璐、陈东背景OpenYurt项目的使命是将Kubernetes在云端强大的管控能力下放到边缘测,把海量的异构边缘资源纳入... 查看详情

openyurtv1.2新版本深度解读:五步搭建一个openyurt集群(代码片段)

OpenYurt作为业界首个无侵入云原生边缘计算平台近期迎来了v1.2.0版本的发布,在Kubernetes无侵入、云边端全协同、跨网络域通信等特性上持续发力,深入打造OpenYurt+Kubernetes实现海量边缘计算业务的持续交付与高效运维管理能力。... 查看详情

openyurt解读|开启边缘设备的云原生管理能力

...|贾燚星(VMware),何淋波(阿里云)北京时间9月27号,OpenYurt发布v0.5.0版本。新发布版本中首次提出kubernetes-native非侵入、可扩展的边缘设备管理标准,使Kubernetes业务负载模型和IOT设备管理模型无缝融合。同时联合VMware推... 查看详情

openyurtv1.2新版本深度解读:五步搭建一个openyurt集群(代码片段)

OpenYurt作为业界首个无侵入云原生边缘计算平台近期迎来了v1.2.0版本的发布,在Kubernetes无侵入、云边端全协同、跨网络域通信等特性上持续发力,深入打造OpenYurt+Kubernetes实现海量边缘计算业务的持续交付与高效运维管... 查看详情

openyurtv1.2新版本深度解读:聚焦边云网络优化

云原生边缘计算智能开源平台CNCFOpenYurt于近期发布了v1.2版本。OpenYurt是业界首个对云原生体系无侵入智能边缘计算平台,具备全方位的“云、边、端一体化”能力,能够快速实现海量边缘计算业务和异构算力的高效交付... 查看详情

openyurtv1.2新版本深度解读:聚焦边云网络优化

云原生边缘计算智能开源平台CNCFOpenYurt于近期发布了v1.2版本。OpenYurt是业界首个对云原生体系无侵入智能边缘计算平台,具备全方位的“云、边、端一体化”能力,能够快速实现海量边缘计算业务和异构算力的高效交付... 查看详情

深度解密:openyurt边缘容器架构与原理

OpenYurt边缘容器架构与原理        在中心云,Kubernetes容器平台已经成为容器编排和调度的事实标准,但是在边缘计算领域,涉及范围较大且场景复杂,缺乏统一的标准;当前Kubernetes开源社区的主线版本&#x... 查看详情

openyurt开源|云原生生态周报vol.51

...业界要闻1.重磅!阿里巴巴开源首个边缘计算云原生项目OpenYurt北京时间5月29日,在阿里云容器服务ACK@Edge(边缘集群托管服务)发布一周年之际,阿里巴巴正式对外宣布将其核心能力开源,并向社区贡献完整的边缘计算云原生项... 查看详情

openyurt开源|云原生生态周报vol.51

...业界要闻1.重磅!阿里巴巴开源首个边缘计算云原生项目OpenYurt北京时间5月29日,在阿里云容器服务ACK@Edge(边缘集群托管服务)发布一周年之际,阿里巴巴正式对外宣布将其核心能力开源,并向社区贡献完整的边缘计算云原生项... 查看详情

重磅!阿里巴巴开源首个边缘计算云原生项目openyurt

...心能力开源,并向社区贡献完整的边缘计算云原生项目--OpenYurt。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的新型计算平台,并正在成为行业的新焦点。OpenYurt作 查看详情

重磅!阿里巴巴开源首个边缘计算云原生项目openyurt

...心能力开源,并向社区贡献完整的边缘计算云原生项目--OpenYurt。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的新型计算平台,并正在成为行业的新焦点。OpenYurt作 查看详情

重磅!阿里巴巴开源首个边缘计算云原生项目openyurt

...心能力开源,并向社区贡献完整的边缘计算云原生项目--OpenYurt。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的新型计算平台,并正在成为行业的新焦点。OpenYurt作 查看详情

重磅!阿里巴巴开源首个边缘计算云原生项目openyurt

...心能力开源,并向社区贡献完整的边缘计算云原生项目--OpenYurt。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的新型计算平台,并正在成为行业的新焦点。OpenYurt作 查看详情

openyurt联手ekuiper,解决iot场景下边缘流数据处理难题

...成本的降低,也在这波浪潮之下得到快速发展。作者|OpenYurt社区云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近 查看详情

openyurt联手ekuiper,解决iot场景下边缘流数据处理难题

...成本的降低,也在这波浪潮之下得到快速发展。作者|OpenYurt社区云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网 查看详情