KubeEdge在18年11月24日的上海KubeCon上宣布開(kāi)源,技術(shù)圈曾掀起一陣討論邊緣計(jì)算的風(fēng)潮,從此翻開(kāi)了邊緣計(jì)算和云計(jì)算聯(lián)動(dòng)的新篇章。
創(chuàng)新互聯(lián)公司服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過(guò)10余年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對(duì)網(wǎng)站進(jìn)行成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
KubeEdge即Kube+Edge,顧名思義就是依托K8S的容器編排和調(diào)度能力,實(shí)現(xiàn)云邊協(xié)同、計(jì)算下沉、海量設(shè)備的平滑接入。KubeEdge架構(gòu)上包含兩部分,分別是云端和邊緣側(cè)。云端負(fù)責(zé)應(yīng)用和配置的下發(fā),邊緣側(cè)則負(fù)責(zé)運(yùn)行邊緣應(yīng)用和管理接入設(shè)備。
此前,關(guān)于用K8S在邊緣側(cè)部署應(yīng)用還一直停留在實(shí)驗(yàn)階段,KubeEdge脫胎于華為云IEF服務(wù),是第一個(gè)具備在生產(chǎn)環(huán)境部署能力的邊緣計(jì)算領(lǐng)域開(kāi)源項(xiàng)目。前幾天K8S IOT/Edge工作組發(fā)布了關(guān)于邊緣計(jì)算的白皮書(shū),并將KubeEdge作為K8S在IOT/Edge場(chǎng)景下的參考架構(gòu)。
注:白皮書(shū)的內(nèi)容“容器魔方”公眾號(hào)會(huì)深入解讀,敬請(qǐng)期待!
KubeEdge開(kāi)源后國(guó)內(nèi)外也出現(xiàn)了一些開(kāi)源的邊緣計(jì)算平臺(tái)和基金會(huì)。但是當(dāng)你仔細(xì)研究這些項(xiàng)目時(shí)會(huì)發(fā)現(xiàn),LF Edge糅合了5個(gè)項(xiàng)目有點(diǎn)像是大雜燴,OpenEdge強(qiáng)綁定廠商中立性有待商榷,而k3s為了在邊緣部署完整集群而魔改了K8S,他們似乎都稱不上完整的從云到邊緣再到設(shè)備的開(kāi)源解決方案。TheNewStack在撰文對(duì)比過(guò)這些開(kāi)源的邊緣計(jì)算項(xiàng)目時(shí)如是寫(xiě)道:
It would appear openEdge is integrated with Baidu’s IoT cloud platform so it is not clear how independent is the technology.
與其他開(kāi)源或半開(kāi)的項(xiàng)目不同,不論是社區(qū)生態(tài)建設(shè)、項(xiàng)目運(yùn)作或是代碼開(kāi)發(fā),KubeEdge誕生之初就把開(kāi)放性放在首位。那么, KubeEdge的開(kāi)放性到底表現(xiàn)在哪里呢?這次的重大版本更新將會(huì)給整個(gè)邊緣計(jì)算產(chǎn)業(yè)造成什么深遠(yuǎn)的影響呢?
容器天然的輕量化和可移植性,非常適合邊緣計(jì)算的場(chǎng)景,這一點(diǎn)邊緣計(jì)算的廠家和開(kāi)發(fā)者們都心知肚明。而且鑒于K8S已經(jīng)成為云原生編排的事實(shí)標(biāo)準(zhǔn),因此攜手K8S進(jìn)入邊緣將很有可能結(jié)束邊緣計(jì)算當(dāng)前混沌的狀態(tài),并定義云端和邊緣統(tǒng)一的應(yīng)用部署和管理的標(biāo)準(zhǔn)。
然而,由于邊緣場(chǎng)景通信的不穩(wěn)定性和嚴(yán)苛的資源消耗限制,導(dǎo)致原生的K8S組件無(wú)法直接運(yùn)行在邊緣節(jié)點(diǎn)上,例如:工業(yè)網(wǎng)關(guān)等。而受限于K8S本身list/watch機(jī)制帶來(lái)的disconnect問(wèn)題,數(shù)據(jù)面和管理面斷連后,無(wú)法做到本地自治。
KubeEdge選擇的是“輕邊緣”架構(gòu),即邊緣側(cè)的容器引擎和設(shè)備管理agent盡量輕量化,管理面運(yùn)行在云端,且構(gòu)建在K8S的調(diào)度能力之上,100%兼容K8S原生API。KubeEdge all in K8S的設(shè)計(jì)理念使得用戶可以圍繞K8S的標(biāo)準(zhǔn)API定制需求或者輕松集成云原生生態(tài)中的成熟項(xiàng)目。
值得一提的是,KubeEdge項(xiàng)目的核心成員均來(lái)自于K8S/CNCF社區(qū)的maintainer和TOP contributor,他們對(duì)K8S的設(shè)計(jì)和理念和實(shí)現(xiàn)機(jī)制了然于心,自然也清楚K8S在邊緣計(jì)算領(lǐng)域需要解決的問(wèn)題。為了使KubeEdge可以運(yùn)行在幾乎所有的邊緣場(chǎng)景(例如:工業(yè)制造、智慧園區(qū)、智能駕駛等),權(quán)衡K8S的資源占用和原生能力支持,KubeEdge選擇在對(duì)接K8S API的基礎(chǔ)上,全部重寫(xiě)邊緣部分實(shí)現(xiàn)。當(dāng)前,KubeEdge邊緣組件的磁盤占用約為60MB,運(yùn)行時(shí)內(nèi)存占用小于30MB。
KubeEdge開(kāi)源的v0.1版本包含:edged,edgehub,eventbus,devicetwin和metamanager這五個(gè)邊緣側(cè)的組件,架構(gòu)如下圖所示:
其中:
edged是重新開(kāi)發(fā)的輕量化Kubelet,實(shí)現(xiàn)Pod,Volume,Node等K8S資源對(duì)象的生命周期管理;
metamanager負(fù)責(zé)本地元數(shù)據(jù)的持久化,是邊緣節(jié)點(diǎn)自治能力的關(guān)鍵;
edgehub提供可靠的云邊信息同步,解決了K8S list/watch帶來(lái)的disconnect問(wèn)題;
devicetwin用于同步信息到云端;
不難發(fā)現(xiàn),v0.1版本的KubeEdge最大的意義在于填平了K8S與邊緣計(jì)算的鴻溝。它提供的無(wú)縫銜接K8S生態(tài)、數(shù)據(jù)本地化處理、邊緣節(jié)點(diǎn)離線自治、簡(jiǎn)化應(yīng)用在邊緣側(cè)部署、多場(chǎng)景支持等功能,為云原生的邊緣計(jì)算架構(gòu)提供了范例。
如果說(shuō)KubeEdge的 v0.1 版本只是拋磚引玉,那么 v0.2 版本將是發(fā)力生態(tài)建設(shè)的一個(gè)重要里程碑。由于其開(kāi)放的設(shè)計(jì),KubeEdge一經(jīng)開(kāi)源便引起了眾多社區(qū)開(kāi)發(fā)者和廠商的關(guān)注。
盡管v0.1版本可以通過(guò)與華為云IEF服務(wù)嘗鮮云邊協(xié)同的能力,但為了讓海外更多的用戶能夠完整體驗(yàn)KubeEdge以及進(jìn)一步消除用戶對(duì)廠商綁定的顧慮,KubeEdge團(tuán)隊(duì)決定提前開(kāi)放云端代碼,即在最新的v0.2版本中發(fā)布。從KubeEdge v0.1到v0.2,雖然只是小數(shù)點(diǎn)后的一小步,卻是邊緣計(jì)算發(fā)展的一個(gè)里程碑。KubeEdge v0.1和v0.2的發(fā)布分別創(chuàng)造了兩個(gè)記錄:
KubeEdge v0.2 的發(fā)布意味著任何人都可以在自己的環(huán)境中部署一個(gè)完整的涵蓋云、邊、設(shè)備的邊緣計(jì)算解決方案。本次更新在 v0.1 的基礎(chǔ)上新增了云上兩個(gè)重要組件,分別是:CloudHub和EdgeController,架構(gòu)如下所示:
其中:
Cloudhub負(fù)責(zé)接收EdgeHub同步到云端的信息;
EdgeController用于控制K8S API Server與邊緣的節(jié)點(diǎn)、應(yīng)用和配置的狀態(tài)同步;
用戶可以直接通過(guò)kubectl命令行在云端管理邊緣節(jié)點(diǎn)、設(shè)備和應(yīng)用,使用習(xí)慣與K8S原生的完全一致,無(wú)需重新適應(yīng)。
Roadmap
在賦予了KubeEdge完全開(kāi)放的云邊協(xié)同能力后,接下來(lái)我們將與云原生社區(qū)和邊緣計(jì)算生態(tài)玩家一道,從以下幾個(gè)方面逐步完善 KubeEdge 項(xiàng)目,共建自主可控的邊緣計(jì)算開(kāi)源社區(qū)!
通過(guò)CRD描述設(shè)備的編排信息,并實(shí)現(xiàn)相應(yīng)的控制器;
對(duì)外暴露邊緣服務(wù);
支持邊緣節(jié)點(diǎn)之間的直接通信;
增強(qiáng)邊緣節(jié)點(diǎn)的安全;
優(yōu)化云邊消息通道的效率;
提供通用的邊緣數(shù)據(jù)管理/分析框架;
支持邊緣serverless;
……
彩蛋
KubeEdge項(xiàng)目當(dāng)前在Github上開(kāi)源,項(xiàng)目地址:https://github.com/kubeedge/kubeedge
作為國(guó)內(nèi)發(fā)起的首個(gè)邊緣計(jì)算開(kāi)源項(xiàng)目,歡迎star和PR,合入任意一個(gè)PR便贈(zèng)送《云原生分布式存儲(chǔ)基石:etcd深入解析》一本:)
相關(guān)服務(wù)請(qǐng)?jiān)L問(wèn):
https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019