简介:近日,OpenYurt 与 EdgeX Foundry 社区单干,实现了集成对接:从 v0.5.0 版本开始,OpenYurt 将正式反对部署和治理 EdgeX Foundry,并以云原生的形式治理端设施,单方将独特帮忙开发者轻松、高效地解决物联网边缘计算场景下端设施治理和运维的挑战。
作__者|_VMWare 主任工程师:_刘武明、_浙江大学 SEL 实验室研究生:_陈涛__
审核 & 校对:溪洋、海珠
编辑 & 排版:雯燕
背景介绍
边缘计算区别于传统的核心云计算模式,并被宽泛地利用于汽车、农业、能源、交通等各行各业。Gartner 将边缘计算分为 “Cloud”、”Far Edge”、”Near Edge” 三局部,别离对应常见的公共云 / 公有云、云下 IDC/CDN 节点以及设施终端;即常说的“云、边、端”三层构造。随着算力和业务的逐级下沉,网络环境越来越简单,设施资源越来越受限,设施架构越来越丰盛,这些变动给运维治理边缘节点、设施,进步边缘利用的可靠性、资源的利用率等方面,都带来了微小的挑战。
近日,OpenYurt 与 EdgeX Foundry 社区单干,实现了集成对接:从 v0.5.0 版本开始,OpenYurt 将正式反对部署和治理 EdgeX Foundry,并以云原生的形式治理端设施,单方将独特帮忙开发者轻松、高效地解决物联网边缘计算场景下端设施治理和运维的挑战。
1、OpenYurt:非侵入式的边缘云原生智能平台
OpenYurt 基于原生 Kubernetes 构建,由阿里云于 2020 年 5 月开源,并于同年 9 月份入选 CNCF SandBox 我的项目,是业界首个对 Kubernetes 无侵入的边缘计算云原生开源平台。OpenYurt 主打“云边一体化”的概念,针对边缘计算场景中的网络环境简单、大规模利用交付、运维艰难等痛点,提供了边缘自治、云边运维通道、单元化部署、一键式集群转化等能力,通过将云边节点对立治理,使得边缘节点领有与云端雷同的能力,帮忙开发者轻松实现在海量边缘资源上的大规模利用交付、运维、管控。
2、EdgeX Foundry:边缘物联网治理平台
EdgeX Foundry 是一款由生态系统提供强力反对的边缘物联网即插即用型、开放式软件平台。它具备高度灵便和可扩展性,能够大大的升高利用与边缘设施,传感器等硬件互操作的复杂性。EdgeX Foundy 采纳分层和服务的设计,从下至上别离是设施服务,外围服务,反对服务,应用服务以及平安和治理两个辅助服务。EdgeX Foundry 的分层和服务为边缘设施 / 节点和云 / 企业应用之间提供了一个双向转换引擎。能够将传感器和节点数据按特定格局传输到利用,也能够将利用指令下发到边缘设施。
- 设施服务层:设施服务将“物”即传感器和设施连贯到 EdgeX 的其余部分。设施服务是与“物”交互的边缘连接器,包含但不限于警报系统、家庭和办公楼中的供暖和空调零碎、灌溉系统、无人机、自动化运输(例如一些铁路零碎)等等。
- 外围服务层:外围服务包含外围数据库,外围元数据,配置和注册表以及外围命令 / 管制四个服务。他们是对各类设施的一层形象,保留和收集传感器的数据和元数据,以及来自利用的命令 / 管制以及配置。
- 反对服务层:次要包含警报服务、告诉服务、打算服务,以及规定引擎。
- 应用服务层:应用服务负责从 EdgeX 提取、解决、转换和发送感测数据到用户抉择的断点或者流程。EdgeX 当初提供了很多应用程序服务示例以将数据发送到一些次要的云提供商。
- 平安服务层:爱护 EdgeX 治理的设施、传感器和其它物联网对象的数据以及管制。EdgeX 的平安性能建设在凋谢接口、可插拔、可更换模块的根底之上。
- 治理服务:为内部管理系统提供对立的借口以便于其启动、进行、重启 Edgex 服务、获取服务的状态或者相干指标,以便于 EdgeX 服务能够被监控。
拓展“端”的能力
根据上述介绍能够看到,OpenYurt 善于以非侵入的形式,实现云边资源的对立治理和运维,使得边缘节点领有云端雷同的能力。但随着将相干纳管能力拓展至“端”这一层时,因为近端设施异构资源反对简单、通信形式多样、散布地位扩散等特点,会呈现以下问题:
- 为了反对各种边缘设施,现有的 OpenYurt 框架必须为每个类别的设施开发专用的适配器;
- 在间接纳管端设施的过程中,现有解决方案要么扭转 Kubernetes 架构,要么显著批改外围组件,失落一些上游 Kubernetes 个性的同时,与 OpenYurt 的非侵入式理念相悖。
从 v0.5.0 版本开始,Openyurt 和 EdgeX Foundry 社区通过可扩大形式深度交融,在边缘计算、设施治理、物模型定义、云原生 IoT 畛域进一步单干,实现“云、边、端”三者的强力协同。OpenYurt 通过集成 EdgeX Foundry 设施治理平台,正式反对端设施的治理能力。用户能够应用 Yurt-edgex-manager 组件一键式部署 Edgex Foundry 实例,并通过部署 Yurt-device-controller 组件买通边缘设施治理平台和云端之间的运维治理通道,容许用户申明式地治理边缘设施,为用户提供 Kubernetes 原生治理端设施的体验。
OpenYurt v0.5.0 设施治理解决方案
1、应用 OpenYurt 编排部署 EdgeX Foundry
在最新 OpenYurt 中引入了一个 Yurt-edgex-controller 的控制器来治理 EdgeX CR。EdgeX CR 是对 EdgeX Foundy 在 OpenYurt 中部署的一个形象,用户能够操作 CR 的形式来治理 EdgeX 的部署,更新,删除。不再须要写简单的 Yaml 文件以及 Helm Chart。
用户只须要创立一个 EdgeX 的 CR,Yurt-edgex-controller 会依据 CR 中版本以及对应的 Nodepool 的名字部署 EdgeX。用户在一个集群中能够依据 Nodepool 的数量部署多个 EdgeX,每个 EdgeX 的版本,以及包含的 EdgeX 服务能够配置。
- EdgeX: 是一套 EdgeX foundy 部署的形象,包含 EdgeX foundry 的版本,以及须要部署的 Nodepool 的名字。根底的 EdgeX CR 包含 8 个根底的 EdgeX 服务和部署,此外还提供 AdditionalDeployment 和 Additional Service 的字段,让用户能够部署任何所需的 EdgeX 组件和第三方利用。
在 OpenYurt 中,EdgeX 的服务通过以 Kubernetes 服务的模式来对外提供拜访,只管不同的 EdgeX 实例应用雷同 Kubernates 服务名称,ServiceToploy 会确保 EdgeX 组件只能拜访属于同一 EdgeX 实例的其余组件,而不会产生穿插拜访的情绪。Yurt-edgex-controller 利用 unitedeployment 的能力,在 Nodepool 中部署 EdgeX 的组件。
2、云原生 IoT 模型
设施信息形象
为治理事实世界中的设施,须要对设施治理相干的服务进行形象,Yurt-device-controller 作为连通云和边缘治理平台的组件,形象出了三个 CRD,用于映射对应设施治理平台上的资源,它们别离是 DeviceProfile、DeviceService 和 Device:
- DeviceProfile:形容了应用雷同协定的一种设施类型,其中包含一些通用信息,如制造商名称、设备描述和设施型号。DeviceProfile 还定义了此类设施提供的资源类型(例如,温度、湿度)以及如何读取 / 写入这些资源。每个 device 都须要关联一个 DeviceProfile;
- DeviceService:是与设施交互的边缘连接器在云端的映射,定义了如何将设施接入到边缘设施治理平台,包含设施的通信协议,通信地址等信息。每个 device 都须要关联一个 DeviceService;
- Device:是事实世界中端设施的映射,例如:电器、警报系统、照明、传感器等设施,它给出了特定设施的具体定义,包含关联的 DeviceProfile(属于哪类设施)、关联的 DeviceService(应用何种通信形式)以及设施特有属性(如照明设备的开关状态等)。
设施治理架构
通过形象出上述三种 CRD,能够反馈出设施根本的状态信息,再应用对应的 controller 与边缘设施治理平台进行交互,能够将边侧发现的端设施及时映射至云端;与此同时,Yurt-device-controller 组件将云端针对设施属性的批改(例如:设置照明设备的开关状态)同步至端设施上,从而影响真实世界中的物理设施。用户只须要申明式地批改 CRs 的相应字段,以一种云原生的形式即可达到运维、治理简单端设施的目标,上面是组成 Yurt-device-controller 的三个组件:
- DeviceProfile controller:它能够将边缘平台中的 deviceProfile 对象形象为 deviceProfile CR 并同步到云端。在 deviceProfile controller 的反对下,用户能够在云端查看、创立或删除边缘平台的 deviceProfile。
- DeviceService controller:它能够将边缘平台中的 deviceService 对象形象为 deviceService CR 并同步到云端。在 deviceService controller 的反对下,用户能够在云端查看、创立或删除边缘平台的 deviceService 信息。
- Device controller:它能够将边缘平台中的 device 对象形象为 device CR 并同步到云端。在 device controller 的反对下,用户能够通过申明式批改云端 device CR 的形式来治理边缘平台上的设施信息,如创立设施、删除设施、更新设施属性(如设置灯的开和关等)。
上面是云边端三者整体的架构模型:
边缘端设施的通信范畴往往局限于某一网络区域内,因而能够将同一网络区域内的边缘节点划分为一个节点池,在每一个节点池内部署一个 Edgex Foundry 实例和一个 yurt-device-controller 组件:
- 在与云端 apiserver 的通信中,Yurt-device-controller 只会监听属于该节点池内的设施对象,并将更新信息通过 Edgex Foundry 实例及时地同步至对应的设施上;
- 在与 Edgex Foundry 实例的通信中,复用 YurtHub、节点池以及单元化部署等能力,Yurt-device-controller 组件只会拜访本节点池内的 Edgex Foundry 实例,并将接入该节点池内的设施信息形象为 device、deviceService 和 deviceProfile 对象同步至云端。
社区单干布局
将来,单方还将面向 IoT 行业持续摸索云原生边缘设施治理的解决方案,并吸引更多轻量级边缘设施治理平台退出 OpenYurt 生态,使端设施的治理更加便捷、高效以及云原生。
相干链接:
1)Yurt-edgex-manager:
https://github.com/openyurtio/yurt-edgex-manager
2)Yurt-device-controller:
https://github.com/openyurtio/yurt-device-controller
3)OpenYurt 官网:
https://openyurt.io/en-us/
4)EdgeX Foundry 官网:
https://www.edgexfoundry.org/
戳 这里,立刻理解 OpenYurt 我的项目!
版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。