1. 程式人生 > >KubeEdge v0.2發布,全球首個K8S原生的邊緣計算平臺開放雲端代碼

KubeEdge v0.2發布,全球首個K8S原生的邊緣計算平臺開放雲端代碼

開放 小數點 訂閱 代碼 分布式 一點 極致 process 不難

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上開源,項目地址:https://github.com/kubeedge/kubeedge

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

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

KubeEdge v0.2發布,全球首個K8S原生的邊緣計算平臺開放雲端代碼