KubeEdge v0.3發佈:把邊緣設備管理能力帶到Kubernetes

項目的地址(歡迎Star、Folk,各類Issue、PR):git

圖標     kubeedge/kubeedge github

 

北京時間5月29日,KubeEdge發佈了第三個特性版本v0.3.0。性能優化

本次發佈的新版本包含了邊緣設備管理、一鍵安裝部署工具、端到端性能測試框架,以及21處問題修復。做爲v0.3版本的關鍵新特性,邊緣設備管理能力的引入使得KubeEdge能夠完整打通各種雲、邊、設備協同的場景;KubeEdge installer的加入大大簡化了安裝部署一套完整KubeEdge集羣的難度;端到端性能測試框架的實現則爲後續的規模測試及性能優化工做奠基了基礎。網絡

接下來本文將逐一解讀KubeEdge v0.3的核心特性。架構

 

邊緣設備管理app

在介紹KubeEdge的邊緣設備管理能力以前,先簡單瞭解下KubeEdge邊緣設備管理與Kubernetes設備插件的區別。框架

Kubernetes提供的設備插件(device plugin)框架, 旨在經過Kubelet管理「綁定」在節點上的硬件(加速器),例如:GPU、FPGAs、InfiniBand等,爲Pod中的容器應用提供更強的計算和網絡性能。而KubeEdge的設備管理關注的是與邊緣通訊的外部設備,例如:藍牙終端、智能傳感器、工業網關等,這部分功能由KubeEdge開發的edge_core負責。工具

 

邊緣設備狀態管理operator性能

KubeEdge的設備管理採用的是Kubernetes官方推薦的Operator方式,並實現了設備孿生(device twin)。設備管理Operator的核心是Device CRD和Device Controller,其中Device CRD用來描述設備的狀態等元數據,Device Controller運行在雲上,負責在雲和邊之間同步設備狀態的更新(包括設備實際狀態和用戶設定的指望狀態)。測試

KubeEdge設備管理的工做流程以下圖所示:

 

 

邊緣設備驅動統一接入接口:Mapper

Device Controller會把用戶設定的設備孿生指望狀態和配置下發到邊緣,而在邊緣的組件則要接收並處理這些信息。爲了不edge_core引入量處理邊緣設備通訊的代碼,同時保持整個項目良好的易定製性,KubeEdge設計了一個邊緣設備驅動統一管理引擎Mapper。

Mapper之於KubeEdge的做用如同CRI之於Kubernetes,只是CRI做爲Kubernetes定義的容器接口與底層容器引擎打交道,而Mapper做爲一個開放接口方便不一樣的設備協議接入KubeEdge這個邊緣計算平臺。

KubeEdge v0.3中內置支持的設備協議是藍牙,後續版本將逐步增長對OPC-UA和Modbus的支持。有了Mapper的解耦層,用戶能夠方便地根據實際須要開發本身的Mapper來實現與特定設備的通訊,同時社區也歡迎廣大開發者貢獻更多的協議實現。

Mapper的架構以下圖所示:

 

具體的Mapper實現,例如Bluetooth Mapper,經過訂閱MQTT broker的消息得到用戶從雲端下發的設備指望狀態,而後經過設備驅動程序控制設備的開、關等動做。

Bluetooth Mapper除了可以響應雲端設備狀態更新,還能從藍牙設備接收數據並將原始數據轉換成應用程序可以直接使用的數據發佈給MQTT broker。這樣運行在邊緣節點上的應用程序只需訂閱MQTT broker的相應消息topic即可得到通過處理的設備數據。

將來,KubeEdge還將引入data management框架統一處理邊緣側收集的數據。

 

一鍵部署工具KubeEdge installer

KubeEdge v0.3發佈了一鍵部署工具KubeEdge installer,完全代替了以前的安裝腳本,下降了用戶安裝和管理KubeEdge集羣生命週期的難度。KubeEdge installer分爲cloud和edge兩類子命令,分別對應於雲端管理面和邊緣節點的管理。

當前實現的雲上節點命令有:

  • # kubeedge init:初始化一個KubeEdge管理面,包括安裝一個Kubernetes集羣和edge-controller。

  • # kubeedge reset:Kubeedge init的逆操做。

當前實現的邊緣節點命令有:

  • # kubeedge join: 初始化一個KubeEdge節點並加入到KubeEdge管理面。

  • # kubeedge reset: KubeEdge join的逆操做。

 

端到端性能測試框架

KubeEdge支持管理海量的邊https://kubeedge.io緣節點和設備,v0.3發佈的端到端性能測試框架可以用於準確地發現系統的時延、吞吐、資源消耗等性能瓶頸。

性能測試部署以下圖所示:

當準備進行性能測試時,測試客戶端經過向雲端的Kubernetes master下發測試負載,包括:Job、Deployment、Device CRD等,同時經過觀測KubeEdge集羣返回的Event計算系統的時延、吞吐率、CPU/內存使用等性能數據。

隨着v0.3版本的發佈,KubeEdge提供了完成打通雲、邊緣、設備三者協同的最小功能集,後續版本將提供邊緣站點(EdgeSite)、雲-邊/邊-邊通訊(EdgeMesh)等高級特性。更多詳情請關注:

https://kubeedge.io

相關文章
相關標籤/搜索