OpenYurt v0.7.0 版本解读:无侵入的跨网络域解决方案 Raven

简介: 新版本中重点发布 Raven 解决方案,该方案在对原生的容器网络方案无侵入的状态下,优雅的解决跨公网的云边,边边的 Pod 间通信问题,方便的满足了云边协同场景下对容器网络的诉求。同时在 OpenYurt v0.7.0 中,也完成对 EdgeX Foundry 的 LTS 版本(Jakarta)的支持,以及 K8s 版本 v1.22 的支持。

作者:陈锦赐、何淋波


北京时间 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 解决方案的架构如下图:


1.png


  1. Raven Controller Manager:标准的 Kubernetes 控制器,以 Deployment 的方式部署在部分云上节点中,负责监控边缘节点状态,为每一个边缘节点池选取一个跨边流量的出口作为 gateway node,并能够在当前 gateway node 失活的情况下完成 gateway node 的切换。所有的跨边流量都将由各个边缘节点池的 gateway node 完成转发。


  1. Raven Agent:以 DaemonSet 的方式部署,运行在集群的每一个节点,它根据每个节点的角色(gateway or non-gateway)在节点上配置路由信息或 VPN 隧道信息。


上述两个组件通过一个 Gateway CRD来交换配置路由和建立 VPN 隧道的必要信息,如图 2 所示:


2.png

image.gif

更多细节可以参看项目代码仓库:


  1. Raven Controller Managerhttps://github.com/openyurtio/raven-controller-manager
  2. Raven Agenthttps://github.com/openyurtio/raven


特点与优势


  1. 无侵入:对原生的 K8s CNI 网络无侵入,即对在同一边缘节点池的流量不进行劫持,复用集群本身的 CNI 能力


  1. 安全可靠:使用成熟稳定的 IPsec 技术对跨边流量进行加密


  1. 完善的兼容性:与主流的容器网络方案(如 flannel,calico)可无缝协同运行


  1. 高性能: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

https://github.com/openyurtio/raven-controller-manager/blob/main/pkg/ravencontroller/apis/raven/v1alpha1/gateway_types.go


https://github.com/openyurtio/raven-controller-manager/blob/main/pkg/ravencontroller/apis/raven/v1alpha1/gateway_types.go


[#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)加入钉钉交流群。


3.png


此处,立即了解 OpenYurt 项目!


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
传感器 运维 物联网
蓝牙Mesh网络:连接未来的智能解决方案
蓝牙Mesh网络:连接未来的智能解决方案
316 12
|
4月前
|
监控 安全 网络安全
云计算与网络安全:技术、挑战与解决方案
【8月更文挑战第30天】随着云计算技术的飞速发展,越来越多的企业和个人开始将数据和应用迁移到云端。然而,云计算的普及也带来了一系列网络安全问题。本文将探讨云计算中的网络安全挑战,包括数据泄露、恶意软件攻击和服务中断等,并介绍一些常见的网络安全技术和最佳实践,如加密、访问控制和安全监控等。最后,我们将讨论如何制定有效的网络安全策略,以保护云服务免受威胁。
|
5月前
|
存储 安全 网络安全
云端防御策略:云计算时代的网络安全挑战与解决方案
【7月更文挑战第31天】随着云计算技术的迅猛发展,企业和个人越来越倚重云服务来处理和存储数据。然而,这种转变也带来了新的网络安全挑战。本文将深入分析云计算环境下的网络安全问题,并探讨如何通过先进的安全措施和技术来保护云基础设施免受威胁。我们将讨论从身份验证到入侵检测系统的一系列安全实践,以及如何利用加密技术来保障数据在传输和静态状态下的安全。
53 1
|
5月前
|
云安全 安全 网络安全
云端防御策略:在云计算时代保护网络安全的全新挑战与解决方案
随着云计算技术的飞速发展,企业和个人越来越依赖云服务来处理和存储数据。然而,这种转变也带来了新的安全威胁和隐私问题。本文将探讨云计算环境中特有的网络安全挑战,并介绍一系列创新的安全措施和技术,旨在加强云服务的安全性,确保数据的完整性和保密性。通过案例分析和最新技术趋势的讨论,我们旨在为读者提供深入理解并应对这些挑战的策略。
49 1
|
20天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
39 4
|
23天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全挑战与解决方案
【10月更文挑战第33天】在数字化时代的浪潮中,云计算以其灵活性、可扩展性和成本效益成为企业数字化转型的核心动力。然而,随之而来的网络安全问题也日益突出,成为制约云计算发展的关键因素。本文将深入探讨云计算环境中的网络安全挑战,分析云服务的脆弱性,并提出相应的信息安全策略和最佳实践。通过案例分析和代码示例,我们将展示如何在云计算架构中实现数据保护、访问控制和威胁检测,以确保企业在享受云计算带来的便利的同时,也能够维护其信息系统的安全和完整。
|
1月前
|
存储 安全 网络安全
云计算与网络安全:技术、挑战与解决方案
【10月更文挑战第24天】随着云计算技术的飞速发展,越来越多的企业和个人开始将数据和应用迁移到云端。然而,云服务的安全性问题也日益凸显,成为制约云计算发展的重要因素。本文将深入探讨云计算与网络安全之间的关系,分析当前面临的主要安全挑战,并提出相应的解决方案。通过阅读本文,读者将能够更好地理解云计算环境下的安全问题,并掌握应对策略。
|
2月前
|
存储 监控 安全
解释网络切片:安全挑战与解决方案
解释网络切片:安全挑战与解决方案
61 4
|
4月前
|
存储 安全 网络安全
云计算与网络安全:技术挑战与解决方案
【8月更文挑战第31天】在数字化时代,云计算已成为企业和个人数据存储、处理和分析的首选平台。然而,随着其广泛应用,网络安全问题也日益凸显。本文将探讨云计算中的网络安全挑战,包括数据泄露、服务中断等风险,并介绍如何通过加密技术、身份验证和访问控制等手段来增强云安全。文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全措施。
|
4月前
|
安全 网络安全 云计算
云计算与网络安全:探索云服务的安全挑战与解决方案
【8月更文挑战第24天】在数字化转型的浪潮中,云计算作为一项关键技术,正推动着企业IT架构的革新。然而,随着云服务的广泛应用,网络安全问题也日益凸显,成为制约云技术发展的主要因素之一。本文将深入探讨云计算环境下的网络安全挑战,并结合最新的安全技术,提出有效的防护策略和解决方案。通过分析云服务模式、安全威胁及应对措施,旨在为读者提供一套完整的云计算网络安全指南。