- 深入理解邊緣計算:云、邊、端工作原理與源碼分析
- 崔廣章
- 1788字
- 2021-06-24 11:28:37
1.1 邊緣計算系統
本節從組成部分和概念解析兩方面來說明邊緣計算系統。
1)組成部分:邊緣計算系統由云、邊、端三部分組成,每部分的解決方案不止一種。本書的云組成部分選擇Kubernetes,邊組成部分選擇KubeEdge,端組成部分選擇EdgeX Foundry。
2)概念解析:對組成邊緣計算系統的云、邊、端三部分涉及的相關概念進行說明。
1.1.1 邊緣計算系統的組成
1. 云——Kubernetes
Kubernetes是Google開源的大規模容器編排解決方案。整套解決方案由核心組件、第三方組件和容器運行時組成,具體如表1-1所示。
表1-1 Kubernetes組成部分說明

2. 邊——KubeEdge
KubeEdge是華為開源的一款基于Kubernetes的邊緣計算平臺,用于將容器化應用的編排功能從云擴展到邊緣的節點和設備,并為云和邊緣之間的網絡、應用部署和元數據同步提供基礎架構支持。KubeEdge使用Apache 2.0許可,并且可以免費用于個人或商業用途。
KubeEdge由云部分、邊緣部分和容器運行時組成,具體如表1-2所示。
表1-2 KubeEdge組成部分說明

3. 端——EdgeX Foundry
EdgeX Foundry是一個由Linux基金會運營的開源邊緣計算物聯網軟件框架項目。該項目的核心是基于與硬件和操作系統完全無關的參考軟件平臺建立的互操作框架,構建即插即用的組件生態系統,加速物聯網方案的部署。EdgeX Foundry使有意參與的各方在開放與互操作的物聯網方案中自由協作,無論其是使用公開標準還是私有方案。
EdgeX Foundry微服務集合構成了4個微服務層及兩個增強的基礎系統服務。4個微服務層包含從物理域數據采集到信息域數據處理等一系列服務,兩個增強的基礎系統服務為4個微服務層提供服務支撐。
4個微服務層從物理層到應用層依次為設備服務(Device Service)層、核心服務(Core Service)層、支持服務(Supporting Service)層、導出服務(Export Service)層,兩個增強的基礎系統服務包括安全和系統管理服務,具體說明如表1-3所示。
表1-3 EdgeX Foundry組成部分說明

1.1.2 概念解析
組成邊緣計算系統的云、邊、端三部分的相關概念如下。
- 云:涉及的概念包括Container、Pod、ReplicaSet、Service、Deployment、DaemonSet、Job、Volume、ConfigMap、NameSpace、Ingress等。
- 邊:目前邊緣系統的實現方式是通過對云原有的組件進行裁剪并下沉到邊緣,所以邊涉及的概念是云的子集,而且與云保持一致。
- 端:部署在邊上的一套微服務,目前沒有引入新的概念。
目前,邊和端都在沿用云的概念,所以本節主要是對云的概念進行解析。下面以圖解的形式對云涉及的相關概念進行說明。由圖1-1可知,Container(容器)是在操作系統之上的一種新的環境隔離技術。使用容器隔離出的獨立空間包含應用所需的運行時環境和依賴庫。在同一臺主機上,容器共享操作系統內核。

圖1-1 Container解析
由圖1-2可知,Pod是由一組容器組成的,在同一個Pod內的容器共享存儲和網絡命名空間。在邊緣計算系統中,Pod是最小的可調度單元,也是應用負載的最終載體。

圖1-2 Pod解析
由圖1-3可知,ReplicaSet用來管理Pod,負責讓Pod的期望數量與Pod真實數量保持一致。在邊緣計算系統中,ReplicaSet負責維護應用的多實例和故障自愈。

圖1-3 ReplicaSet解析
由圖1-4可知,Service作為一組Pod的訪問代理,在多個Pod之間做負載均衡。Pod的生命周期相對比較短暫,變更頻繁。Service除了為與之相關的Pod做訪問代理和負載均衡外,還會維護與Pod的對應關系。

圖1-4 Service解析
由圖1-5可知,Deployment是ReplicaSet的抽象,在ReplicaSet的基礎上增加了一些高級功能。其功能和應用場景與ReplicaSet相同。

圖1-5 Deployment解析
由圖1-6可知,DaemonSet負責讓指定的Pod在每個節點上都啟動一個實例。該功能一般用在部署網絡插件、監控插件和日志插件的場景。

圖1-6 DaemonSet解析
由圖1-7可知,Job用來管理批量運行的Pod,該管理類型的Pod會被定期批量觸發。與Deployment管理的Pod不同,Job管理的Pod執行完相應的任務后就退出,不會一直駐留。在邊緣計算系統中,一般用Job所管理的Pod來訓練AI模型。

圖1-7 Job解析
由圖1-8可知,Volume是用來給Pod提供存儲的,通過掛載的方式與對應Pod關聯。Volume分臨時存儲和持久存儲,臨時存儲類型的Volume會隨著Pod的刪除而被刪除,持久存儲類型的Volume不會隨著Pod的刪除而被刪除。

圖1-8 Volume解析
由圖1-9可知,ConfigMap作為Pod存儲配置文件的載體,通過環境變量(env)和文件卷的方式與Pod進行關聯。在邊緣計算系統中,以ConfigMap方式來管理配置信息會更方便。ConfigMap還可以對配置中的敏感信息進行加密,使配置信息更安全。

圖1-9 ConfigMap解析
由圖1-10可知,NameSpace是對Pod、Service、ConfigMap、Deployment、DaemonSet等資源進行隔離的一種機制,一般用在同一公司的不同團隊隔離資源的場景。邊緣計算系統使用NameSpace來對一個團隊可以使用的資源(CPU、內存)和創建的負載所需要的資源進行限制。

圖1-10 NameSpace解析
由圖1-11可知,Ingress可作為集群內與集群外相互通信的橋梁——將集群內的服務暴露到集群外,同時可以對進入集群內的流量進行合理的管控。在邊緣計算系統中,Ingress是一種資源對象,需要配合Ingress Controller和反向代理工作。

圖1-11 Ingress解析
- 用萬用表檢修液晶電視機一學就會
- 雷達目標特性及MATLAB仿真
- Protel DXP 2004 SP2原理圖與PCB設計
- 電子技術工程訓練
- Identity with Windows Server 2016:Microsoft 70-742 MCSA Exam Guide
- 信息通信業的數字化發展之路
- 錄音技術基礎與數字音頻處理指南
- 無線通信射頻電路技術與設計
- Android App Inventor項目開發教程
- 多媒體通信技術與應用
- 濾波器設計理論及應用:非線性非高斯系統狀態估計
- 現代通信技術及應用(第3版)
- 電子產品測試技術
- 3GPP系統架構演進(SAE)原理與設計(第2版)(“十二五”國家重點圖書出版規劃項目)
- 5G改變世界