郭家伊



摘? 要: 針對工業(yè)物聯(lián)網(wǎng)中云端壓力大、工業(yè)協(xié)議標準繁多等問題,設(shè)計了一款基于邊緣計算的工業(yè)物聯(lián)網(wǎng)容器管理引擎。該引擎具有三個分布式端,分別部署了容器管理引擎KubeEdge、協(xié)議轉(zhuǎn)化工具EMQ X Edge和可視化工具OCP、Kuboard,提供資源監(jiān)控、鏡像管理、持續(xù)集成、自動伸縮、協(xié)議轉(zhuǎn)換等功能。測試顯示,集群數(shù)據(jù)帶寬提升339.19%,響應時間減少81.22%。把部分計算任務(wù)從云端卸載到邊緣后,系統(tǒng)能源消耗減少30%-40%,成功解決帶寬不夠、云端壓力大等問題。
關(guān)鍵詞: 邊緣計算; 工業(yè)物聯(lián)網(wǎng); 容器; KubeEdge
中圖分類號:TP311? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)07-38-04
Design of the container management engine for industrial Internet of Things
based on edge computing
Guo Jiayi
(Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: Aiming at the problems of high cloud pressure and various industrial protocol standards in industrial Internet of Things, a container management engine for industrial Internet of Things based on edge computing is designed. The engine has three distributed terminals, which respectively deploy the container management engine KubeEdge, the protocol conversion tool EMQ X Edge and the visualization tools OCP and Kuboard to provide resource monitoring, image management, continuous integration, automatic scaling, protocol conversion and other functions. The test results show that the cluster data bandwidth is increased by 339.19%, and the response time is reduced by 81.22%. After some computing tasks are unloaded from the cloud to the edge, the system energy consumption is reduced by 30% - 40%, which successfully solves the problems of insufficient bandwidth and high cloud pressure.
Key words: edge computing; industrial Internet of Things; container; KubeEdge
0 引言
萬物互聯(lián)給人類帶來了極大便利的同時,海量設(shè)備的通訊也受限于不同設(shè)備的物理鏈路、各種不同的協(xié)議,因此大多數(shù)數(shù)據(jù)不能互聯(lián)互通[1]。同時由于目前主流的容器編排引擎,如Kubernetes、Mesosphere、Docker Swarm等[2],難以實現(xiàn)自動伸縮應用,缺乏對容器的統(tǒng)一管理[3],易造成帶寬不夠、實時性運維服務(wù)質(zhì)量下降及企業(yè)成本增加等問題[4]。
在此情況下,傳統(tǒng)云計算模式無法高效地支持基于萬物互聯(lián)的應用服務(wù)程序[5],而邊緣計算模型可以更好地解決這些問題。目前,有研究者已開展相關(guān)研究,如潘建勝曾以Docker為基礎(chǔ),設(shè)計并實現(xiàn)了一個CDN邊緣計算平臺[6];王健通過輕量級的邊緣節(jié)點構(gòu)建輕量級邊緣計算平臺[7],實現(xiàn)了輕量級的虛擬化與網(wǎng)絡(luò)交換;吳鴻飛通過模型和算法擴展了Kubernetes,開發(fā)了一個輕量級的邊緣計算平臺[8]。這些研究說明,邊緣計算模型可以補充云計算在實時性、智能性和安全管控上的不足,降低數(shù)據(jù)傳輸帶寬和中斷敏感數(shù)據(jù)帶寬的風險[9],通過處理更接近源頭的數(shù)據(jù)解決時延問題[10],可被應用在云計算任務(wù)遷移、視頻監(jiān)控、智能家居、智慧城市、智能交通、協(xié)同邊緣等[11]領(lǐng)域,為物聯(lián)網(wǎng)中連接的設(shè)備帶來穩(wěn)定。但是這些基于邊緣計算的容器管理引擎只完善了某一部分的缺陷,如王健的輕量級邊緣計算平臺雖然在輕量化領(lǐng)域有較大成效,但無法有效解決協(xié)議兼容以及數(shù)據(jù)安全問題;吳鴻飛對Kubernetes的擴充雖然降低了應用服務(wù)的完成時間,但無法進行自動伸縮。邊緣計算仍面臨設(shè)備傳輸時的數(shù)據(jù)多樣性、數(shù)據(jù)隱私保護、資源自動分配等問題[12]。
因此,本文構(gòu)建了一個集資源監(jiān)控、鏡像管理、持續(xù)集成、自動伸縮、協(xié)議轉(zhuǎn)換等功能于一體的容器管理引擎。該引擎設(shè)有云端、邊緣端和設(shè)備端三個分布式端,具有容器管理模塊、協(xié)議兼容模塊、可視化管理模塊,并通過實際的部署對于本引擎進行了測試以及性能分析。
1 高性能輕量級容器管理引擎設(shè)計
1.1 技術(shù)架構(gòu)
本文提出的邊緣計算容器管理引擎(如圖1)具有三個分布式端:云端、邊緣端、設(shè)備端。
在實際使用時,設(shè)備端將接入多種設(shè)備,如各種傳感器、攝像頭等;邊緣端將部署容器管理引擎KubeEdge的Edged端、協(xié)議轉(zhuǎn)化工具EMQ X Edge以及設(shè)備圖形化管理工具EMQ X Dashboard,可將設(shè)備端多種協(xié)議的數(shù)據(jù)統(tǒng)一轉(zhuǎn)化為MQTT協(xié)議格式,減輕邊端壓力并解決協(xié)議不兼容的問題;云端將部署容器管理引擎KubeEdge的Cloud端、集群圖形化管理工具Kuboard以及微服務(wù)管理框架OCP,有利于大幅減少通信壓力,在高時延下正常工作。
1.2 功能結(jié)構(gòu)
本引擎主要分為三個功能模塊:容器管理模塊、協(xié)議兼容模塊和可視化模塊(如圖2)。
容器管理模塊通過結(jié)合KubeEdge和Kuboard實現(xiàn)了容器的可視化管理,包括鏡像管理、容器參數(shù)管理、存儲管理等;協(xié)議兼容模塊通過EMQ X Edge實現(xiàn)了協(xié)議兼容,對設(shè)備端多種協(xié)議進行了統(tǒng)一管理,包括設(shè)備接入、協(xié)議轉(zhuǎn)化、數(shù)據(jù)安全、設(shè)備監(jiān)控等流程的完整管理;可視化管理模塊通過EMQ X Dashboard實現(xiàn)了設(shè)備可視化管理、通過Kuboard實現(xiàn)了集群可視化管理以及通過OCP實現(xiàn)了微服務(wù)的可視化管理。
2 高性能輕量級容器管理引擎實現(xiàn)
本引擎首先在云端和邊端部署了KubeEdge集群,然后安裝了用于協(xié)議轉(zhuǎn)化以及設(shè)備可視化管理的EMQ X Edge,接下來安裝了集群的可視化管理工具Kuboard和微服務(wù)的可視化管理工具OCP,最后進行了引擎的測試。
2.1 集群部署
集群使用了谷歌云平臺與阿里云平臺。首先在谷歌云平臺基于KubeEdge和Docker搭建了一個KubeEdge的Master節(jié)點作為中心云服務(wù)器,然后在阿里云平臺基于KubeEdge、Docker和Containerd搭建三個KubeEdge的Edged節(jié)點作為邊端服務(wù)器,最終組成了一個有一個中心節(jié)點、三個邊端節(jié)點的KubeEdge集群(如圖3)。
2.2 協(xié)議轉(zhuǎn)化
首先根據(jù)架構(gòu)在阿里云平臺的三個Edged節(jié)點上分別安裝MQTT相關(guān)組件,然后在集群上部署EMQ X Edge,最后修改KubeEdge Edged端的Mappers并進行測試。測試結(jié)果發(fā)現(xiàn)通過EMQ X Dashboard可查看設(shè)備的各種信息,在節(jié)點中輸入各個協(xié)議的數(shù)據(jù)后也可以成功實現(xiàn)多種工業(yè)協(xié)議的轉(zhuǎn)化,實現(xiàn)協(xié)議的兼容性。
2.3 集群可視化管理
首先在谷歌云的Master節(jié)點上部署Kuboard,然后通過Kuboard監(jiān)控并測試Master節(jié)點以及三個Edged節(jié)點的運轉(zhuǎn)情況、資源分配情況、傳遞的信息等,最后使用Kuboard 提供的工作負載編輯器自動生成YAML文件,并在Kuboard上部署了基礎(chǔ)的微服務(wù)進行測試。測試發(fā)現(xiàn),Kuboard的微服務(wù)參考分層架構(gòu)的形式,將所有的微服務(wù)分為展現(xiàn)層、API網(wǎng)管層、微服務(wù)層、持久層、中間件層和監(jiān)控層,通過可視化的形式將各個名稱控件展現(xiàn)了出來。
2.4 微服務(wù)可視化管理
首先在KubeEdge的Master節(jié)點上安裝JDK、maven以及git,此處使用的是JDK1.8和maven3.6.2,然后下載OCP的代碼倉庫,最后通過構(gòu)建Docker鏡像并推送到倉庫來測試OCP是否安裝成功。經(jīng)過測試,OCP安裝成功,可成功通過可視化界面進行后臺管理、服務(wù)管理、應用管理等操作。
2.5 測試
首先測試設(shè)備端、邊緣端和云端之間的數(shù)據(jù)是否可以互聯(lián)互通,然后通過接入不同協(xié)議的數(shù)據(jù)并部署了不同的微服務(wù)來檢驗產(chǎn)品效果,最終在各個可視化界面對于設(shè)備、集群、微服務(wù)進行監(jiān)控與管理。測試結(jié)果發(fā)現(xiàn),數(shù)據(jù)可以在設(shè)備端、邊緣端和云端互聯(lián)互通,實現(xiàn)了多種協(xié)議的兼容,用戶可成功通過可視化界面對于設(shè)備、集群和微服務(wù)進行監(jiān)控與管理。
3 高性能輕量級容器管理引擎性能分析
為了評估提出的輕量級容器引擎的性能,選取阿里云遠端服務(wù)器進行對比分析,遠端服務(wù)器的內(nèi)存、CPU、存儲等配置與測試環(huán)境相似,測試過程對數(shù)據(jù)傳輸處理性能、資源消耗、響應時間、兼容性等方面進行了評估,具體如下。
⑴ 帶寬測試 測試過程中在輕量級容器引擎以及遠端云服務(wù)器上都使用iperf工具對TCP吞吐量進行測試。測試發(fā)現(xiàn),集群內(nèi)部數(shù)據(jù)帶寬為6.5Gbits/sec,集群內(nèi)部服務(wù)器與外部服務(wù)器為1.48 Gbits/sec,數(shù)據(jù)帶寬提升339.19%。
⑵ 資源消耗 測試過程中在輕量級容器引擎以及遠端云服務(wù)器上都部署了相同的計算任務(wù),并分別用KubeEdge和K3S部署了0~100個應用,測試結(jié)果發(fā)現(xiàn)KubeEdge所占用的內(nèi)存約為K3s Server的1/6和K3s agent的1/2(如圖4),所占用的CPU約為K3s Server的1/10和K3s agent的1/8且整體趨向于平穩(wěn)(如圖5)。把部分計算任務(wù)從云端卸載到邊緣之后,整個系統(tǒng)對能源的消耗能夠減少30%-40%。
⑶ 響應時間 測試過程中在輕量級容器引擎以及遠端云服務(wù)器上都部署了相同的人臉識別微服務(wù)。測試結(jié)果發(fā)現(xiàn),本引擎可以將響應時間由900ms減少為169ms,降低了81.22%;系統(tǒng)數(shù)據(jù)在整合、遷移等方面耗時將會縮減到遠端云服務(wù)器的1/20。
⑷ 兼容性 測試過程中比對了市面上常用的幾種MQTT Broker,如mosquitto、RabbitMQ、mosca等,測試結(jié)果(如圖7)發(fā)現(xiàn),EMQ X Edge支持 MQTT-SN、WebSocket、CoAP、Stomp、Modbus 等協(xié)議,可以在x86 網(wǎng)關(guān)、工業(yè)服務(wù)器等各種資源受限的邊緣設(shè)備上運行,具有良好的兼容性。
4 結(jié)束語
基于邊緣計算的工業(yè)物聯(lián)網(wǎng)容器管理引擎解決了工業(yè)物聯(lián)網(wǎng)協(xié)議繁多、帶寬不夠、時延過高等問題,有利于應對工業(yè)環(huán)境中日趨增高的邊緣應用復雜性對應用開發(fā)、部署、管理、協(xié)作維度帶來的挑戰(zhàn)。但是仍然存在部分待解決和優(yōu)化的問題,如鏡像文件裁剪。本文初步提供了一種基于邊緣計算的工業(yè)物聯(lián)網(wǎng)容器引擎設(shè)計思路,還有待后續(xù)的深入研究和測試,逐漸對解決方案進行完善。
參考文獻(References):
[1] 余文科,程媛,李芳,趙琦.物聯(lián)網(wǎng)技術(shù)發(fā)展分析與建議[J].物聯(lián)網(wǎng)學報,2020.4:105-109
[2] 徐珉.Docker環(huán)境下容器編排工具的選擇[J].集成電路應用,2017.34(7):62-66
[3] 張城城.基于Docker的容器集群管理平臺的研究與實現(xiàn)[D].北京郵電大學,2019.
[4] 顏曉蓮,章剛,邱曉紅,陳慶奎.工業(yè)物聯(lián)網(wǎng)的工業(yè)邊緣云部署算法[J/OL].計算機集成制造系統(tǒng):1-17[2020-12-22].http://kns.cnki.net/kcms/detail/11.5946.TP.20201026.1107.042.html.
[5] 裴慶祺.以萬物互聯(lián)為核心的邊緣計算時代正在開啟[J].人民論壇·學術(shù)前沿,2020.9:26-32
[6] 潘建勝.基于Docker的CDN邊緣計算平臺設(shè)計與實現(xiàn)[D].北京郵電大學,2018.
[7] 王健.輕量級邊緣計算平臺方案設(shè)計與應用研究[D].北京郵電大學,2019.
[8] 吳鴻飛. 基于邊緣計算的微服務(wù)調(diào)度算法研究[D].電子科技大學,2020.
[9] 施巍松,孫輝,曹杰,張權(quán),劉偉.邊緣計算:萬物互聯(lián)時代新型計算模型[J].計算機研究與發(fā)展,2017.54(5):907-924
[10] 余文科,程媛,李芳,趙琦.物聯(lián)網(wǎng)技術(shù)發(fā)展分析與建議[J].物聯(lián)網(wǎng)學報,2020.4:105-109
[11] 施巍松,張星洲,王一帆,張慶陽.邊緣計算:現(xiàn)狀與展望[J].計算機研究與發(fā)展,2019.56(1):69-89
[12] 周悅芝,張迪.近端云計算:后云計算時代的機遇與挑戰(zhàn)[J].計算機學報,2019.42(4):677-700