柳义筠 陈善平
摘 要: 随着自动驾驶、智能网联汽车和智能交通系统的发展,车联网的应用场景也越来越丰富。本文经过循序渐进地分析,提出软件定义云边端协同一体化车联网架构。为了适应车联网的高移动性、实时性、流量剧烈增减和网络异构等特点,提出基于KubeEdge框架的车联网系统管理架构,并系统介绍KubeEdge的组成和云边消息传递机制。该架构将Docker容器、Kubernetes 与车载智能设备、路边智能设备相结合,并对 KubeEdge 框架的云端、边端和云边端消息传递进行“本土化”改造,可作为车联网未来发展思路和路径之一。
关键词: 车联网; 云计算; 软件定义网络(SDN); KubeEdge; 架构
中图分类号:TP393.0 文献标识码:A 文章编号:1006-8228(2023)04-23-06
Abstract: With the development of autonomous driving, intelligent connected vehicles and intelligent transportation systems, the application scenarios of Internet of vehicles are becoming more and more abundant. After analyzing step by step, we propose a software-defined cloud-edge-end collaborative integrated Internet of vehicles architecture. In order to adapt to the characteristics of Internet of vehicles, such as high mobility, real-time performance, dramatic increase and decrease of traffic, and network heterogeneity, a system management architecture of Internet of vehicles is proposed based on KubeEdge framework, and the composition of KubeEdge and the cloud-edge message transmission mechanism are systematically introduced. This architecture combines Docker container and Kubernetes with on-board intelligent devices and roadside intelligent devices, and makes a "localization" transformation of the cloud, edge and cloud-edge messaging of KubeEdge framework. It can be used as one of the ideas and paths for the future development of the Internet of vehicles.
Key words: Internet of vehicles; cloud computing; software defined network (SDN); KubeEdge; architecture
0 引言
智能交通系統将先进的科学技术综合运用于整个交通运输管理体系,充分利用路和路边的基础设施,实现车和车、路的有机协同。车联网应用于智能交通系统,有助于提高其效率及安全性。车联网是未来智慧城市重要组成部分。
车联网发展至今,也暴露出一些问题和发展瓶颈。如灵活性差,现在车联网采用传统的IP网络架构,很难适应车辆的高移动性导致网络拓扑变化频繁;可扩展性差,目前车联网缺乏统一的标准,不同的生产厂商软硬件不兼容,致使车联网难以大规模部署;服务质量(QoS)不高,随着接入汽车数量爆发性增加而带来数据流量井喷式增加,现有应用服务模式不能实时有效处理[1]。所以需要有新的顶层设计来应对这样的挑战。
为了建立新型的车联网架构,国外许多学者进行了一些探索,如Mendonca等提出将软件定义网络(Software Defined Network,SDN)应用到异构网络环境中,利用SDN自动重新配置的功能来优化通信质量[2]。Ku等提出引入SDN控制器的车辆自组织网络架构[3],他们考虑退回机制,使SDN可以适应车联网络,同时可以使用SDN改善网络管理。M.A.Saahuddin等将SDN应用于路边节点单元(RoadSideUnit,RSU)中,支持SDN控制器功能与虚拟化[4]。
国内一些学者在建立车联网架构上也有比较好的思路,如廉腾飞提出一种将边缘计算应用到车联网中,并且融合SDN优点与多接入边缘计算下迅速执行的优势,提出了灵活与可控的系统框架[5]。段鹏飞设计了一种新型的车联网架构SDVANET,由远程控制器来控制车联网,使得车联网能够根据不同交通场景和通信环境来改变网络的路由策略和转发规则,实现异构环境下车联网的平稳通信[6]。董伟豪提出了一种结合SDN、云计算和雾计算的新型车联网架构,该架构分为四层,利用了软件定义网络的可编程性、云计算的高处理能力和雾计算的去中心化等[1]。张海波等采用软件定义车载网络对全局变量统一调度,实现了资源控制管理、设备信息采集以及任务信息分析[7]。董柏宏等探索软件定义车联网的分层控制结构,由局部控制器和全局控制器组成,实现数据转发和控制分离[8]。高扬水将负载均衡技术与软件定义车联网络架构优势相结合,探讨提高车联网传输性能方面的关键技术[9]。
上述文献基于局部最优的思维去构建车联网架构,没能深入考虑到车联网高移动性、流量剧烈增减和网络异构等特点,所做出的研究成果不能完全匹配实际场景。本文在参考和吸收前人研究的基础上,主要做了以下工作。
1 系统架构的设计
1.1 软件定义车联网
软件定义网络的思想应用于车联网形成软件定义车联网,可以使之能适应车辆动态接入和退出、车流量剧增剧减和车辆移动性等因素引起的拓扑结构动态变化。图1是软件定义车联网架构。
1.2 云计算重构车联网
云计算作为一种新的计算模式,近几年有了快速发展,已经成功被应用到许多领域,取得了很好的效果,把云计算技术应用到车联网中,可以有效解决车联网中海量数据的存储和处理问题。结合SDN和云计算技术,我们提出一种新的车联网架构,见图2。
这种车联网架构可以解决车联网数据传输、存储和处理问题,但一些车联网应用场景如自动驾驶、紧急救援和智能化交通管理等对实时性有着非常严格的要求,若数据从车载终端传送到云计算中心处理后,再传到车载终端,这样的时延会非常大,会对车联网有些应用场景带来灾难性后果。需要把部分存储和处理能力下沉到边缘端,满足车联网實时性要求。
1.3 云边端协同车联网架构
边缘计算可以为终端用户提供动态和实时的服务计算,一些控制可以通过边缘设备实现而无需交由云端,处理过程可以在本地边缘端完成。车联网中如自动驾驶、紧急救援和智能化交通管理等对实时性要求很高,应用边缘计算技术可以有效解决实时快速响应问题。结合前述的SDN和云计算技术,我们提出一种四层架构的车联网架构,见图3。
⑴ 应用层:由应用服务器和云数据中心服务等组成,完成海量网联数据存储和处理,和面向具体应用的接口。
⑵ 软件定义层:由交换机和SDN控制器等组成,通过编程对网络拓扑和流量转发进行定义。SDN控制器将访问控制或者路径选择等网络策略转换为SDN交换机的流表规则,完成车联网的拓展和一些新服务部署。
⑶ 边缘层:由路边单元、基站和边缘服务器等组成。使车联网实时数据能够快速处理和与云数据中心保持协同,保证数据一致性。
⑷ 节点层:由传感器、摄像头和车载设备等组成。收集车联网原始数据,并且传送到相应接收设备。
车联网期望朝着终端的智能化、连接的多样性、数据的共享性和服务的平台化方向发展;新型汽车不仅是载人载物的工具,而是朝着多媒体化和智能化等复合功能型平台方向演进,不断IP化和ICT化,软件定义可以使终端软硬件解耦。本文提出了一种基于KubeEdge框架的软件定义车联网云边端协同一体化架构,该架构将Docker容器技术、Kubernetes技术与SDN技术相结合,适应车联网自身特点,实现智能化、自动化和多媒体化车联网架构。
2 云边端协同框架KubeEdge
KubeEdge是解决边缘场景问题的开源系统,在 Kubernetes原生容器编排和调度功能上面,可以实现云边协同、计算下沉和边缘自治、海量边缘设备管理等能力。KubeEdge架构如图4所示,包括边缘端和云端两部分。
⑴ KubeEdge 的云端包含的组件
CloudHub:WebSocket服务器,负责监控云端的变化和缓存并把消息发送到EdgeHub。EdgeController:拓展的Kubernetes控制器:负责管理pods和边缘节点的元数据。DeviceController:拓展的Kubernetes控制器,负责管理边缘设备,实现同步的边缘设备元数据或状态数据。
⑵ KubeEdge 的边端包含的组件
EdgeHub:WebSocket客户端,负责与云和边实现交互。Edged:负责管理pod生命周期,相当于Kubernetes中的 kubelet。EventBus:是一个MQTT客户端负责与MQTT服务器mosquitto的交互总线,提供发布与订阅功能给其他组件。ServiceBus:是一个HTTP客户端与HTTP服务器使用REST进行交互总线,提供HTTP客户端功能给云端组件。DeviceTwin:负责存储设备状态,同步设备状态到云端,也提供了查询接口。MetaManager:是edged与edgehub之间的message处理器,同时,也负责存储元数据到轻量级数据库SQLite。
⑶ 边缘设备管理
KubeEdge通过Kubernetes的CRD,增加了Device-Model(描述设备元信息)和 Device(描述设备实例信息)两个资源,见图5,图6。
⑷ 云边自定义消息传递
在实际一些应用场景中,如在云边应用之间,用户需要传递一些自定义的信息。基于Kubernetes的 CRD,KubeEdge补充了ruleEndpoint和rule两个资源。ruleEndpoint定义了信息源端和目的端,rule定义了路由规则,可以实现在云边间传递消息的。ruleEndpoint有三种类型:rest,eventbus和servicebus。见图7。
综上所述,KubeEdge解决了边缘计算的五个问题:云边协同、支持异构、大规模设备接入、轻量化边端、不同的设备管理和接入体验一致。可尝试应用于车联网中解决面临的挑战[11]。
3 基于KubeEdge框架的软件定义车联网云边端架构
3.1 车联网系统架构—云部分
车联网系统可构建为一个云、边和端协同的平台体系。云端提供云端计算服务,主要包括两大系统:大数据应用系统和车辆管理系统。其中大数据应用系统主要提供规则引擎、数据采集清洗、大数据存储分析与可视化、智能学习等功能。车辆管理系统主要提供车辆发现、监控管理、应用管理、容器管理等功能。边端通过边缘智能设备提供设备的接入、边缘计算、协议解析的能力[10]。如图8所示。
3.2 车联网系统架构-边部分
边部分硬件主要由路边智能设备和车载智能设备组成。边端系统内置边缘代理程序,通过云端边缘控制服务与边缘代理的连接,实现对边端智能终端的管理[10]。边端部分系统架构如图9所示。
3.3 适应车联网系统的KubeEdge的改造
车联网系统对边端设备、容器和应用等细粒度的管理,需要对KubeEdge进行改造,新增边缘端设备状态信息上报到云端和云端更新设备的操作同步到边缘端[10]。
⑴ 边缘端设备状态信息上报到云端。边缘端设备状态信息上报示意如图10所示,在边端代理中新增了acstatus模块,主要用于采集边端设备硬件信息,以及容器及容器内部应用等相关信息。边端通过acstatus模块周期性地采集信息,并通过edgehub与cloudhub建立TCP连接通道发送给云端edgeapiserver 模块,edgeapiserver块收到信息后,再在终端管理平台进行持久化。
⑵ 云端更新设备的操作同步到边缘端。在KubeEdge中最小的管理单元是容器,不能直接管理到容器内部应用,因此通过增加acworker模块可以实现对容器内部的应用管理,应用管理示意如图11所示,智能终端管理平台下发启动或停止或删除操作给edgeapiserver 模块,edgeapiserver模块通过cloudhub与edgehub之间建立的TCP连接通道发送给边端 acworker模块。acworker模块可以通过Docker API完成下发启动或停止或删除操作给容器内部应用,最后返回处理结果给云端。
4 结束语
在人工智能、新能源汽车、自动驾驶和智能交通系统等技术和应用快速发展的时代,车联网应运而生并被推到风口上,车联网的高移动性、实时性、流量瞬时增减和网络异构等特点,决定其与传统的ICT和IOT网络有很大的区别,本文经过分析,提出软件定义云边端协同一体化车联网架构。
KubeEdge是一个致力于解决云边端场景问题的开源系统框架,在Kubernetes原生容器编排和调度之上,实现了云边协同和计算下沉、边缘自治和海量边缘设备管理等能力。为了适应车联网系统的管理,本文对KubeEdge进行了改造,增加了一些新的操作流程,该方法通过软硬件协同一体化的思路,利用容器、大数据、人工智能技术,尝试高效地对车联网进行管理。本文仅仅是对车联网设计了一个基本框架和研究方向,下一步就是做好落地转化工作,并验证其可行性,并继续研究车联网中卸载策略、多接入和路由等课题。
参考文献(References):
[1] 董伟豪.云雾一体化软定义车联网架构和性能优化[D].硕士,北京:北京交通大学,2018
[2] Mendonca M,Obraczka K,Turletti T.The case for software-defined networking in heterogeneous networking environments[C]//ACM Conference on CONEXT Student Workshop.ACM,2012:59-60
[3] Ku I,Lu Y, Gerla M,etal.Towards Software-Defined VANET:Architectures and Services[J].IEEE,2014:103-110
[4] Salahuddin MA,Al-Fuqaha A,Guizani M.Software-Defined Networking for RSU Clouds in Support of theInternet of Vehicles[J].IEEE Internet of Things Journal,2015,2(2):133-144
[5] 廉腾飞.基于SDN的车联网边缘计算及协作分载机制研究[D].硕士,开封:河南大学,2019
[6] 段鹏飞.基于软件定义的车联网QoS路由框架研究[D].硕士,上海:华东师范大学,2017
[7] 张海波.车联网中一种基于软件定义网络与移动边缘计算的卸载策略[J].电子与信息学报,2020,42(3)
[8] 董柏宏.软件定义车联网的数据转发策略和路由选择技术[J].计算机应用,2018,38(1):26-30,49
[9] 高揚水.软件定义车联网负载均衡关键技术的研究[D].博士,北京:北京邮电大学,2020
[10] 阮正平,佘文魁,李凯,等.基于KubeEdge 架构的边缘智能设备管理研究[J].电力信息通信,2020,18(2):63-68
[11] 周浩.边缘计算平台KubeEdge云边协同机制解析.云原生社区动态[微信公众号],2022-7-18
*基金项目:广州市科技计划项目基础与应用基础研究项目(202201011756); 2021年广东省科技创新战略专项资金(大学生科技创新培育)(pdjh2021b0886)
作者简介:柳义筠(1974-),男,湖北省黄梅县人,硕士,讲师,主要研究方向:云原生、SDN。