OpenYurt v0.7.0 版本解读:无侵入的跨网络域解决方案 Raven
作者:陈锦赐、何淋波
北京时间 5 月 27 号,OpenYurt 发布 v0.7.0 版本。
新版本中重点发布 Raven 解决方案,该方案在对原生的容器网络方案无侵入的状态下,优雅的解决跨公网的云边,边边的 Pod 间通信问题,方便的满足了云边协同场景下对容器网络的诉求。同时在 OpenYurt v0.7.0 中,也完成对 EdgeX Foundry 的 LTS 版本(Jakarta)的支持,以及 K8s 版本 v1.22 的支持。
无侵入的单集群跨边缘容器网络打通方案 Raven
在 OpenYurt 集群中提供包括跨公网边-边、边-云之间的单集群容器网络联通能力,其主要技术原理是通过公网加密隧道让不同的边缘节点上的容器网络相互打通,从而实现跨边的业务流量或者管控流量的通信。并且兼容当前主流的容器网络解决方案(如 flannel,calico 等),即 NodePool 内的通信仍使用原生容器网络方案。
项目背景
在边缘计算中,边-边和边-云通信是常见的网络通信场景。对于 OpenYurt 项目,我们已经引入了 YurtTunnel 来应对边云协作中的运维和监控的网络问题。它提供了对边缘节点执行 kubectl exec/logs 并从边缘节点获取监控指标的功能。但是 YurtTunnel 解决的问题只是边云通信的一个子集,在 v0.7.0 版本以前还没有边-边、边-云容器网络通信的解决方案。
即在某些情况下,OpenYurt 集群中不同物理区域的 Pod 可能需要使用 Pod IP、Service IP 或 Service name 与其他 Pod 通信,虽然这些 Pod 位于单个 K8s 集群中,但它们处于不同物理区域(网络域)中无法直接通信。
设计理念及架构
Raven 项目从需求讨论,到方案设计,以及最后的落地实现等都是基于开源社区成员的协同下完成的,整体设计理念主要有:
- 无侵入:对原生的 K8s CNI 网络无侵入,仅劫持跨边流量进行转发
- 与主流的容器网络方案(如 flannel, calico)可无缝协同运行
- 高安全性:确保跨公网通信的数据安全
同时 Raven 解决方案的架构如下图:
-
Raven Controller Manager:标准的 Kubernetes 控制器,以 Deployment 的方式部署在部分云上节点中,负责监控边缘节点状态,为每一个边缘节点池选取一个跨边流量的出口作为 gateway node,并能够在当前 gateway node 失活的情况下完成 gateway node 的切换。所有的跨边流量都将由各个边缘节点池的 gateway node 完成转发。
-
Raven Agent:以 DaemonSet 的方式部署,运行在集群的每一个节点,它根据每个节点的角色(gateway or non-gateway)在节点上配置路由信息或 VPN 隧道信息。
上述两个组件通过一个 Gateway CRD 来交换配置路由和建立 VPN 隧道的必要信息,如图 2 所示:
更多细节可以参看项目代码仓库:
- Raven Controller Manager:https://github.com/openyurtio/raven-controller-manager
- Raven Agent:https://github.com/openyurtio/raven
特点与优势
-
无侵入:对原生的 K8s CNI 网络无侵入,即对在同一边缘节点池的流量不进行劫持,复用集群本身的 CNI 能力
-
安全可靠:使用成熟稳定的 IPsec 技术对跨边流量进行加密
-
完善的兼容性:与主流的容器网络方案(如 flannel,calico)可无缝协同运行
-
高性能:Raven 在跨边流量的处理上会尽量利用边缘本身的网络能力,尽可能地创建边-边的 VPN 隧道,不会把所有的跨边流量都通过云上中心端转发
支持 EdgeX Foundry LTS 版本
EdgeX Foundry Jakarta 是第一个 LTS 版本,被广泛认为是一个产品版本。在 OpenYurt v0.7.0 中已经完成了 EdgeX Foundry Jakarta 版本的支持工作。由于 EdgeX Jakarta 版本切换到 API v2,因此 OpenYurt 优化了与 EdgeX 的适配逻辑,同时 CRD 也有部分优化。具体可以参照 [#30]
支持 Kubernetes v1.22 版本
OpenYurt 为适配 Kubernetes v1.22,主要工作包括: v1beta1.CSR 被资源移除以及 CSR.signerName 校验更新后,OpenYurt 中有申请证书的各组件做了对应适配。同时 Service Topology 特性适配 v1.EndpointSlice 资源的请求,以及云边隧道 YurtTunnel 针对 StreamingProxyRedirects featuregate 被移除的适配。具体参照 [#809]
支持 IPv6 网络
IPv6 网络首先需要 CNI 容器网络支持,在 OpenYurt 中主要 Yurthub 和 YurtTunnel 中涉及到网络配置,证书申请等相关处理完成相关适配。具体参考 [#842]
未来计划
OpenYurt v0.7.0 版本重点推出了跨网络域的解决方案 Raven,同时也推出了 EdgeX Foundry LTS 版本支持,K8s v.122 支持,IPv6 网络等多方向的能力。再次感谢来自 VMware,Intel,电信天翼云,深信服,新华智云,浙大,京东,美团,字节,阿里云等数十位同学的大力贡献。
目前 OpenYurt v0.8.0 版本开发正在稳步推进,同时为更好的支持社区发展,OpenYurt 社区成立了 ControlPlane, DataPlane,IoT 等 SIG 来协同社区 15+个项目。同时也欢迎有兴趣的同学来参与共建,共同探索一个稳定,可靠的无侵入云原生边缘计算平台的事实标准。
OpenYurt v0.8.0 版本的 roadmap 请关注:https://github.com/openyurtio/openyurt/blob/master/docs/roadmap.md
参考链接:
OpenYurt Release v0.7.0
https://github.com/openyurtio/openyurt/releases/tag/v0.7.0
OpenYurt v0.7.0 CHANGELOG
https://github.com/openyurtio/openyurt/blob/master/CHANGELOG.md#v070
OpenYurt v0.8.0 RoadMap
https://github.com/openyurtio/openyurt/blob/master/docs/roadmap.md#v080-roadmap
Gateway CRD
[#30]:
https://github.com/openyurtio/yurt-device-controller/pull/30
[#809]:
https://github.com/openyurtio/openyurt/pull/809
[#842]:
https://github.com/openyurtio/openyurt/pull/842
如果您对于 OpenYurt 有任何疑问,欢迎使用钉钉扫描二维码或者搜索群号(31993519)加入钉钉交流群。
戳此处,立即了解 OpenYurt 项目!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于阿里云 ASK 的 Istio 微服务应用部署初探
作者:王飞龙(不物) 目前 Kubernetes 已经成为业界容器编排系统的事实标准,基于 Kubernetes 的云原生应用生态(Helm, Istio, Knative, Kubeflow, Spark on Kubernetes 等)更是让 Kubernetes 成为云操作系统。在这样的背景下,Serverless 容器成为现有 Container as a Service 的进化方向之一,一方面通过 Serverless 方式根本性解决了Kubernetes 自身的管理复杂性,让用户无需受困于Kubernetes 集群容量规划、安全维护、故障诊断;另一方面也进一步释放了云计算的能力,将安全、可用性、可伸缩性等需求由基础设施实现。 ASK 作为阿里云 Serverless Kubernetes 平台 [ 1] ,不仅有免运维、秒级弹性、超大 Pod 容量、弹性预测等重磅能力,更重要的是它依然是一个标准 Kubernetes 平台。 本文会通过在 ASK 上试用 Istio 部署微服务应用的方式,来验证 ASK 对标准 Kubernetes 的兼容性。Istio 作为 Servic...
- 下一篇
手把手推导分布式矩阵乘的最优并行策略
作者|郭冉、李一鹏、柳俊丞、袁进辉 常用深度学习框架的自动并行机制还不够完善,还需要用户根据经验来配置并行方式,这给开发者带来了不小的智力负担。因此,实现自动最优并行就成为一个有趣的课题。 矩阵乘是深度学习最常用的底层计算原语,譬如卷积算子,注意力机制都是通过矩阵乘来实现的,所以大规模神经网络的并行实现大多数时候也是在处理分布式矩阵乘。本文就以如何最优地实现分布式矩阵乘为例来展示自动并行的解决思路。 1 如何实现最优的分布式矩阵乘? 通过上一篇文章《手把手推导 Ring all-reduce 的数学性质》我们知道了常见集群通信操作的通信量和所需通信时间的数学性质,本文来探讨怎么使用这些性质来选择最优的并行矩阵乘策略。 在《如何超越数据并行和模型并行:从GShard 谈起》一文中,我们介绍了如何从一般的数据并行、模型并行提炼出最一般性的算子并行的抽象表示SBP。 假设我们希望在4张显卡(2台服务器,每台服务器上有2张显卡)上完成一个矩阵乘 X x W=Y ,也就是,其中 X 和 W 按照特定的SBP签名被摆放(place)到4张显卡上,那么将有多个方式实现分布式矩阵乘,它们在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果