OpenYurt邊緣計算云原生項目
OpenYurt 是阿里巴巴開源的首個邊緣計算云原生項目。
該項目主打“云邊一體化”概念,依托原生 Kubernetes 強大的容器編排、調度能力,通過眾多邊緣計算應用場景錘煉,實現了一整套對原生 Kubernetes“零”侵入的邊緣云原生方案,提供諸如邊緣自治、高效運維通道、邊緣單元化管理、邊緣流量拓撲管理,安全容器、邊緣 Serverless/FaaS、異構資源支持等能力。OpenYurt 能幫用戶解決在海量邊、端資源上完成大規(guī)模應用交付、運維、管控的問題,并提供中心服務下沉通道,實現和邊緣計算應用的無縫對接。
OpenYurt 適用于常見的邊緣計算用例,其需求包括:
- 使設備和工作負載之間的長距離網絡流量最小化。
- 克服網絡帶寬或可靠性限制。
- 遠程處理數據以減少延遲。
- 提供更好的安全模型來處理敏感數據。
OpenYurt 技術方案有如下特點:
-
對原生 Kubernetes“零”侵入,保證對原生 K8s API 的完全兼容。不改動 Kubernetes 核心組件,并不意味著 OpenYurt 是一個簡單的 Kubernetes Addon。OpenYurt 通過 proxy node network traffic,對 Kubernetes 節(jié)點應用生命周期管理加了一層新的封裝,提供邊緣計算所需要的核心管控能力;
-
無縫轉換,OpenYurt 提供了工具將原生 Kubernetes“一鍵式”轉換成支持邊緣計算能力的 Kubernetes 集群;
-
低 Overhead,OpenYurt 參考了大量邊緣計算場景的實際需求,在保證功能和可靠性的基礎上,本著最小化,最簡化的設計理念,嚴格限制新增組件的資源訴求。
以上技術特點使得 OpenYurt 能夠:
- 最大程度保證用戶在管理邊緣應用時獲得和管理云端應用一致的體驗;
- 兼容所有云廠商的 Kubernetes 服務,易于集成;
- 保持極低的運維成本。
OpenYurt 開源的核心能力包括:
-
邊緣自治能力:YurtHub 作為節(jié)點上的臨時配置中心,在網絡連接中斷的情況下,持續(xù)為節(jié)點上所有設備和客戶業(yè)務提供數據配置服務。YurtHub 提供了對大量原生 Kubernetes API 的支持,可以在節(jié)點和邊緣單元維度提供“Shadow Apiserver”的能力,在邊緣計算弱網絡鏈接場景的價值尤為突出;
-
邊緣運維通道:在邊緣場景,由于大多數邊緣節(jié)點沒有暴露在公網之上,中心管控無縫和邊緣節(jié)點主動建立網絡鏈接,所有的 Kubernetes 原生應用運維 APIs(logs/exec/metrics)會失去效力;YurtTunnel 通過在管控與邊緣節(jié)點之間建立反向通道,并和節(jié)點的生命周期完整聯動,承載原生運維 APIs 的流量;
-
集群轉換能力:Yurtctl 作為 OpenYurt 官方命令行工具,提供原生 Kubernetes 集群支持邊緣計算 infrastructure 的一鍵式切換。
其它更高級的功能比如邊緣流量管理、單元化管理,部署、區(qū)域自治等將會逐步開源。
OpenYurt 的主要組件包括:
- YurtHub:一個節(jié)點守護程序,用作來自Kubernetes節(jié)點守護程序(Kubelet,Kubeproxy,CNI插件等)的出站流量的代理。它在邊緣節(jié)點的本地存儲中緩存Kubernetes節(jié)點守護程序可能訪問的所有資源的狀態(tài)。如果邊緣節(jié)點處于脫機狀態(tài),則這些守護程序可以在節(jié)點重新啟動時恢復狀態(tài)。
- Yurt控制器管理器:針對不同的邊緣計算用例,它管理一些控制器,例如節(jié)點控制器和單元控制器(即將發(fā)布)。例如,
autonomy即使缺少節(jié)點心跳,也不會從APIServer退出處于該模式的節(jié)點中的Pod。 - Yurt隧道服務器:它
TunnelAgent通過反向代理與在每個邊緣節(jié)點中運行的守護程序連接,以在云站點控制平面和連接到Intranet(將要發(fā)布)的邊緣節(jié)點之間建立安全的網絡訪問。
