邊緣計算是指在靠近物或資料來源頭的⼀側,採用網路、計算、儲存、應用核心能力為⼀體的開放平臺,就近提供最近端服務。其應用程式在邊緣側發起,產生更快的網路服務響應,滿足行業在實時業務、應⽤智慧、安全與隱私保護等方面的基本需求。邊緣計算處於物理實體和⼯業連線之間,或處於物理實體的頂端。
根據計算能力大小,邊緣計算可以分為兩⼤類:
- 輕邊緣:計算能力受限,網路條件差,業務單⼀,數量龐⼤,地理位置分散,⽐如智慧小區,車聯網,無人機等。
- 重邊緣:計算能力相對充足,網路條件相對穩定,業務複雜,可靠性,安全性有⼀定要求,比如5G MEC,工業網際網路,智慧城市等。
FabEdge 是⼀個基於 kubernetes 構建的,專注於邊緣計算場景的容器網路⽅案,解決了邊緣計算場景下⽹絡管理複雜,割裂互不通訊,缺少拓撲感知能力,無法提供就近存取等問題,使能雲邊、邊邊之間的業務協同。FabEdge支援 KubeEdge,SuperEdge, OpenYurt 等邊緣計算框架管理的輕量邊緣節點。在最新發布的V0.4版中,加⼊對重邊緣,也就是邊緣叢集的⽀持,完成了對所有邊緣場景的全覆蓋。
以上圖為例,共有三個叢集,叢集 blue 是 host 叢集,負責管理其它叢集的通訊;叢集 red,green 是兩個成員叢集,會上報本叢集的網路設定資訊到 host 叢集 blue。將叢集 red 和 green 加入 community1 後,FabEdge會自動建立叢集 red 和 green 之間的隧道,允許兩個叢集之間的 pod 和 service 之間的互訪。
FabEdge 多叢集通訊的的互動過程見下圖:
1. 在 host 叢集中先建立叢集 green 和 red,獲取相應 token。
2. 使⽤獲取的token註冊叢集 green 和 red。
3. 叢集 green 和 red 彙報本叢集網路端點資訊到host叢集。
4. 將叢集 green 和 red 加⼊⼀個 community。
5. 叢集 green 和 red 定時從 host 叢集拉取遠端的端點資訊。
6. host叢集根據 community 資訊,為叢集 green 和 red 下發相關的端點資訊到成員叢集 operator。
7. 成員叢集 green 和red的 operator 為自己 connector 更新 configmap。
8. 成員叢集 green 和 red 的 connector 根據⾃⼰的 configmap 發起到對⽅的隧道。
9. 隧道建⽴成功後,成員叢集 green 和 red 可以互相通訊。