摘要:解讀業界首個雲原生邊緣計算框架KubeEdge的架構設計,如何實現邊雲協同AI,將AI能力無縫下沉至邊緣,讓AI賦能邊側各行各業,構建智慧、高效、自治的邊緣計算新時代,共同探索智慧邊緣的新篇章。
本文分享自華為雲社群《DTSE Tech Talk | 第63期:KubeEdge架構設計與邊緣AI實踐探索》,作者:華為雲社群精選。
本期直播的主題是《邊雲協同新場景,KubeEdge架構設計與邊緣AI實踐探索》,華為云云原生DTSE技術佈道師Elias,與開發者們交流了雲原生邊緣計算領域的理論與技術研究,跟大家分享了雲原生邊緣計算平臺KubeEdge的核心架構、基於KubeEdge的邊緣AI實現以及多行業、多場景下的實踐經驗與優秀案例,展望了雲原生邊緣計算的未來。
雲原生邊緣計算的行業背景與挑戰
隨著雲原生技術的發展,雲原生正在從資料中心向邊緣延伸,雲原生邊緣計算技術應運而生。雲原生邊緣計算是一種新型的邊緣計算架構,將雲端計算的彈性和可擴充套件性與邊緣計算的低延遲和資料處理能力相結合,基於Kubernetes、Docker等雲原生技術,將計算、儲存、網路等資源部署在靠近資料來源的邊緣節點上,實現資料的實時處理和分析,在物聯網、智慧製造、智慧醫療等領域有著廣闊的應用前景。
雲原生邊緣計算能帶來更高效、更穩定的資源排程與管理,擁有豐富的技術生態整合,帶來經濟利益的提升。但由於邊緣計算細分領域眾多、互操作性差,邊雲通訊網路質量低、時延高,雲原生邊緣計算仍存在很多技術難題與挑戰。
雲原生邊緣計算平臺KubeEdge架構解析
KubeEdge(https://github.com/kubeedge/kubeedge)是CNCF首個雲原生邊緣計算專案,也是業界首個雲原生邊緣計算框架。KubeEdge不斷在邊緣計算領域進行技術探索,例如面向邊緣AI的場景實現了業界首個分散式AI協同框架子專案Sedna;面向邊緣容器網路通訊領域實現Edgemesh;面向邊緣裝置管理領域釋出了雲原生邊緣裝置管理介面DMI,支援邊緣裝置以雲原生的方式接入叢集。除在技術方面不斷探索外,KubeEdge還積極與友商和高校等研究機構合作推動雲原生邊緣計算的案例落地,例如全國高速公路取消省界收費站、智慧汽車等專案。
KubeEdge架構圖如下圖所示。
KubeEdge核心的設計理念是憑藉Kubernetes中的雲原生管理能力,在邊緣計算的場景對原有Kubernetes做了功能增強,主要包含以下三點:
- 雲邊訊息可靠性的增強。雲端向邊端傳送控制命令時會檢測邊緣是否回傳ACK應答,確保訊息下發成功;另一方面,雲端會對控制命令編號,記錄訊息的下發,避免重發訊息可能導致的頻寬衝擊問題。
- 元件的輕量化。為了應對邊緣場景資源受限的問題,KubeEdge在edgecore中整合了一個經過裁剪後輕量級的kubelet,用以管理邊緣應用的容器,目前KubeEdge自身元件佔用已經能夠減少至70M左右。
- 邊緣物理裝置管理。KubeEdge利用裝置管理外掛Mapper以雲原生化的方式納管邊緣裝置。使用者能夠定義裝置配置檔案,以Kubernetes自定義資源的方式雲原生化管理邊緣物理裝置。
KubeEdge核心技術介紹
本次直播主要介紹了KubeEdge邊緣裝置管理與邊緣容器網路這兩個關鍵技術。
KubeEdge使用雲原生的方式管理邊緣裝置,實現了基於物模型的裝置管理API,表現為DeviceModel與DeviceInstance這兩個Kubernetes CRD:
- DeviceModel是同類裝置通用抽象。同一類同一批次的裝置中一些裝置屬性往往是相同的,能夠抽象為DeviceModel進行管理。
- DeviceInstance是裝置例項的抽象。一個DeviceInstance就對應一個實際邊緣裝置,定義了裝置協議、裝置訪問方式等內容。
KubeEdge使用Mapper裝置管理外掛實際管理邊緣裝置。Mapper中整合了裝置驅動,能夠與裝置通訊、採集裝置資料與狀態。Mapper透過實現KubeEdge edgecore中的DMI裝置管理統一介面完成自身向KubeEdge叢集註冊、裝置資料上報的能力。
KubeEdge中已經內建了例如Modbus、Onvif等典型協議的Mapper,也提供Mapper開發框架Mapper-Framework,便於開發者自行開發其他Mapper。Mapper-Framework內建了DMI API以及資料面、管理面的能力,能夠自動生成Mapper工程的模板,使用者只需實現裝置驅動層能力即可實現全量Mapper能力。
在邊緣場景下,邊雲、邊邊網路割裂,微服務之間無法跨子網直接通訊;而且邊緣側網路質量不穩定,節點離線、網路抖動是常態,且邊緣節點常位於私有網路,難以實現雙向通訊。為應對邊緣容器網路通訊存在的問題,KubeEdge構建了資料面元件Edgemesh,為應用程式提供了服務發現與流量代理功能,同時遮蔽了邊緣場景下複雜的網路結構。
Edgemesh的功能特點如下:
- 採用P2P打洞技術。Edgemesh透過P2P打洞技術打通邊緣節點間的網路,讓邊緣節點在區域網內或跨區域網的情況下都能通訊。
- 內部DNS伺服器。Edgemesh內部實現輕量級的 DNS 伺服器,讓域名請求在節點內閉環。這一特性主要針對邊雲連線不穩定的情況,目的是在邊緣節點與雲節點斷開連線後也能正常完成域名解析。
- 輕量級部署。Edgemesh僅以一個Agent的方式部署在節點上,能夠節省邊緣資源。
Edgemesh的結構如下圖所示:
Edgemesh結構主要包括五個部分:
- Proxier: 負責配置核心的 iptables 規則,將請求攔截到 Edgemesh 程序內
- DNS: 內建的 DNS 解析器,將節點內的域名請求解析成一個服務的叢集 IP
- LoadBalancer: 叢集內流量負載均衡
- Controller: 透過 KubeEdge 的邊緣側 Local APIServer 能力獲取 Services、Endpoints、Pods 等後設資料
- Tunnel:利用中繼和打洞技術來提供跨子網通訊的能力
基於KubeEdge的邊緣AI實現
隨著人工智慧技術的發展,將AI能力下沉邊緣側也是目前重要的研究方向,邊緣AI指在邊緣計算環境中實現的人工智慧,允許在生成資料的邊緣裝置附近進行計算,具有實時性、隱私性、降低功耗和頻寬的優勢,本次直播也介紹了基於KubeEdge的邊緣AI實現。
KubeEdge面向邊緣AI場景提出邊緣智慧框架Sedna,是業界首個分散式協同AI開源專案,基於KubeEdge提供的邊雲協同能力,支援現有AI類應用無縫下沉到邊緣,能夠降低構建與部署成本、提升模型效能、保護資料隱私。Sedna擁有以下特點:
- 提供AI邊雲協同框架。Sedna為使用者提供了跨邊雲的資料集和模型管理能力,幫助開發者快速構建自己的AI應用。
- 支援多種邊雲協同訓練和推理模式。當前Sedna擁有協同推理、增量學習、聯邦學習與終身學習四大正規化,分別針對邊側資源受限、模型更新、原始資料不出邊緣和小樣本與邊緣資料異構問題做了改進最佳化。
- 具有開放生態。Sedna支援業界主流AI框架例如TensorFlow, Pytorch, Paddle, Mindspore等,還提供開發者擴充套件介面,能夠支援快速整合第三方演算法。
Sedna也可以理解為雲原生的邊雲協同框架,相容Kubernetes KubeEdge雲原生生態,架構圖如圖所示:
Sedna的架構主要包含以下四個部分:
- Global Manager: 是擴充的Kubernetes的CRD資源,實現的功能主要有AI任務的生命週期管理,比如建立、刪除等
- Local Controller: 輔助雲側做一些邊緣化的自治,並且完成本地模型資料集的管理控制
- Worker: 計算任務和推理任務的物件,對應於Kubernetes表現為部署建立的容器,用來實際進行訓練推理
- Lib庫: 能夠將使用者已有的AI應用改造成邊雲協同的方式
KubeEdge典型案例解讀
KubeEdge目前已廣泛應用於智慧交通、智慧園區、工業製造、金融、航天、物流、能源、智慧 CDN 等行業,本期直播選取多個典型案例進行了解讀,包括基於KubeEdge的多雲原生機器人編排、大規模CDN節點管理平臺、基於KubeEdge/Sedna的樓宇熱舒適度預測控制、基於KubeEdge的智慧園區等。
1、基於KubeEdge的多雲原生機器人編排
目前機器人處於智慧化的初級階段,只能完成特定的一項或幾項任務,不具備理解複雜指令和自主探索解決方案的能力。隨著大語言模型的發展,我們希望藉助大模型的能力助力機器人複雜指令的拆解,實現具身智慧。
基於KubeEdge的多雲原生機器人編排系統架構如圖所示,主要分為雲端大腦、邊側小腦、端側機器人軀幹。雲端大腦部署大語言模型,能夠按照使用者指令自動生成機器人的控制程式碼並下發邊側小腦;邊側小腦具有機器人的一些基本技能,例如3D環境感知、路徑規劃、實時定位與導航,能夠控制機器人完成移動、抓取;端側機器人軀幹具有眾多感測器,能夠向雲端大腦、邊側小腦反饋狀態,更新系統。
當前基於KubeEdge的多雲原生機器人編排實現了基於多機器人協調的NLP驅動的任務理解和任務執行功能,能將雲邊端系統端到端部署週期縮短30%,機器人效率提高 25%,新型機器人整合周期由數月縮短至數天。
2、基於KubeEdge的大規模CDN節點管理平臺
CDN節點指距離終端使用者接入具有較少中間環節的網路節點,具有較好的響應能力和連線速度。CDN節點中往往儲存了網站和應用程式的靜態內容,能夠提高訪問速度;同時,CDN節點在物理佈局上通常具有離散分佈的特點,且網路連線可能不穩定。
基於KubeEdge的大規模CDN節點管理平臺架構如下圖所示。需要在各區域中心及資料中心建若干個Kubernetes叢集,這些中心具有全量Kubernetes能力,包括負載均衡、網路外掛相關能力,能夠滿足業務部署在中心雲的需求,例如區域的日誌匯聚、監控匯聚、映象分發加速的能力,除了傳統Kubernetes元件,在區域中心還部署了KubeEdge的雲側管理面元件cloudcore,透過cloudcore納管邊緣的CDN節點,邊緣CDN節點全部以edgecore的形式,就近接入區域雲端。
基於KubeEdge實現的大規模CDN節點管理平臺具有邊緣自治、智慧化排程等多種優勢,在邊緣節點斷連後容器無需重建,服務不中斷,並且能提供節點間親和性排程以及應用間親和性排程,已經成功管理1W+邊緣CDN節點,助力直播加速、影片點播加速。
3、基於KubeEdge/Sedna的樓宇熱舒適度預測控制
智慧樓宇是智慧城市的重要組成部分,智慧樓宇的自控系統通常位於邊緣。熱舒適度被定義為樓宇中的人對環境冷熱的滿意程度,這是一種定量的評估指標,能夠把室內冷熱環境引數的物理設定與人的主觀評估聯絡起。準確的熱舒適度預測結果能夠幫助管理人員探索舒適度最佳的樓宇溫度調整策略。但由於人員個體差異、房間與城市差異,樓宇熱舒適度預測具有突出的資料異構與小樣本問題。
基於Sedna的邊雲協同終身學習的熱舒適預測控制具有云邊協同和終身學習預測這兩個優勢,設計圖如下圖所示。雲側Sedna知識庫會利用多地點多人員的歷史資料集進行初始化,向邊側應用提供推理更新介面,實現雲邊協同推理;對於推理任務的複雜性,我們採用終身學習的機制,邊端推理時面向已知任務直接推理,未知任務則聯合知識庫推理,並會對未知任務機進行學習,更新知識庫。實驗表明,熱舒適度預測在KotaKinabalu資料集中預測率相對提升24.04%,能夠為樓宇的溫度調整策略提供依據。
更多KubeEdge應用案例,可訪問直播回放連結回顧:https://bbs.huaweicloud.com/live/DTT_live/202407241630.html
作為業界首個雲原生邊緣計算社群,KubeEdge社群生態蓬勃發展,社群已吸引來自全球80+貢獻組織的1600+貢獻者, GitHub Star 超過7.5 k。KubeEdge最新版v1.18.0現已釋出,新版本中,路由器管理器支援高可用性(HA)、增強CloudCore Websocket API 的授權,支援裝置狀態上報,Keadm 工具增強功能, 增強封裝Token、CA、證書操作功能,歡迎前往社群下載體驗https://github.com/kubeedge/kubeedge/releases/tag/v1.18.0
KubeEdge網站: https://kubeedge.io
GitHub地址: https://github.com/kubeedge/kubeedge
Slack地址 : https://kubeedge.io/docs/community/slack
每週三下午四點社群例會 : https://zoom.us/j/4167237304
點選關注,第一時間瞭解華為雲新鮮技術~