KubeEdge創始人 課後答疑——《KubeEdge雲邊協同&雲端組件設計》

11月21日視頻直播了KubeEdge系列課程的第二課《KubeEdge雲邊協同&雲端組件設計》,課程首先回顧了KubeEdge的雲、邊、端三層總體架構。再針對KubeEdge的雲上部分,分析了雲端組件與K8s Master的關係、各個雲端組件的設計原理,Device API的設計原理、雲邊消息可靠協同的設計原理等,詳情見本次課程回放。node

回放地址:git

媒體中心github

Q1:雲端環境部署好後,狀態處於Notready,雲端檢測邊緣端狀態流程是怎樣的?(k8s版本 1.15.0,docker -ce 1.18,ubuntu 最新版本)docker

A1:雲端檢測邊緣節點狀態的工做流程:1. 邊緣節點經過Edgehub->Cloudhub->EdgeController->KubeAPIserver將節點狀態信息上報到K8s中。以後流程與K8s原生架構一致, 根據上報的狀態信息,K8s經過原生的node-controller來設置node的狀態。ubuntu

雲端環境部署好後,狀態處於Notready,可能的狀況是雲邊的通道(Cloudhub與Edgehub)通訊失敗,考慮網絡地址或證書配置有問題。後端

Q2 :可否簡單對比KubeEdge與國內外的主流同類型平臺產品網絡

A2:架構

1. 同類平臺裏的EdgeX Foundry偏重於端側設備的管理,提供了一些設備接入、邊緣數據傳輸等場景的實現,但不具有云上對邊緣端的應用和設備的管控、雲邊協同等智能邊緣系統的能力。app

2. K3s已在上節課中提到過,K3s選擇的是在邊緣運行整個K8s集羣的方案,不具有云邊協同的能力;其次K3s雖然對K8s作了輕量化,但總體資源要求仍然較高,沒法運行在IOT Hub、工業網關等小型設備中**。**插件

3. KubeEdge打通了雲、邊、端的總體流程:

· 用戶可以在雲上統一管理邊緣節點上的應用、設備

· 提供了雲邊協同的能力,可以同步雲邊的應用、設備的數據

· 針對複雜多樣的邊緣設備,KubeEdge定義了一套通用的設備管理API(K8s CRD)以及設備協議解耦層,用戶能夠方便地使用KubeEdge在雲上管理各類邊緣設備

· 針對雲邊網絡不穩定的狀況,提供了雲邊數據協同的可靠性傳輸、邊緣元數據持久化

· 針對邊緣資源不足的狀況,輕量化裁剪了Kubelet,支持在256MB的小型設備上運行

Q3 :目前KubeEdge支持的設備是哪些?

A3:KubeEdge經過MQTT Broker將設備變化狀態經過邊緣節點上傳到邊緣節點再到雲端。支持MQTT協議的設備能夠直接接入到KubeEdge。

使用專有協議(非MQTT)的設備,可經過協議轉換器Mapper將數據處理轉成MQTT接入KubeEdge。目前KubeEdge針對工業設備場景在DeviceAPI中內置了Bluetooth、Modbus、OPC-UA三種常見通訊協議的設備支持,減小了用戶設備接入的準備工做。對於還沒有內置的協議,用戶也可參考KubeEdge給出的設備管理標準自行實現Mapper來接入邊緣設備。

Q4 :在KubeEdge中,有云、邊、端,那端中軟件服務有嗎?有哪些?硬件又包括哪些設備呢?

A4 :端的硬件、軟件都由用戶提供,只要知足KubeEdge的接入協議標準的設備,均可以接入到KubeEdge平臺。

Q5 :KubeEdge邊緣端的容器監控,哪一個版本可以支持?好比在雲端執行:kubectl top 命令。

A5 :目前已有規劃支持邊緣端基於cAdvisor的容器監控,預計在1.3版本(2020年Q1)中支持。

Q6 :CSI的插件必須部署在雲端嗎?

A6 : K8s社區推薦方案中使用DaemonSet部署的agent組件(node-registrar以及實際的存儲後端)應該部署在邊緣,而管理面組件(external-provisioner、external-attacher、KubeEdge-CSI-driver)要部署在雲端。

Q7 :KubeEdge的API調用方式,是否計劃提供sdk調用方式?

A7 :因爲KubeEdge不屏蔽K8s APIserver,涉及原生功能的API能夠直接使用K8s client-go調用,KubeEdge擴展的API,計劃於1.3版本(2020年Q1)提供SDK

 

全開放的項目,徹底包容的社區,等你來star和貢獻,項目地址:

圖標    kubeedge/kubeedge

相關文章
相關標籤/搜索