今天來介紹Cloud端的元件。在運行KubeEdge時會在雲端節點執行cloudcore、邊緣端節點執行edgecore。在Cloud元件有三個,分別是Cloud Hub、Edge Controller、Device Controller。
負責Kubernetes API server和邊緣端的edgecore的溝通,傳遞新增/刪除/更新物件(資源)訊息。又可細分為底下幾個部分:
為雲端controller與邊緣端溝通的中繼站。提供websocket與QUIC兩種通訊協定作為雲端與邊緣端的通訊方式。使用websocket時透過TCP連接的方式和邊緣端連接,從邊緣端傳來的事件(event)都會被存入channelQ中與通道(channels)對應,並標記一個nodeID。
其主要動作有這些:
管理裝置(device)的元件。在KubeEdge中透過Kubernetes自定義資源(Custom Resource Definitions, CRD)的方式宣告裝置,並將裝置的資料與狀態同步給雲端與邊緣端。這裡的裝置指類似感測器之類的,DHT11、LED等等。
在宣告裝置時需要兩份YAML。一份是Device Model用於描述裝置的性質,有點類似於一份通用的模板;一份是Device Instance用於實例化成真實的物件,透過引用Device Model的定義為個別的裝置做實例化。