OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的、业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩展 Kubernetes 以无缝支持边缘计算场景。它提供了完整的 Kubernetes API 兼容性;支持所有 Kubernetes 工作负载、服务、运营商、CNI 插件和 CSI 插件;提供良好的节点自治能力,即使边缘节点与云端断网,在边缘节点中运行的应用程序也不会受影响。OpenYurt 可以轻松部署在任何 Kubernetes 集群服务中,让强大的云原生能力扩展到边缘。

头图.png

作者 | 张杰(冰羽)
来源|阿里巴巴云原生公众号

简介

OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的、业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩展 Kubernetes 以无缝支持边缘计算场景。它提供了完整的 Kubernetes API 兼容性;支持所有 Kubernetes 工作负载、服务、运营商、CNI 插件和 CSI 插件;提供良好的节点自治能力,即使边缘节点与云端断网,在边缘节点中运行的应用程序也不会受影响。OpenYurt 可以轻松部署在任何 Kubernetes 集群服务中,让强大的云原生能力扩展到边缘。

OpenYurt v0.3.0 重磅发布

北京时间 2021 年 1 月 8 号,Openyurt 发布 v0.3.0 版本,首次提出节点池和单元化部署概念,新增云端 Yurt-App-Manager 组件,全面提升在边缘场景下的应用部署效率,降低边缘节点和应用运维的复杂度。全面优化 yurthub、yurt-tunnel 核心组件的性能,yurtctl 提供 kubeadm 的 provider,可以快速方便地将由 kubeadm 创建的 Kubernetes 集群转换成 Openyurt 集群。

1.png

1. Yurt-App-Manger 为边缘应用运维而生

经过与社区同学的广泛讨论,OpenYurt 提供 OpenYurt Yurt-App-Manager 组件。Yurt-App-Manager 是 Kubernetes 的一个标准扩展,它可以配合 Kubernetes 使用,提供 NodePool 和 UnitedDeployment 两种控制器,从主机维度和应用维度来提供边缘场景下节点和应用的运维能力。

1)节点池:NodePool

在边缘场景下,边缘节点通常具备很强的区域性、地域性、或者其他逻辑上的分组特性(比如相同 CPU 架构、同一个运营商、云提供商),不同分组的节点间往往存在网络不互通、资源不共享、资源异构、应用独立等明显的隔离属性,这也是 NodePool 的由来。

NodePool 顾名思义,我们可以称之为节点池、节点组或者节点单元。而对具备共同属性的 woker node 进行管理,传统的做法是用 Label 的方式来对主机进行分类管理,但是随着节点和 Label 数量的增加,对节点主机分类运维(例如:批量设置调度策略、taints 等)效率和灵活性会越来越差,如下图所示:

2.png

NodePool 以节点组的维度对节点划分做了更高维度的抽象,可以从节点池视角对不同边缘区域下的主机进行统一管理和运维,如下图所示:

3.png

2)单元化部署:UnitedDeployment

在边缘场景下,相同的应用可能需要部署在不同地域下的计算节点上,以 Deployment 为例,传统的做法是先将相同地域的计算节点设置相同的 Label,然后创建多个 Deployment,每个 Deployment 通过 nodeSelectors 选定不同的 Label,依次来达到相同的应用部署到不同地域的需求。但是这些代表相同应用的多个 Deployment,除了 name、nodeselectors、replicas 这些特性外,其他的差异化配置非常小。如下图所示:

4.png

但是随着地域分布越来越多,以及不同地域对应用的差异化需求,使得运维变得越来越复杂,具体表现在以下几个方面:

  • 镜像版本升级,需要将每个 Deployment 逐一修改。
  • 需要自定义 Deployment 的命名规范,以此来表明相同的应用。
  • 随着边缘场景越来越复杂,需求增多,每个节点池的 Deployment 会有一些差异化的配置,不好管理。

单元化部署(UnitedDeployment)通过更上层次的抽象,对这些子的 Deployment 进行统一管理: 自动创建/更新/删除。如下图所示:

5.png

UnitedDeployment 控制器可以提供一个模板来定义应用,并通过管理多个 workload 来匹配下面不同的区域。每个 UnitedDeployment 下每个区域的 workload 被称为 pool, 目前 pool 支持使用两种 workload:StatefulSet 和 Deployment。控制器会根据 UnitedDeployment 中 pool 的配置创建子的 workload 资源对象,每个资源对象都有一个期望的 replicas Pod 数量。通过一个 UnitedDeployment 实例就可以自动维护多个 Deployment 或者 Statefulset 资源,同时还能具备 replicas 等的差异化配置。如若获取更直观的操作体验,请查看 Yurt-App-Manager 使用教程开发者教程

更多关于 Yurt-App-Manager 的讨论请参考社区 issue 和 pull request:

2. 节点自治组件 yurt-hub

yurt-hub 是运行在 Kubernetes 集群中每个节点上运行的守护程序,它的作用是作为(Kubelet、Kubeproxy、CNI 插件等)的出站流量的代理。它在边缘节点的本地存储中缓存 Kubernetes 节点守护进程可能访问的所有资源的状态。如果边缘节点离线,则这些守护程序可以帮助节点在重新启动后恢复状态,达到边缘自治的能力。在 v0.3.0 版本中,社区对 yurt-hub 做了大量的功能性增强,主要包括:

  • yurt-hub 链接云端 kube-apiserver 时,自动向 kube-apiserver 申请证书,并支持证书过期自动轮转。

  • 在 watch 云端资源时,增加超时机制。

  • 当本地缓存数据不存在时候,优化 response。

3. 云边运维通道组件 yurt-tunnel

yurt-tunnel 包括云端的 TunnelServer 和每个边缘节点上运行的 TunnelAgent 组成。TunnelServer 通过反向代理与在每个边缘节点中运行的 TunnelAgent 守护进程建立连接,并以此在公共云的控制平面与处于企业内网环境的边缘节点之间建立安全的网络访问。在 v0.3.0 版本中,社区对 yurt-tunnel 组件,在可靠性、稳定性、集成测试方面都做了大量的增强。

4. OpenYurt 运维组件 yurtctl

在 v0.3.0 版本中,yurtctl 支持 kubeadm provider,可以快速方便地将由 kubeadm 创建的原生 Kubernetes 集群转换成能够适应边缘弱网环境的 Kubernetes 集群, 极大提升 OpenYurt 的使用体验。

更多实践操作请关注: 《OpenYurt 入门 - 在树莓派上玩转 OpenYurt

未来计划

OpenYurt V0.3.0 版本发布,进一步提升了原生 Kubernetes 在边缘场景的扩展能力,同时在针对边缘场景下的应用部署的问题发布了 Yurt-App-Manger 组件,后续 OpenYurt 社区会在设备管理、边缘运维调度、社区治理和贡献者体验方面持续投入,再次感谢 Intel/Vmware 的同学参与,同时也非常欢迎有兴趣的同学加入参与共建,共同打造一个稳定,可靠的完全云原生的边缘计算平台。

更多社区详情请关注:https://github.com/alibaba/openyurt

相关链接

如果您对于 OpenYurt 有任何疑问,欢迎使用钉钉搜索群号(31993519)加入钉钉交流群。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
机器学习/深度学习 运维 安全
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
101173 8
|
11月前
|
机器学习/深度学习 存储 人工智能
带你读《云原生架构白皮书2022新版》——vivo AI计算平台的ACK混合云实践
带你读《云原生架构白皮书2022新版》——vivo AI计算平台的ACK混合云实践
223 1
|
11月前
|
机器学习/深度学习 存储 人工智能
《云原生架构容器&微服务优秀案例集》——01 互联网——vivo AI 计算平台的 ACK One 混合云实践
《云原生架构容器&微服务优秀案例集》——01 互联网——vivo AI 计算平台的 ACK One 混合云实践
394 0
|
运维 Kubernetes Cloud Native
应用纳管和灰度发布:谐云基于 KubeVela 的企业级云原生实践
谐云通过类比事务的方式,将渲染过程分为正向和逆向,同时将首次纳管和真正的纳管动作进行了分离,完成了平台升级的同时,给应用的纳管行为留下了一定的可操作空间。
应用纳管和灰度发布:谐云基于 KubeVela 的企业级云原生实践
|
存储 运维 Kubernetes
深入浅出边缘云 | 4. 生命周期管理(下)
深入浅出边缘云 | 4. 生命周期管理(下)
185 0
深入浅出边缘云 | 4. 生命周期管理(下)
|
存储 Kubernetes 监控
深入浅出边缘云 | 4. 生命周期管理(上)
深入浅出边缘云 | 4. 生命周期管理(上)
113 0
深入浅出边缘云 | 4. 生命周期管理(上)
|
运维 Kubernetes 监控
以一致的体验交付和管理云原生多集群应用
本文为 KubeCon China 2021 演讲内容作者:孙健波(天元),冯泳(鹿惊)背景随着云原生生态的繁荣,Kubernetes 逐渐成为了基础设施的标准集成界面,越来越多的基础设施能力变成了开箱即用的声明式 API,CRD Operator的普及也让运维能力也逐渐趋向于声明式和自动化。如图 1 所示,从底层基础设施到上层应用开发,如今的 CNCF 生态中有上千个项目。图 1. CNCF l
|
弹性计算 运维 Kubernetes
打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性
SAE 的5大新特性、4大最佳实践,打破了 Serverless 落地的边界,让应用容器化更快捷,让 K8s 落地更简单,让容器 + Serverless + PaaS 得以合三为一,使得技术先进性、资源利用率优化、不变的开发运维体验可以融合在一起。
打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性
|
边缘计算 Kubernetes Cloud Native
OpenYurt 深度解读|开启边缘设备的云原生管理能力
北京时间 9 月 27 号,OpenYurt 发布 v0.5.0 版本。新发布版本中首次提出 kubernetes-native非侵入、可扩展的边缘设备管理标准,使 Kubernetes 业务负载模型和 IOT 设备管理模型无缝融合。
OpenYurt 深度解读|开启边缘设备的云原生管理能力
|
Kubernetes 监控 小程序
打破 Serverless 落地边界,阿里云 SAE 发布5大新特性
微服务场景,开源自建真的最快最省最稳的? 复杂性真的会成为 Kubernetes 的“致命伤”吗? 企业应用容器化,一定得过 K8s 这座“独木桥”吗? Serverless 应用场景单一,多用在逻辑简单的非核心场景:小程序、ETL、定时备份等。Java 微服务真的遥遥无期了? 2021云栖大会现场,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇(叔同)重磅发布了 Serverless 应用引擎 SAE 的产品全新定位和 5大产品新特性,给出了以上问题的答案。
961 1
打破 Serverless 落地边界,阿里云 SAE 发布5大新特性