前文回顧
- 大規模 IoT 邊緣容器集羣管理的幾種架構-0-邊緣容器及架構簡介
- 大規模 IoT 邊緣容器集羣管理的幾種架構-1-Rancher+K3s
- 大規模 IoT 邊緣容器集羣管理的幾種架構-2-HashiCorp 解決方案 Nomad
- 大規模 IoT 邊緣容器集羣管理的幾種架構-3-Portainer
📚️Reference:
IoT 邊緣計算系列文章
Kubeedge
簡介
KubeEdge 是一個開源系統,用於將本地容器化應用協調能力擴展到邊緣的主機。它建立在 kubernetes 之上,爲網絡、應用部署和雲與邊緣之間的元數據同步提供基本的基礎設施支持。
Kubeedge 的目標是建立一個開放的平臺來實現邊緣計算,將原生的容器化應用協調能力擴展到邊緣的主機,該平臺建立在 kubernetes 之上,爲雲和邊緣之間的網絡、應用部署和元數據同步提供基本的基礎設施支持。
參考架構
- “雲”:Kubernetes 集羣 + CloudCore(包括: CloudHub、EdgeController、DeviceController)
- “邊”:EdgeCore
- Edged: 輕量化的 Kubelet 實現
- EdgeHub
- DeviceTwin
- MetaManager
- ServiceBus
- "端": 各類 IoT 設備 Mappers
方案優點
- CNCF 首個雲原生邊緣計算項目: 基於 Kubernetes, 爲邊緣做了很多優化和適配。功能強大且完善。全球開發者衆多。
- 大規模: 單集羣突破 10 萬邊緣節點
- 邊緣設備管理: 完善的邊緣設備管理,支持多種邊緣設備通信協議,如 MQTT、Modbus、Bluetooth、OPC UA 等,支持自定義插件擴展邊緣設備協議。
- 100%兼容 Kubernetes 原生能力: 支持用戶使用 Kubernetes 原生 API 統一管理邊緣應用
- 邊緣可靠的 list-watch 接口
- 輕量: 針對資源受限場景進行自身組件輕量化,~70MB 內存佔用
- 支持複雜的邊雲網絡環境: 雙向多路複用的邊雲消息通道,支持邊緣位於私有網絡; 應用層可靠增量同步機制,支持在高時延、低質量網絡環境下工作
- 邊緣自治: 支持邊緣離線自治:邊緣元數據持久化、邊緣 DNS,保證邊緣離線時的業務運行和故障恢復能力(相比起來,k3s 的邊緣自治算是"僞邊緣自治"); 支持邊緣數據流式處理,定義邊緣數據清洗、數據分析等處理工作
- 邊雲一體資源調度和流量協同: 支持邊緣節點 (edged 節點,在 kubernetes 看來也是一個 node) 和雲節點混合管理,提供邊雲數據通信和邊邊數據通信
- DMI 架構設備管理: 管理面數據與業務面數據分離
- EdgeMesh: 跨雲邊、邊邊的應用互訪通信;邊緣內置域名解析能力,不依賴中心 DNS; 支持 L4,L7 流量治理;支持跨越邊雲的一致的服務發現和訪問體驗;跨子網通信
- Sedna: AI 邊雲協同套件
方案缺點
- 複雜度高: Kubeedge 基於 Kubernetes, 但是針對邊緣計算場景做了大量的功能擴展,這使得要用好 Kubeedge, 不僅要懂 Kubernetes, 還需要懂 Kubeedge, 還需要懂邊緣業務/邊緣通信協議。入門學習曲線極爲陡峭。
-
中文文檔質量一般: 查看 Kubeedge 官網中文文檔,發現以下問題:版本更新後文檔未更新;文檔生硬機翻英文文檔;文檔組織結構存在問題,很難"quick start"; 甚至還有低級的文檔排版錯亂,markdown 錯亂等問題。
- 反面典型案例:使用 Keadm 進行部署 | KubeEdge 一個支持邊緣計算的開放平臺, 看得我腦殼痛😂😂😂
- 資源佔用其實也不少: 如果只是安裝 edgecore 或 edged, 資源佔用相對可控。如果需要使用到更多的功能,如 EdgeMesh, Sedna, 邊緣設備管理,Kubernetes 的 CSI CNI 實現,那麼這些功能都需要啓用或額外安裝相應插件。導致資源佔用上升。
- 邊緣容器管理和邊緣計算業務有一定耦合: Kubeedge 除了提供邊緣容器管理基本功能外,還提供了大量與邊緣計算業務有密切關係的功能,可能會導致部門耦合。
- 自動化運維困難: 其他 3 個方案,都會提供一鍵式的安裝運維腳本或自動化部署/運維功能,Kubeedge 這方面相對缺乏,自動化運維能力需要自行探索。
繼續閱讀
參考資料
三人行, 必有我師; 知識共享, 天下爲公. 本文由東風微鳴技術博客 EWhisper.cn 編寫.