KubeEdge v0.2釋出,全球首個K8S原生的邊緣計算平臺開放雲端程式碼

CCE_huawei發表於2019-03-11

KubeEdge開源背景

KubeEdge在18年11月24日的上海KubeCon上宣佈開源,技術圈曾掀起一陣討論邊緣計算的風潮,從此翻開了邊緣計算和

雲端計算聯動的新篇章。


KubeEdge即Kube+Edge,顧名思義就是依託K8S的容器編排和排程能力,實現雲邊協同、計算下沉、海量裝置的平滑接入。

KubeEdge架構上包含兩部分,分別是雲端和邊緣側。雲端負責應用和配置的下發,邊緣側則負責執行邊緣應用和管理接入

裝置。


此前,關於用K8S在邊緣側部署應用還一直停留在實驗階段,KubeEdge脫胎於華為雲IEF服務,是第一個具備在生產環境部

署能力的邊緣計算領域開源專案。前幾天K8S IOT/Edge工作組釋出了關於邊緣計算的白皮書,並將KubeEdge作為K8S在

IOT/Edge場景下的參考架構。


注:白皮書的內容“容器魔方”公眾號會深入解讀,敬請期待!


KubeEdge開源後國內外也出現了一些開源的邊緣計算平臺和基金會。但是當你仔細研究這些專案時會發現,LF Edge糅合

了5個專案有點像是大雜燴,OpenEdge強繫結廠商中立性有待商榷,而k3s為了在邊緣部署完整叢集而魔改了K8S,他們似

乎都稱不上完整的從雲到邊緣再到裝置的開源解決方案。TheNewStack在撰文對比過這些開源的邊緣計算專案時如是寫道:


It would appear openEdge is integrated with Baidu’s IoT cloud platform so it is not clear how independent is 

the technology.


與其他開源或半開的專案不同,不論是社群生態建設、專案運作或是程式碼開發,KubeEdge誕生之初就把開放性放在首位。

那麼, KubeEdge的開放性到底表現在哪裡呢?這次的重大版本更新將會給整個邊緣計算產業造成什麼深遠的影響呢?


v0.1- ALL in K8S,極致最佳化

容器天然的輕量化和可移植性,非常適合邊緣計算的場景,這一點邊緣計算的廠家和開發者們都心知肚明。而且鑑於K8S

已經成為雲原生編排的事實標準,因此攜手K8S進入邊緣將很有可能結束邊緣計算當前混沌的狀態,並定義雲端和邊緣統一

的應用部署和管理的標準。


然而,由於邊緣場景通訊的不穩定性和嚴苛的資源消耗限制,導致原生的K8S元件無法直接執行在邊緣節點上,例如:工業

閘道器等。而受限於K8S本身list/watch機制帶來的disconnect問題,資料面和管理面斷連後,無法做到本地自治。


KubeEdge選擇的是“輕邊緣”架構,即邊緣側的容器引擎和裝置管理agent儘量輕量化,管理面執行在雲端,且構建在K8S

的排程能力之上,100%相容K8S原生API。KubeEdge all in K8S的設計理念使得使用者可以圍繞K8S的標準API定製需求或者

輕鬆整合雲原生生態中的成熟專案。


值得一提的是,KubeEdge專案的核心成員均來自於K8S/CNCF社群的maintainer和TOP contributor,他們對K8S的設計和

理念和實現機制瞭然於心,自然也清楚K8S在邊緣計算領域需要解決的問題。為了使KubeEdge可以執行在幾乎所有的邊緣場

景(例如:工業製造、智慧園區、智慧駕駛等),權衡K8S的資源佔用和原生能力支援,KubeEdge選擇在對接K8S API的基

礎上,全部重寫邊緣部分實現。當前,KubeEdge邊緣元件的磁碟佔用約為60MB,執行時記憶體佔用小於30MB。


KubeEdge開源的v0.1版本包含:edged,edgehub,eventbus,devicetwin和metamanager這五個邊緣側的元件,架構

如下圖所示:


其中:


  • edged是重新開發的輕量化Kubelet,實現Pod,Volume,Node等K8S資源物件的生命週期管理;

  • metamanager負責本地後設資料的持久化,是邊緣節點自治能力的關鍵;

  • edgehub提供可靠的雲邊資訊同步,解決了K8S list/watch帶來的disconnect問題;

  • devicetwin用於同步資訊到雲端;

  • eventbus訂閱來自於MQTT Broker的裝置資料;


不難發現,v0.1版本的KubeEdge最大的意義在於填平了K8S與邊緣計算的鴻溝。它提供的無縫銜接K8S生態、資料本地化處

理、邊緣節點離線自治、簡化應用在邊緣側部署、多場景支援等功能,為雲原生的邊緣計算架構提供了範例。


v0.2 - 生態建設的里程碑

如果說KubeEdge的 v0.1 版本只是拋磚引玉,那麼 v0.2 版本將是發力生態建設的一個重要里程碑。由於其開放的設計,

KubeEdge一經開源便引起了眾多社群開發者和廠商的關注。


儘管v0.1版本可以透過與華為雲IEF服務嚐鮮雲邊協同的能力,但為了讓海外更多的使用者能夠完整體驗KubeEdge以及進一步

消除使用者對廠商繫結的顧慮,KubeEdge團隊決定提前開放雲端程式碼,即在最新的v0.2版本中釋出。從KubeEdge v0.1到v0.2

雖然只是小數點後的一小步,卻是邊緣計算發展的一個里程碑。KubeEdge v0.1和v0.2的釋出分別創造了兩個記錄:


  1. 全球首個開源的支援容器部署的邊緣計算平臺;

  2. 全球首個開放雲邊協同能力的邊緣計算平臺;


KubeEdge v0.2 的釋出意味著任何人都可以在自己的環境中部署一個完整的涵蓋雲、邊、裝置的邊緣計算解決方案。

本次更新在 v0.1 的基礎上新增了雲上兩個重要元件,分別是:CloudHub和EdgeController,架構如下所示:


其中:


Cloudhub負責接收EdgeHub同步到雲端的資訊;


EdgeController用於控制K8S API Server與邊緣的節點、應用和配置的狀態同步;


使用者可以直接透過kubectl命令列在雲端管理邊緣節點、裝置和應用,使用習慣與K8S原生的完全一致,無需重新適應。


Roadmap


在賦予了KubeEdge完全開放的雲邊協同能力後,接下來我們將與雲原生社群和邊緣計算生態玩家一道,從以下幾個方面逐

步完善 KubeEdge 專案,共建自主可控的邊緣計算開源社群!


透過CRD描述裝置的編排資訊,並實現相應的控制器;


  • 對外暴露邊緣服務;

  • 支援邊緣節點之間的直接通訊;

  • 增強邊緣節點的安全;

  • 最佳化雲邊訊息通道的效率;

  • 提供通用的邊緣資料管理/分析框架;

  • 支援邊緣serverless;

  • 提供多裝置協議接入的框架;

……


彩蛋


KubeEdge專案當前在Github上開源,專案地址:

作為國內發起的首個邊緣計算開源專案,歡迎star和PR,合入任意一個PR便贈送《雲原生分散式儲存基石:etcd深入解析》

一本:)



相關服務請訪問: https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908804/viewspace-2638030/,如需轉載,請註明出處,否則將追究法律責任。

相關文章