内容简介:作者 | 新胜 阿里云技术专家导读:OpenYurt 开源两周以来,以非侵入式的架构设计融合云原生和边缘计算两大领域,引起了不少行业内同学的关注。阿里云推出开源项目 OpenYurt,一方面是把阿里云在云原生边缘计算领域的经验回馈给开源社区,另一方面也希望加速云计算向边缘延伸的进程,并和社区共同探讨未来云原生边缘计算架构的统一标准。为了更好地向社区和用户介绍 OpenYurt,我们特地推出系列文章推荐:
作者 | 新胜 阿里云技术专家
导读: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,成功解决边缘自治的需求,具备如下优点:
- 通过重构 kubelet,方便在 kubelet 中集成对端设备的管理能力;
- 通过重构 kubelet,可以对 kubelet 进行轻量化改造。此优点但是也意味着原生 kubelet 功能缺失的问题。
但是也有如下不足:
- 可维护性差: 侵入式修改 kubelet core,跟随社区版本升级非常困难,熟悉kubelet的同学都会有同感,kubelet 组件由于直接负责跟计算,存储,网络交互,所以其代码结构和逻辑异常复杂。因此持续维护一个深度修改过的 kubelet 的工作量可想而知;
- 可扩展性差: 因为自治能力直接做到重构的 kubelet 组件中,这样边缘节点如果其他组件(如网络组件)想复用边缘自治能力将面临重复造轮子的境地;
- 场景耦合更深: 例如在 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
,相信也会让云原生爱好者更为接受。
参考链接
OpenYurt 项目地址: https://github.com/alibaba/openyurt ,欢迎大家参与共建!有疑问可加入钉钉交流群:31993519
课程推荐
为了更多开发者能够享受到 Serverless 带来的红利,这一次,我们集结了 10+ 位阿里巴巴 Serverless 领域技术专家,打造出最适合开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。
点击即可免费观看课程: https://developer.aliyun.com/l ... rless
“ 阿里巴巴云原生 关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 深度解读敏捷宣言
- 深度解读 ReentrantLock 底层源码
- Flink解读 | FLIP深度剖析
- 对话 | 英伟达RAPIDS深度解读:深度学习很重要,但是还不够
- 深度解读 2018 JavaScript 趋势报告(含视频)
- 系列文章深度解读|SwiftUI 背后那些事儿
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Iterative Methods for Sparse Linear Systems, Second Edition
Yousef Saad / Society for Industrial and Applied Mathematics / 2003-04-30 / USD 102.00
Tremendous progress has been made in the scientific and engineering disciplines regarding the use of iterative methods for linear systems. The size and complexity of linear and nonlinear systems arisi......一起来看看 《Iterative Methods for Sparse Linear Systems, Second Edition》 这本书的介绍吧!