在ACK Edge集群中,跨域運維通信組件Raven提供了強大的跨網絡域通信功能,支持在多地域環境中實現高效的云邊運維,本文主要介紹Raven組件的基本概念、工作原理以及功能說明。
背景信息
ACK Edge集群采用了中心云管理邊緣IDC以及邊緣設備的云邊協同架構。在云上搭建Kubernetes控制面,可以使分散在邊緣側的IDC,以及邊緣基礎設施通過多種網絡形態與云上控制面進行交互,從而以云原生的方式實現對大規模邊緣設備的高效管理。
在邊緣云場景中,計算設備通常分散在多個地域并處于不同的網絡域,這也是邊緣云場景的典型特征。因此,邊緣設備在集群中通常按照分組進行管理,不同分組的節點之間網絡互不連通,應用相對獨立。如圖所示,本地的數據中心或邊緣設備通常通過公用網絡與阿里云的控制面公網端點建立連接,數據中心、邊緣設備之間以及和云上VPC都處于不同的網絡平面。
組件介紹
ACK Edge支持節點池級別的多地域分布管理,不同節點池中的節點位于不同的網絡域,無法直接通信,并且可能存在節點IP沖突的問題。為了在這種場景下實現中心化監控運維,在ACK Edge集群1.26.3及以上版本中提供了Raven Agent組件支持主機、容器級別的監控運維。
工作原理
在每個網絡域中選擇一個集群內節點作為網關節點;獨立的邊緣設備本身就是自己的網關。
Raven Agent組件將以DaemonSet的形式部署在集群內的所有節點上,并且采用主機網絡模式,在網關節點之間構建加密隧道。
云上組件例如APIServer、MetricsServer、Prometheus等會通過網關節點與其他網絡域主機、容器、服務進行通信。
功能說明
創建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。