Categories
程式開發

KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性!


北京時間2月7日,KubeEdge發布了新的特性版本v1.2.0。

本次發布的1.2版本迎來可靠性方面的重大升級,包含:增強雲邊協同傳輸的可靠性、Component Config API、自動註冊邊緣節點到雲端、升級Kubernetes依賴到v1.17 Stable版本,以及30處問題修復。

Release詳情

接下來本文將逐一解讀KubeEdge v1.2的新特性。

項目背景

KubeEdge名字來源於Kube+Edge,即在Kubernetes原生的容器編排和調度能力之上,實現雲邊協同、計算下沉、海量邊緣設備管理、邊緣自治等能力。在追求邊緣極致輕量化的同時,結合雲原生生態的眾多優勢,解決當前智能邊緣領域面臨的挑戰。

KubeEdge架構上分為雲、邊、端三個層次。雲端負責應用和配置的校驗、下發,邊緣側負責運行邊緣應用和管理接入的設備,設備端運行各種邊緣設備。

KubeEdge完整的打通了邊緣計算中云、邊、設備協同的場景,整體架構如下圖。
KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 1

01 增強雲邊協同傳輸的可靠性

在邊緣計算場景下,邊緣的網絡通常是不穩定的,這將導致雲邊的網絡連接頻繁斷開,在雲邊協同通信時存在丟失數據的風險。

在針對邊緣網絡不穩定場景優化的基礎上,KubeEdge v1.2版本做了以下增強:

1. 增加業務層消息發送的校驗機制。雲端發送狀態同步消息到邊緣時,邊緣在接收並且持久化成功後,會回复狀態同步成功的ACK消息給雲端。如果雲端未收到邊緣狀態同步成功的消息回复,則由業務層代碼觸發重傳機制,重新進行狀態同步。

2. 持久化雲邊協同消息狀態。在雲和邊緣狀態同步的過程中,雲端會實時記錄每個邊緣節點同步成功的最新消息版本號(ResourceVersion),並以CRD的形式持久化保存到K8s中。該機制可以保證在邊際場景下云端故障或者邊緣離線重啟後消息發送的順序和連續性,避免重發舊消息引起雲邊狀態不一致問題。

3. 週期性檢查同步雲邊數據,保持一致性。在前兩步的基礎上,KubeEdge又在雲端CloudCore中添加了新的模塊SyncController,它主要負責週期性檢查個邊緣節點的同步狀態,對比K8s中資源的信息,將不一致的狀態同步到邊緣,確保雲邊狀態的最終一致性。

整體工作流程如下圖所示:
KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 2

工作機制詳見

02 Component Config API

KubeEdge v1.2版本的另一項重要改進是將CloudCore、EdgeCore、EdgeSite等組件的所有配置項結構化,統一使用K8s原生風格的Component Config API定義,按API版本形式管理後續演進,提供歷史兼容支持。

在以往版本中,KubeEdge組件的配置項分散在各個模塊的獨立文件中,維護比較繁瑣。配置項按組件聚合後,用戶只需在一個配置文件中進行配置,並可通過”–config”設置配置文件的路徑。

本次增強還提供了默認完整配置和最小配置兩個命令,用戶可以使用這兩個命令來生成配置文件,快速部署KubeEdge。

KubeEdge v1.2版本中的組件配置API:
KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 3

KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 4

KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 5

詳細配置及設計原則,請見

03自動註冊邊緣節點到雲端

1.2版本之前,用戶在添加一個邊緣節點時,首先需要在雲端創建Node對象,再啟動邊緣端的EdgeCore。

在v1.2版本中,KubeEdge提供了邊緣節點自動註冊到雲端的功能,並且默認開啟該特性,以減少用戶在安裝使用KubeEdge時的操作步驟。用戶可以通過修改EdgeCore的“registerNode”配置項來關閉該特性(將其設置為“false”即可)。

特性詳情

04升級Kubernetes依賴到v1.17 Stable版本

1.2版本將K8s相關的依賴升級到了v1.17 Stable版本,edged對應的k8s版本也升級到了v1.17,用戶可以在邊緣側享用最新版K8s的應用管理、存儲管理等能力。

由於邊緣端只關心Pod、ConfigMap、Secret、Service、Endpoint這幾個核心API對象,K8s中這幾個API對象保持不變,那麼就可以保持兼容,兼容性表報如下圖。

Kubernetes兼容性:
KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 6

Golang兼容性:
KubeEdge 1.2發布:全面升級雲邊協同傳輸的可靠性! 7

05 其他修改

新版本除了以上新特性外,還包括以下修改:

  • 修復了EdgeCore在運行多個POD時,CPU佔用高的問題。
  • 將Beehive、Viaduct兩個子項目移到了KubeEdge主庫中的Staging目錄下,方便開發者開發調試。
  • EdgeCore不應與Kubelet在同一主機(節點)上運行,因此添加了對EdgeCore運行環境的檢查。

結語

隨著v1.2版本的發布,KubeEdge提供了更穩定可靠的雲邊協同傳輸機制,更完備的邊緣應用管理以及設備管理能力,更加友好的用戶體驗,以及更加友好的社區貢獻者體驗,感謝所有社區貢獻者的支持!後續版本將進一步提升KubeEdge的用戶使用體驗,提供完備的智能邊緣計算平台。