前文回顧
- 大規模 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 編寫.