【DTSE Tech Talk 精选问答】NO.63丨边云协同新场景,KubeEdge架构设计与边缘AI实践探索

举报
云小宅 发表于 2024/08/07 15:53:52 2024/08/07
【摘要】 展望未来科技前沿,探索云原生边缘计算与边缘AI的无限可能!本期直播我们将解读业界首个云原生边缘计算框架KubeEdge的架构设计,如何实现边云协同AI,将AI能力无缝下沉至边缘,让AI赋能边侧各行各业,构建智能、高效、自治的边缘计算新时代,共同探索智能边缘的新篇章!

展望未来科技前沿,探索云原生边缘计算与边缘AI的无限可能!本期直播我们将解读业界首个云原生边缘计算框架KubeEdge的架构设计,如何实现边云协同AI,将AI能力无缝下沉至边缘,让AI赋能边侧各行各业,构建智能、高效、自治的边缘计算新时代,共同探索智能边缘的新篇章!
直播链接https://bbs.huaweicloud.cn/live/DTT_live/202407241630.html

Q:云边协同推理是在云和边各一个模型吗?是通过什么指标将任务卸载到云端呢?

A:sedna案例中云边协同推理是将一个大模型部署在云端,并将一个小模型部署在边缘端,对于简单的推理任务可以直接在边端推理,针对较难的任务可以由云端大模型推理。我们可以设置一个置信度阈值指标判断推理任务是否是难例,将难例使用云端大模型推理。

Q:k8s 调用 kubeEdge 服务兼容性不匹配,如何解决?

A:可能是因为版本的原因,一个kubeedge的版本能够兼容3个k8s的版本,需要安装合适版本的k8s。

Q:边缘节点的故障恢复,KubeEdge是如何处理的?

A:KubeEdge利用边缘侧轻量级数据库实现了云边消息元数据的持久化,这是其故障恢复能力的重要基础。通过将Pod、ConfigMap等基础元数据持久化在边缘节点上,确保即使在边缘节点离线或重启后,这些元数据也能被保留下来。这样,当边缘节点重新上线时,它可以直接从本地获取这些元数据,快速恢复应用的状态。

Q:现在安装KubeEdge最简单的方式有推荐吗?

A:社区推荐大家使用官方安装组件keadm进行安装,使用keadm安装时在云端节点只需执行keadm init命令进行初始化,获取秘钥后在边缘节点上执行keadm join命令即可。详细的安装教程可以参考官方文档https://kubeedge.io/docs/setup/install-with-keadm。此外,对于想试用KubeEdge功能的初学者,还可以使用keink工具自动创建一个KubeEdge集群,可以参考https://github.com/kubeedge/keink

Q:KubeEdge在边缘AI场景下如何提升模型的推理效率?

A:kubeedge一方面借助Kubernetes的容器编排能力,实现了边缘AI应用的自动化部署和管理。另一方面还提出边缘AI智能框架sedna,其边云协同的理念能借助云端充足的资源提升边缘模型的性能,也可以使用边云协同推理提升系统推理效率。

Q:kubeedge是否在边缘异常断电文件系统损坏做了相关优化, 边缘侧电力稳定性有可能较差,会存在异常断电场景

A:kubeedge主要是对云边消息传递的可靠性做了增强,使用一个轻量级数据库存储云边控制命令的元数据,对于边缘节点的文件系统没有做相关的功能增强。

Q:介绍一下边缘节点和kubeEdge的部署

A:我们目前有三种方式部署kubeedge,分别是采用keadm、二进制部署以及keink自动部署,相关文档可以参考https://kubeedge.io/docs/category/setup

Q:边缘AI在哪些行业有应用前景?

A:边缘AI在智慧城市、智能家居、智慧医疗、AR/VR技术等方面有着广阔的应用前景。

Q:边缘计算环境中,KubeEdge如何保障数据的安全性和隐私性?

A:KubeEdge在节点安全方面,采用了容器隔离、CNI网络安全、节点入侵检测和容器自愈等技术。在访问控制方面,利用Kubernetes的RBAC(基于角色的访问控制)权限管理功能,能够对集群资源进行细粒度的访问控制。

Q:云边之间的数据传输是否支持视频格式的传输?

A:这里我们主要考虑到视频一般的传输数据量是很大的,如果使用云边通道进行传递会导致严重的通信负荷,使用目前在kubeedge 1.17版本的特性中我们只实现将摄像头采集到的视频流转化成帧文件或者视频片段存在边缘节点上,暂时不支持向云端传输。

Q:CDN部署过程中,怎么保证节点容器有序和可控的升级? 是否支持版本的A/B 测试? 怎么对升级过程进行校验?

A:可以通过分批升级与组内升级并发控制、细粒度版本设置、升级校验等方式解决以上问题,可以参考https://kubeedge.io/zh/case-studies/ctyun/

Q:对于数据孤岛问题。对于需要对设备调节参数的场景,同一租户在不同楼宇中的控制系统,甚至电力系统部互通。那么对于这种需要预测的参数怎么去调整?同样的情况下,基于安全原因,不支持打洞,那edgemesh是不是就不能用了?

A:可以采用sedna中提供的联邦学习能力,在边缘侧直接进行模型训练,只把训练得到的模型参数上传云端。Edgemesh核心的特点就是使用中继和P2P打洞技术联通边缘节点。

Q:云边协同推理是根据哪些指标将任务卸载到云端呢?

A:在sedna有关云边协同推理的案例中,是通过设置一个阈值指标用于衡量推理任务是否是难例,可以将难例放置在云端进行推理。

Q:Sedna的推算准确率高吗?达到了什么样的程度?

A:sedna的定位主要是为了将用户已有的AI应用下沉至边缘侧,能够让用户部署更便捷,推算的准确度一般是和用户的训练得到的模型相关。

Q:云端训练后的结果如何通过局域网推送到边缘端设备?

A:可以通过云边通道、edgemesh来进行通信。

Q:对比其他边缘计算框架,KubeEdge有哪些独到之处?

A:KubeEdge的核心理念是基于Kubernetes提供的云原生能力,在边缘计算场景下进行了增强,所以一方面有云原生的基础能力支持,比如利用容器化技术屏蔽边缘复杂的底层硬件环境、利用云原生管理技术能够让故障的用户应用迅速回滚;另一方面做了组件轻量化、云边消息可靠性增强以及边缘设备管理能力增强,更加适合云原生边缘计算场景。

Q:因docker的问题边端安装时基础环境镜像无法下载的问题怎么处理,官方是否有备用镜像库

A:可以在能够下载镜像的节点上下载镜像,再打包至边缘节点。

Q:分集群部署K8s的控制面和集群太多,怎么构建统一的CDN调度平台又不会过度占用机器资源?

A:案例中CDN管理平台是在大区的区域中心、数据中心上部署k8s集群,通过kubeedge纳管边缘节点,具体的技术实现可以参考kubeedge官网的案例解读https://kubeedge.io/zh/case-studies/ctyun/

Q:如何评估一个应用场景是否适合采用KubeEdge进行边缘AI部署?

A:可以看具体的应用场景是否有云边协同的需求

Q:Sendna的模型管理中,模型文件量化是如何处理的?模型work是独立运行在容器里面的还是需要和业务相结合的,例如视频的解码、推理、编码不放在一个容器里面的话延时是否会有问题?

A:需要根据实际的使用场景判断,比如解码、推理、编码容器是部署在一个节点上、或者部署在多个节点上的时延是不同的。

Q:脸检测模型最多同时检测到多少张脸啊?

A:需要针对模型的性能、节点资源等角度具体分析。

Q:karmada和KubeEdge有哪些区别?

A:karmada是面向多云原生集群编排的,kubeedge主要面向云原生边缘计算场景。

Q:如何解决边缘节点样本数量少的问题?

A:kubeedge sedna支持多种训练和推理模式,其中终身学习主要用于解决小样本与边缘数据异构问题。Sedna会在云节点上部署一个知识库,能够辅助边缘端完成推理,并不断学习未知任务更新知识库。

Q:KubeEdge最大支持管理多少规模边缘节点?

A:目前有案例表明kubeedge接入的边缘节点规模突破10万,可以参考https://kubeedge.io/zh/blog/scalability-test-report

Q:KubeEdge如何处理多租户环境下的资源隔离?

A:kubeedge依然保留了k8s的原生能力,因此可以通过创建命名空间、创建资源配额等的方式完成多租户环境下的资源隔离。

Q:KubeEdge如何与云服务集成?

A:KubeEdge核心理念是在原有Kubernetes云原生能力的基础上,面向边缘场景做了功能的增强,例如云边传递消息可靠性的增强、组件的轻量化,能够依托目前成为事实标准的Kubernetes api完成边缘与云上一致的使用体验,因此云服务依然可以参考传统Kubernetes中的部署方式进行部署。

Q:云端可以批量升级边缘吗?

A:在KubeEdge 1.16版本中,我们对边缘节点的批量升级这一特性做了功能增强,NodeUpgradeJob 的 Kubernetes API 进行边缘节点的一键化、批量升级。API 支持边缘节点的升级预检查、并发升级、失败阈值、超时处理等功能。对此,KubeEdge 支持了云边任务框架。社区开发者将无需关注任务控制、状态上报等逻辑实现,只需聚焦云边任务功能本身。 具体信息可参考https://kubeedge.io/blog/release-v1.16#support-cloud-and-edge-components-upgrade

Q:EdgeMesh对边缘站点有哪些要求?

A:运行EdgeMesh的边缘节点需要满足正常kubeedge对于边缘节点的要求,例如需要部署容器运行时、还需要满足硬件资源的一些限制。

Q:KubeEdge如何处理边缘计算中的网络不稳定问题?

A:KubeEdge针对边云连接不稳定、时常断连的情况,做了消息可靠性的增强,也是KubeEdge的核心特性之一。云上向边缘端下发控制命令时会检查边缘是否回传了ack应答,以此验证消息是否下发成功,并且云端会将消息进行编号,记录消息的下发。当边缘端长期断链后再次连接时,就不需要将消息全部重新发送,避免造成带宽冲击。另一方面,我们还实现了边缘自治的能力,在边缘节点上部署了一个轻量级的数据库,云上发送到边缘的元数据会保存在这个数据库中进行持久化,在边云连接长时断开或者边缘节点宕机重启后,能从边缘数据库中恢复用户应用。

Q:EdgeMesh Agent之间打洞失败时怎么判断流量是否中转成功?

A:当EdgeMesh打洞失败时可以使用EdgeMesh-server来中继流量,确保流量中转成功。

Q:如果对安全要求很高的情况,那edgemesh的打洞不被允许,那这个特性是不是也用不了了。

A:Edgemesh需要在边缘节点跨局域网时通过P2P打洞和中转技术才能完成边缘节点间的通信。

Q:怎么降低两个边缘节点上的流量经过 EdgeMesh中转的网络时延?

A:可以将EdgeMesh中继节点部署在地理位置适中的位置,以缩短数据传输的物理距离;也可以使用负载均衡技术将流量均匀分配到多个中继节点上,避免单个节点过载,从而提高整体的网络性能和降低时延。

Q:1.12.7版本边端启动一段时间后云端可正常获取到边端的cpu,内存等状态信息,但运行一段时间后(一天或两天不固定)会出现边端状态信息上报失败连接超时,但除状态信息外其他都正常。边端重启后即恢复正常,这种情况可能有哪些原因造成的

A:可以查看日志中是否有其他报错,例如channel已满,也可以使用go pprof等工具查看是否有内存泄露或者goroutine泄露的情况。

Q:边缘设备开发有无官方开发板?

A:目前我们已经内置了一些典型边缘设备协议的mapper插件,例如modbus、onvif等,用户可以直接使用我们提供的mapper对边缘设备进行管理,也可以仿照内置的mapper,自行通过mapper-framework开发框架实现其他协议mapper。内置的mapper地址为https://github.com/kubeedge/mappers-go

Q:kubeEdge连入k8s如何防止抖动(经常断了又连接上)呢,毕竟数量太多的话会对集群造成影响

A:kubeedge针对边云连接不稳定、时常断连的情况,做了消息可靠性的增强,也是kubeedge的核心特性之一。云上向边缘端下发控制命令时会检查边缘是否回传了ack应答,以此验证消息是否下发成功,并且云端会将消息进行编号,记录消息的下发。当边缘端长期断链后再次连接时,就不需要将消息全部重新发送,避免造成带宽冲击。另一方面,我们还实现了边缘自治的能力,在边缘节点上部署了一个轻量级的数据库,云上发送到边缘的元数据会保存在这个数据库中进行持久化,在边云连接长时断开或者边缘节点宕机重启后,能从边缘数据库中恢复用户应用。

Q:KubeEdge对于跨地域的边缘计算部署有哪些支持?

A:KubeEdge 1.11版本引入了“边缘节点分组管理”新特性,该特性允许将边缘节点按地区划分为节点组,使得应用所需资源可以打包成一个整体在节点组上进行部署。这种分组方式有效降低了边缘应用生命周期管理的复杂度,并减少了运维成本。

Q:边缘设备的数量有限制吗?

A:目前已经有案例表明kubeedge能够支持上万边缘设备的管理

Q:KubeEdge支持哪些类型的工作负载?

A:由于kubeedge的核心理念是基于k8s云原生能力,在边缘场景下做了一些功能的增强,因此传统k8s中工作负载的类型在kubeedge中都能够支持,例如deployment、job等。

Q:云原生边缘计算与传统云计算相比有哪些优势?

A:第一,云原生边缘计算拥有低延迟与高实时性,能够更快地响应用户请求,提供更高的实时性服务。第二,云原生边缘计算能够保障数据隐私与安全,能够在本地或靠近数据产生的地方处理数据,减少了数据传输的中间环节,从而提高了数据的安全性。第三,云原生边缘计算能带来带宽与成本优化。数据在边缘端处理能够减少数据传输的距离,降低了对带宽的需求,从而有助于降低网络成本。

Q:KubeEdge对于边缘设备的异构性是如何处理的?

A:kubeedge通过mapper插件对边缘设备进行管理,mapper中集成了设备驱动,可以按照对应的协议访问物理设备、获取边缘设备的数据或者状态。Mapper通过实现edgecore中DMI这个设备管理统一接口完成自身向集群的注册,最终完成设备的纳管。DMI采用grpc+uds的机制,定义了通用的接口,能够屏蔽设备之间的差异。

Q:在KubeEdge的sedna中,实现边云协同AI的具体步骤是怎么样的

A:由于sedna定位并不是tensorflow pytorch这类的深度学习框架,而是提供把用户已有的AI应用能力下沉至边缘端,减少用户构建部署的成本。因此第一,用户需要根据典型的框架实现自己的AI应用,并根据sedna中的要求对代码做一些修改,主要是导入sedna边云协同推理库,设置推理阈值等,修改完成后可以打包为一个镜像;第二,需要实现sedna中定义的部分crd文件,例如model crd定义的用户模型参数;第三,提交AI任务。用户可以定义sedna中JointInferenceService之类的任务crd,提交至集群,由sedna完成部署。

Q:KubeEdge中边缘端和云端是如何高效同步状态和配置信息

A:kubeedge中需要用到多个组件共同协作,完成云边同步状态和配置信息。在云端主要是依靠cloudhub和synccontroller,synccontroller中一方面会对云端下发的消息进行记录并编号,保证消息下发的连续性,另一方面也会定期同步云边状态,cloudhub则是实际执行消息传递的。在边缘端有edgehub,metamanager等组件来辅助云边通信,edghehub和cloudhub对应,接收cloudhub下发的消息并转发,metamanager一方面实现边缘自治,把核心元数据保存在边缘数据库中,一方面会把edgehub中的消息转发到边缘其他模块。

Q:在边云协同过程中,如何处理数据的实时性与一致性?

A:可以依赖kubeedge提供的云边消息同步机制。云端下发消息时会监测边端是否回传ACK应答,确保消息下发成功,另一方面云端使用synccontroller对云端下发的消息进行记录并编号,保证消息下发的连续性,也能定期同步云边状态。

Q:KubeEdge在管理边缘设备必须通过mapper吗

A:kubeedge是需要mapper来管理边缘设备的,mapper是kubeedge中的设备管理插件,其中集成了对应协议设备的驱动程序,能够实际连接到物理设备,并且获取设备状态与数据。Mapper实现了edgecore中DMI的相关接口,能将自身注册入kubeedge集群,并且将管理的设备状态数据通过DMI接口上报到edgecore,edgecore会对这些消息进行处理封装,通过云边通道上传到云端cloudcore,cloudcore中的devicecontroller就是edgecore中上报的设备信息与k8s apiserver通信的桥梁,完成对边缘设备的管理。

Q:基于KubeEdge云原生边缘计算如何保障数据处理的实时性呢?

A:kubeedge整合了云计算的优势和边缘计算的优势,能在靠近物或数据源头的网络边缘侧就近处理海量数据,具有毫秒级的实时响应。

Q:KubeEdge安装部署有什么要求

A:KubeEdge是依赖Kubernetes的,在部署前需要先拥有一个Kubernetes集群,同时KubeEdge也是以容器化的形式管理用户边缘应用的,所以也需要下载相应的容器运行时,比如containerd。Docker等,当然因为目前Kubernetes已经不在使用docker作为默认的容器运行时,所以使用高于1.14版本的KubeEdge时需要使用cri-dockerd,相关容器运行时的安装以及注意事项在我们的官网文档中也有介绍https://kubeedge.io/docs/setup/prerequisites/runtime/,大家可以参考。

Q:KubeEdge如何将AI能力下沉至边缘?有哪些具体的技术实现和优化措施?

A:kubeedge提出了边缘智能框架sedna,基于KubeEdge提供的边云协同能力,支持用户现有AI类应用无缝下沉到边缘,降低用户构建与部署成本、提升模型性能、保护数据隐私。Sedna能够提供基础的边云协同数据集管理、模型管理功能,具有协同推理、增量学习、联邦学习和终身学习的能力,能够更好的实现边云协同AI。

Q:是否依赖边缘节点算力大小?

A:kubeedge从部署的角度来说实现了组件的轻量化,目前已经能将内存占用降低至70M左右,减少了边缘节点的资源要求。除安装需求外,边缘节点算力的需求主要与用户部署的边缘应用相关,需要根据用户应用的大小评测具体的算力消耗。

Q:KubeEdge的架构设计主要关注哪些关键组件?

A:kubeedge云端和边端都运行了众多组件,其中云端组件包括EdgeController、deviceController、Synccontroller、cloudhub等,边端组件包括edgehub、MetaManager、edged、devicetwin、EventBus、ServiceBus等,每个组件都有重要的功能,具体的介绍可以访问我们的官方文档 https://kubeedge.io/docs/category/architecture

Q:对于KubeEdge的边缘节点应该怎么配置?

A:目前官方推荐大家使用keadm这个安装管理工具来部署kubeedge集群,可以在获得云端kubeedge集群的token后,使用keadm join命令加入kubeedge集群,并且自动部署edgecore组件。

Q:KubeEdge与K8s有什么关系,与k8s的兼容性如何,是否支持最新版本的k8s?

A:Kubeedge核心理念是基于k8s原生能力,在边缘计算场景下做了一些增强,因此与k8s的兼容性是kubeedge的核心特点之一。一般来说一个Kubeedge版本可以兼容3个版本的k8s,在每三个月kubeedge发布版本时,都会升级k8s的依赖,我们近期刚发布的1.18版本已经能够兼容1.29 1.28 1.27三个版本的k8s,欢迎大家使用。

Q:边缘计算\边缘AI\云计算有什么区别?

A:云是中心化、按需获取的大规模计算资源共享池,服务于广大的区域,能够提供几乎无限的算力;边缘计算是靠近数据产生源头的计算能力,服务于广小的区域,提供受限的算力。边缘AI是指在边缘计算环境中实现的人工智能。

Q:KubeEdge在边云协同中如何处理数据安全与隐私保护?

A:KubeEdge在数据传输过程中采用了全链路加密技术,确保数据在云端和边缘端之间的传输过程中不被窃取或篡改。这种加密方式涵盖了数据的整个传输路径,从源头到目的地都保持数据的安全性。

Q:KubeEdge如何应对边缘设备的动态性和不确定性?

A:kubeedge采用mapper设备管理插件来实际管理物理设备。在mapper中承载了DMI数据面能力,能够按照用户设置的周期定时采集设备状态与数据,并进行数据推送。

Q:KubeEdge是否支持边缘设备的本地自治?网络中断时,边缘节点能否独立运行和做出决策?可以中断多久?

A:kubeedge针对边云经常断连的情况,在边缘节点上部署了轻量级的数据库,可以存储云端命令的核心元数据,在边缘节点断开连接时能够依靠数据库维持边缘应用和设备稳定运行。在证书未过期的情况下理论上可以保持断连状态,随时重新连接。

Q:KubeEdge是否对边缘侧异常断电场景有优化?边缘侧电力稳定性比较弱 经常断电

A:kubeedge主要是对云边消息传递的可靠性做了增强,在边缘节点上部署一个轻量级数据库存储云边控制命令的元数据,在边缘节点断电重启时可以依据数据库的数据进行恢复



想要了解更多云原生相关知识,欢迎观看DTSE Tech Talk 系列技术直播

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。