边缘计算小型化边缘服务器云原生软ODCC-2022-04102 分布式存储技术与产业分析报告 1 [编号ODCC-2022-04102] 边缘计算小型化边缘服务器云原生 软件架构及参考设计技术白皮书 开放数据中心标准推进委员会 2022-09发布 i 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 版权声明 ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,编制单位共同享有著作权。 转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明来源:“开放数据中心委员会ODCC”。 对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位的配合与支持。 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 ii 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 编制说明 本报告由英特尔牵头撰写,在撰写过程中得到了多家单位的大力支持,在此特别感谢以下参编单位和参编人员: 参编单位(排名不分先后): 英特尔、北京百度网讯科技有限公司、深圳市腾讯计算机系统有限公司、京东科技信息技术有限公司、中国信息通信研究院(云计算与大数据研究所)、工业富联&电子科技大学、浪潮电子信息产业有限公司、新华三技术有限公司、英业达科技有限公司、中国移动研究院、西安三星电子研究所 参编人员(排名不分先后): 陆科进、张骏、吴敏、郭利文、吕文清、姜峰、陈羿函、梁勇顺、吴佳鸿、罗颖姗、邹宁、卞峰伟、周宏兴、黄承华、段明华、秦超、马双、朱清怡、陈刚、董勋、杜海、刘通、刘逸流、吴秋材、陈炜、袁华勇、彭超、谢逸民、陈国锋、王贵林、蔡岳霖、房文义、常金凤、吴美希、孙波、姬忠一、刘香男、闫泽澍、陈向明、黄超凡、汪新新、邱国书、李锴、冯方、豆坤 项目经理: 张骏jun.z.zhang@intel.com 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 目录 版权声明i 编制说明ii 一、背景1 (一)云原生和Kubernetes1 (二)使用云原生的挑战和机遇2 二、边缘服务器上的云原生4 (一)开源云原生框架4 1.OpenYurt4 2.KubeEdge5 3.K3S7 (二)边缘云原生的安全9 1.安全挑战9 2.机密计算9 3.Intel®SGX11 三、云原生边缘推理参考设计15 (一)安全推理框架16 1.OVSA(OpenVINO™SecurityAdd-on)16 2.PPML(Privacy-PreservingMachineLearning)18 (二)参考设计20 1.云原生流水线20 iii 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 2.基于类别的推理策略21 3.基于FPS的资源调度23 4.微服务信任的扩展24 四、致谢26 iv 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 一、背景 边缘计算小型化边缘服务器系统作为中心云计算拓展的基础设施基石,在靠近物或数据源头的网络边缘侧,融合了网络、计算、存储、应用等核心能力,就近提供边缘智能服务,实现了数据应用的本地化,是链接云服务和前端数据应用的关键环节。依托在小型化边缘服务器的边缘计算是基于云计算核心技术,构建在边缘基础设施之上的新型分布式计算形式,在边缘端靠近最终用户提供计算能力,是一种靠近数据源的现场云计算。在软件架构上,边缘服务器继承了以“应用”为中心的现代化的微服务架构和云原生框架,但更聚焦于实时性,短周期,本地决策等业务场景以及使用异构计算引擎加速,按需进行计算优化等特点。 (一)云原生和Kubernetes 在云计算的20年发展历程中,以Xen和KVM为基础的虚拟化技术降低了云计算设计与部署成本,使云计算的硬件资源得到更加高效的利用;Rackspace和NASA合作研发的Openstack开源云管理框架,简化了公共及私有云的建设、部署和管理;容器提供了更轻量级的资源隔离,更快的启动速度,从而推动了以“资源”为中心的云计算框架转向以“应用”为中心微服务架构;谷歌公司开发的Kubernetes成了标准的容器管理编排平台。 图1-1云计算的发展历史1 1https://landscape.cncf.io/ 1 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 Kubernetes遵循以“应用”为中心的技术架构与思想,以一套技术体系支持任意负载,运行于任意基础设施之上;向下屏蔽基础设施差异,实现底层基础资源统一调度及编排;向上通过容器镜像标准化应用,实现应用负载自动化部署;向外突破中心云计算的边界,将云计算能力无缝拓展至边缘及现场,快速构建云边一体基础设施。 (二)使用云原生的挑战和机遇 在云原生架构中,运行在异构的边缘基础设施硬件上的应用程序容器无需任何修改,并可以快速灵活的在数据中心和边缘侧之间迁移。使用Kubernetes及其对底层操作系统和硬件的资源的抽象,软件开发人员可以实现一次创建应用程序然后在任何地方运行它的目标。但云原生应用程序在边缘领域的应用推广存在以下障碍: 软硬件的标准化 在传统数据中心环境下,计算、存储、网络构成硬件资源分配和调度的标准化的单位,OpenStack定义了硬件资源之上的标准化的软件框架。而在以云原生为基础的边缘计算中,CNCF(云原生计算基金会)提供了很多的开源项目以构建完整的云原生软件栈,缺乏标准化的基础硬件和软件做为前提。同时,边缘计算具有受限的硬件资源,动态的负载变化,时迁的计算要求,异构的加速硬件等特点。边缘计算小型化边缘服务器系统正是为这些特点而设计的标准化硬件。本参考设计介绍了如何在此之上使用开源的边缘计算框架构建标准化的云原生推理应用。 边缘运行时安全 边缘计算平台面临着许多新的安全威胁,包括边缘计算节点容易被伪造、边缘容器的安全隔离机制不足容易导致主机被攻击、边缘应用和微服务的安全防护机制薄弱和缺乏硬件安全支持能力,容易导致用户代码和数据被窃取或篡改等,这将大大制约边缘云计算服务模式的发展与应用。所以硬件厂商提出了 2 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 机密计算作为解决方案,使用特殊的硬件将部分或全部数据、特定功能甚至整个应用程序与系统的其他部分隔离开来。这种硬件为数据、函数或应用程序创建了一个可信的执行环境(TEE,有时称为飞地),而操作系统的其他部分无法查看这些数据、函数或应用程序,即使使用调试器,即使操作系统本身受到损害。TEE拒绝运行任何被修改过的代码,比如注入恶意软件。机密计算可以确保内存信息的安全,不仅不会受到网络安全威胁,也不会受到负责运营企业基础设施的第三方平台的威胁。本参考设计定义了使用机密计算加固AI推理应用在小型边缘化服务器上的运行时安全。 单体架构向微服务架构的重构 单体式系统的设计和部署一开始相对简单,随着应用的日益复杂,维持开发者的工作效率和部署速度会变得困难,导致系统升级昂贵且耗时,部署风险升高。相比之下,在云原生范式中,复杂的系统被分解成可以在容器里独立测试和部署的服务。而标准化的Kubernetes云原生平台负责处理许多公共的运维功能,例如部署、自动扩缩、配置、密文管理、监控和提醒等。基于传统单体架构和微服务架构之间的巨大差异,采用微服务设计范式来重构传统的单体架构服务给开发者带来了不小的挑战;另一方面,将云原生应用部署于可信硬件环境下,可能存在的兼容性和性能开销大等问题。本参考设计讨论了在资源受限的边缘基础设施上,使用异构的加速硬件设计和优化微服务。 总之,云原生架构在标准化数据中心取得了很大的成功并被大量部署,而在边缘侧的应用却遇到了各种问题。基于标准化了的边缘计算小型化边缘服务器系统,本参考设计探索并规范了安全推理云原生流水线的软件架构,降低了边缘系统设计的难度,并推动了边缘软件的标准化。 3 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 二、边缘服务器上的云原生 (一)开源云原生框架 Kubernetes作为云原生的主流选择,已经从云端延伸到边缘,依托强大的容器应用编排能力,满足了云边一体化的应用分发、交付、和管控的功能。CNCF中收录的基于Kubernetes的开源边缘计算框架有: 表2-1基于Kubernetes的开源边缘计算框架 OpenYurt K3S KubeEdge 开源许可证 Apache2.0 Apache2.0 Apache2.0 CNCF项目 是 是 是 云边协同 是 不支持 支持 原生支持K8S 是 支持 支持 边缘组件资源占用 大 小 最小 是否去中心化 是 否 是 注:除了表中的框架,还有很多其他优秀的边缘计算框架和开源项目比如StarlingX,OpenEdge,EdgeXFoundry,OpenNESS等,但因为不原生支持Kubernetes或侧重于通讯CT(CommunicationTechnology)领域(比如OpenNESS,StarlingX),所以它们不在讨论之内。 1.OpenYurt OpenYurt是业界首个非侵入的边缘计算云原生平台开源项目。主推“Kubernetes零修改”,“云边端一体化”等设计理念,提供诸如边缘自治、跨网络域的云边流量治理、大规模边缘业务管理、边缘设备的云原生管理,异构资源支持等能力。OpenYurt旨在帮助用户解决在海量边、端资源上完成大规模应用交付、运维、管控的问题,同时为用户提供与云上Kubernetes集群一致的使用体验。 4 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 图2-1OpenYurt架构2 OpenYurt架构分为云端和边缘端两部分,主要设计理念为集中的Kubernetesmaster节点驻留在云端,管理驻留在边缘端的多个边缘节点。每个边缘节点都有适度的计算资源,允许运行多个边缘应用程序和节点守护进程,集群中的边缘节点可以跨越多个物理区域。 2.KubeEdge KubeEdge是基于Kubernetes,将容器化应用的编排能力拓展到边缘主机或边缘设备。它在云端和边缘端提供网络通信,应用部署、元数据同步等功能。同时支持MQTT协议,允许开发者在边缘端自定义接入边缘设备。它提供边缘节点自治能力,边缘节点数据处理能力,可在私有,公有云中混合部署。 2https://openyurt.io/zh/docs/next/core-concepts/architecture/ 5 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 图2-3KubeEdge架构3 KubeEdge架构上清晰地分为三层,分别是:云端、边缘和设备层,这是一个从云到边缘再到设备的完整开源边缘云平台。 云端包括: CloudHub:云中的通信接口模块。一个Web套接字服务器,负责监视云端的更改、缓存和向EdgeHub发送消息 EdgeController:管理Edge节点。一种扩展的Kubernetes控制器,它管理边缘节点和pod元数据,来定义边缘节点。 DeviceController负责设备管理。一种扩展的Kubernetes控制器,用于管理设备,以便设备元数据/状态数据可以在边缘和云之间同步。 边缘包括: 3https://kubeedge.io/zh/docs/kubeedge/ 6 边缘计算小型化边缘服务器云原生软ODCC-2022-04102 Edged:在边缘节点上运行并管理容器化应用程序的代理。 EdgeHub:Edge上负责与云服务交互的Web套接字客户端。负责与用于边缘计算(如KubeEdge体系结构中的EdgeController)云服务交互的Web套接字客户端。 EventBus:使用MQTT处理内部边缘通信