您好,登錄后才能下訂單哦!
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的開放性到底表現在哪里呢?這次的重大版本更新將會給整個邊緣計算產業造成什么深遠的影響呢?
容器天然的輕量化和可移植性,非常適合邊緣計算的場景,這一點邊緣計算的廠家和開發者們都心知肚明。而且鑒于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用于同步信息到云端;
不難發現,v0.1版本的KubeEdge最大的意義在于填平了K8S與邊緣計算的鴻溝。它提供的無縫銜接K8S生態、數據本地化處理、邊緣節點離線自治、簡化應用在邊緣側部署、多場景支持等功能,為云原生的邊緣計算架構提供了范例。
如果說KubeEdge的 v0.1 版本只是拋磚引玉,那么 v0.2 版本將是發力生態建設的一個重要里程碑。由于其開放的設計,KubeEdge一經開源便引起了眾多社區開發者和廠商的關注。
盡管v0.1版本可以通過與華為云IEF服務嘗鮮云邊協同的能力,但為了讓海外更多的用戶能夠完整體驗KubeEdge以及進一步消除用戶對廠商綁定的顧慮,KubeEdge團隊決定提前開放云端代碼,即在最新的v0.2版本中發布。從KubeEdge v0.1到v0.2,雖然只是小數點后的一小步,卻是邊緣計算發展的一個里程碑。KubeEdge v0.1和v0.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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。