文档

跨域运维通信组件Raven概述

更新时间:

ACK Edge集群中,跨域运维通信组件Raven提供了强大的跨网络域通信功能,支持在多地域环境中实现高效的云边运维,本文主要介绍Raven组件的基本概念、工作原理以及功能说明。

背景信息

ACK Edge集群采用了中心云管理边缘IDC以及边缘设备的云边协同架构。在云上搭建Kubernetes控制面,可以使分散在边缘侧的IDC,以及边缘基础设施通过多种网络形态与云上控制面进行交互,从而以云原生的方式实现对大规模边缘设备的高效管理。

在边缘云场景中,计算设备通常分散在多个地域并处于不同的网络域,这也是边缘云场景的典型特征。因此,边缘设备在集群中通常按照分组进行管理,不同分组的节点之间网络互不连通,应用相对独立。如图所示,本地的数据中心或边缘设备通常通过公用网络与阿里云的控制面公网端点建立连接,数据中心、边缘设备之间以及和云上VPC都处于不同的网络平面。

image

组件介绍

ACK Edge支持节点池级别的多地域分布管理,不同节点池中的节点位于不同的网络域,无法直接通信,并且可能存在节点IP冲突的问题。为了在这种场景下实现中心化监控运维,在ACK Edge集群1.26.3及以上版本中提供了Raven Agent组件支持主机、容器级别的监控运维。

工作原理

  • 在每个网络域中选择一个集群内节点作为网关节点;独立的边缘设备本身就是自己的网关。

  • Raven Agent组件将以DaemonSet的形式部署在集群内的所有节点上,并且采用主机网络模式,在网关节点之间构建加密隧道。

  • 云上组件例如APIServer、MetricsServer、Prometheus等会通过网关节点与其他网络域主机、容器、服务进行通信。

image

功能说明

  • 创建ACK Edge集群时,您需要选择并且购买至少1台云上ECS节点,将该节点作为云上网关节点。

  • 如果边缘侧主机采用公网方式与云上ACK Edge控制面进行交互,则需要购买一个传统型负载均衡(CLB)实例、访问控制列表(ACL)实例和弹性公网IP(EIP)实例,用于不同节点池的网关节点之间构建加密的网络隧道。

  • Raven组件提供两种模式跨域通信,代理模式和隧道模式。

    • 代理模式主要支持APIServer、MetricsServer 和 Prometheus等服务的跨域主机网络通信,例如kubectl logs/exec/attach/top等原生命令。

    • 隧道模式主要提供云边容器网络通信,例如Prometheus的容器Metrics数据监控(公测中)。

  • Raven组件支持多地域(多网络域)设备主机IP冲突场景下的网络通信。

组件架构

Raven组件包含两部分,控制面组件ack-edge-yurt-manager和数据面组件raven-agent-ds。Raven组件需要一个自定义集群资源Gateway来记录节点信息和配置信息,相关信息,请参见使用云边通信Raven组件

  • ack-edge-yurt-manager组件会在节点池维度划分网络域并且创建Gateway资源。

  • raven-agent-ds组件会以DaemonSet的方式部署在集群的每一个节点上,它负责代理构建网关节点间的隧道以及路由配置等。

Raven组件支持两种云边通信模式。

  • 代理模式:构建反向代理通道,实现跨域主机网络通信,网关节点代理跨域的NodeName+Port的七层网络请求。

  • 隧道模式:构建VPN隧道,实现跨域容器网络通信,网关节点转发跨网络域的容器网络链路。

代理模式

  • 被选举的边缘网关节点会主动与云上网关节点建立加密的反向通道。

  • 对于单独的节点(Solo Node),其本身就为网关节点,与云上网关节点构建通道。

  • 云上的跨域请求会通过云上网关节点转发到边缘侧网关节点,由该节点代理访问本网络域内的目标服务。

隧道模式

  • 边缘侧被选举的网关节点会主动与云上网关节点构建IPSec加密的VPN隧道。

  • Raven Agent在本网络域内构建 VXLAN网络,将跨域容器网络请求转发到网关节点。

  • 本网络域内的容器间通信通过Flannel VXLAN进行通信。

  • 跨网络域的请求将被拦截,并通过Raven VXLAN传送到网关节点,通过VPN隧道实现通信。

重要

目前功能处于公测中。由于跨域通信通过公网传输,可能存在数据丢失风险,请勿传输重要业务数据。如在使用过程中遇到问题或有相关产品建议,请提交工单

相关文档

  • 如您需要更改通信模式、配置访问控制白名单或使用自定义资源Gateway进行特殊配置,请参见使用云边通信Raven组件

  • ACK Edge集群会不断迭代raven-agent-ds组件,详细的变更记录,请参见raven-agent-ds