一寝姿、KubeEdge介紹
KubeEdge 是一個開源的系統(tǒng)几晤,可將本機容器化應(yīng)用編排和管理擴展到邊緣端設(shè)備盛撑。 它構(gòu)建在Kubernetes之上,為網(wǎng)絡(luò)和應(yīng)用程序提供核心基礎(chǔ)架構(gòu)支持导帝,并在云端和邊緣端部署應(yīng)用守谓,同步元數(shù)據(jù)。100%兼容K8S API您单,可以使用K8S API原語管理邊緣節(jié)點和設(shè)備斋荞。KubeEdge 還支持 MQTT 協(xié)議,允許開發(fā)人員編寫客戶邏輯虐秦,并在邊緣端啟用設(shè)備通信的資源約束平酿。
1、優(yōu)勢
kubernetes + 容器的組合大大提高了用戶創(chuàng)建部署應(yīng)用的效率悦陋。kubernetes 可以把 n 臺主機整合成一個集群蜈彼,用戶在 master 節(jié)點上通過編寫一個 yaml 或者 json 格式的配置文件,也可以通過命令等請求 Kubernetes API 創(chuàng)建應(yīng)用俺驶,就直接將應(yīng)用部署到集群上的各個節(jié)點上幸逆,該配置文件中還包含了用戶想要應(yīng)用程序保持的狀態(tài),從而生成用戶想要的環(huán)境暮现。
Kubernetes 作為容器編排的標準还绘,自然會想把它應(yīng)用到邊緣計算上,即通過 kubernetes 在邊緣側(cè)部署應(yīng)用栖袋,但是 kubernetes 在邊緣側(cè)部署應(yīng)用時遇到了一些問題拍顷,例如:
邊緣側(cè)設(shè)備沒有足夠的資源運行一個完整的 Kubelet
一些邊緣側(cè)設(shè)備是 ARM 架構(gòu)的,然而大部分的 Kubernetes 發(fā)行版并不支持 ARM 架構(gòu)
邊緣側(cè)網(wǎng)絡(luò)很不穩(wěn)定塘幅,甚至可能完全不通昔案,而 kubernetes 需要實時通信,無法做到離線自治
很多邊緣設(shè)備都不支持TCP/IP 協(xié)議
Kubernetes 客戶端(集群中的各個Node節(jié)點)是通過 list-watch 去監(jiān)聽 Master 節(jié)點的 apiserver 中資源的增刪改查电媳,list-watch 中的 watch 是調(diào)用資源的 watch API 監(jiān)聽資源變更事件踏揣,基于 HTTP 長連接實現(xiàn),而維護一個 TCP 長連接開銷較大匾乓。從而造成可擴展性受限呼伸。
為了解決包含但不限于以上 Kubernetes 在物聯(lián)網(wǎng)邊緣場景下的問題,從而產(chǎn)生了KubeEdge 。對應(yīng)以上問題:
KubeEdge 保留了 Kubernetes 的管理面括享,重新開發(fā)了節(jié)點 agent搂根,大幅度優(yōu)化讓邊緣組件資源占用更低很多
KubeEdge 可以完美支持 ARM 架構(gòu)和 x86 架構(gòu)
KubeEdge 有離線自治功能,可以看 MetaManager 組件的介紹
KubeEdge 豐富了應(yīng)用和協(xié)議支持铃辖,目前已經(jīng)支持和計劃支持的有:MQTT剩愧、BlueTooth、OPC UA娇斩、Modbus等仁卷。
KubeEdge 通過底層優(yōu)化的多路復(fù)用消息通道優(yōu)化了云邊的通信的性能,可以看 EdgeHub 組件的介紹