边缘云场景中,计算设备往往分布在多个隔离的地域和网络域。因此,集群中的边缘设备往往采用分组管理,导致了不同分组的节点之间以及其下应用之间网络不互通等隔离性问题。为提升云边运维和监控能力,ACK Edge集群引入了云边通信组件Raven。本文介绍Raven组件的基本概念、工作原理以及功能说明。
云边协同架构的跨地域网络通信
ACK Edge集群采用中心云管理边缘IDC以及边缘设备的云边协同架构。分散在边缘侧的IDC以及边缘基础设施通过多种网络形态,例如SD-WAN、VPN、专用通道等,与云上搭建的ACK集群控制面进行交互,从而以云原生的方式实现对大规模边缘设备的管理。
ACK Edge集群以节点池为单位支持节点多地域分布。位于不同节点池的节点处于不同的网络域,无法直接通信,且不同网络域的网段(CIDR)可能出现重叠,节点IP可能存在冲突。
为了解决上述问题,v1.26.3及以上版本的ACK Edge集群提供了Raven组件,以实现云边运维以及容器网络通信。
工作原理
以下图为例,列出了典型的云边协同场景。
节点池A:云节点池。所有节点在一个VPC内,选择一个主机作为网关节点(图例为绿色),采用云上负载均衡SLB暴露至公网。
节点池B:数据中心。节点之间三层网络互通,通过专线方式与云上VPC实现三层网络互通。
节点池C:边缘数据中心。节点之间三层网络互通,选择一个主机作为网关节点(图例为绿色),通过NAT公网网关与云上网关节点构建隧道,所有跨节点池的请求均由网关节点代理通过隧道实现跨域网络通信。
节点池D:一组边缘设备。通常自带公网IP,这些节点均被作为网关节点与云上网关节点构建隧道,从而实现云边通信。
在此云边协同场景,需注意:
针对云上节点,例如节点池A,在创建集群时,需购买至少1台ECS节点,作为云上网关节点。
针对边缘侧主机,例如节点池C,采用公网方式与云上ACK控制面进行交互。在不同节点池的网关节点之间构建加密的网络隧道时,需购买至少一个传统型负载均衡(CLB)以及弹性公网IP(EIP),并配置访问控制ACL白名单以放行边缘侧网关节点。
功能架构
组件构成
Raven组件包含两部分,控制面组件yurt-manager和数据面组件raven-agent-ds。
yurt-manager:在节点池维度划分网络域并且创建Gateway资源。
raven-agent-ds:以DaemonSet的方式部署在集群的每一个节点上,其运行容器名为raven-agent,负责代理构建网关节点间的隧道以及路由配置等。组件采用主机网络模式,且支持多地域主机IP冲突的云边通信。
通信模式
Raven组件支持代理模式和隧道模式两种云边通信模式。
代理模式(推荐使用):构建反向代理通道,实现跨域主机网络通信。网关节点代理跨域的NodeName+Port的七层网络请求。代理模式主要支持API Server、Metrics Server、Prometheus等组件的跨域的主机网络通信,例如
kubectl logs
、kubectl exec
、kubectl attach
、kubectl top
等原生命令。隧道模式:通过构建VPN隧道,实现跨域容器网络通信,主要支持云边容器Metrics监控。
重要目前功能处于公测中。由于跨域通信通过公网传输,可能存在数据丢失风险,请勿传输重要业务数据。如在使用过程中遇到问题或有相关产品建议,请提交工单。
相关文档
如您需要更改通信模式、配置访问控制白名单或使用自定义资源Gateway进行特殊配置,请参见使用云边通信Raven组件。
ACK Edge集群会不断迭代raven-agent-ds组件,详细的变更记录,请参见raven-agent-ds。
- 本页导读 (1)