天天看點

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃

作者|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 主打 “雲邊一體化” 的概念,針對邊緣計算場景中的網絡環境複雜、大規模應用傳遞、運維困難等痛點,提供了邊緣自治、雲邊運維通道、單元化部署、一鍵式叢集轉化等能力,通過将雲邊節點統一管理,使得邊緣節點擁有與雲端相同的能力,幫助開發者輕松完成在海量邊緣資源上的大規模應用傳遞、運維、管控。

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃
基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃

2、EdgeX Foundry:邊緣物聯網管理平台

EdgeX Foundry 是一款由生态系統提供強力支援的邊緣物聯網即插即用型、開放式軟體平台。它具有高度靈活和可擴充性,可以大大的降低應用與邊緣裝置,傳感器等硬體互操作的複雜性。EdgeX Foundy 采用分層和服務的設計,從下至上分别是裝置服務,核心服務,支援服務,應用服務以及安全和管理兩個輔助服務。EdgeX Foundry 的分層和服務為邊緣裝置/節點和雲/企業應用之間提供了一個雙向轉換引擎。可以将傳感器和節點資料按特定格式傳輸到應用,也可以将應用指令下發到邊緣裝置。

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃
  • 裝置服務層:裝置服務将“物”即傳感器和裝置連接配接到 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 服務可以配置。

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃
  • 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 的方式來管理邊緣平台上的裝置資訊,如建立裝置、删除裝置、更新裝置屬性(如設定燈的開和關等)。

下面是雲邊端三者整體的架構模型:

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃

邊緣端裝置的通信範圍往往局限于某一網絡區域内,是以可以将同一網絡區域内的邊緣節點劃分為一個節點池,在每一個節點池内部署一個 Edgex Foundry 執行個體和一個 yurt-device-controller 元件:

  • 在與雲端 apiserver 的通信中,Yurt-device-controller 隻會監聽屬于該節點池内的裝置對象,并将更新資訊通過 Edgex Foundry 執行個體及時地同步至對應的裝置上;
  • 在與 Edgex Foundry 執行個體的通信中,複用 YurtHub、節點池以及單元化部署等能力,Yurt-device-controller 元件隻會通路本節點池内的 Edgex Foundry 執行個體,并将接入該節點池内的裝置資訊抽象為 device、deviceService 和 deviceProfile 對象同步至雲端。

社群合作規劃

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃
基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃

未來,雙方還将面向 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 項目!

了解更多相關資訊,請掃描下方二維碼或搜尋微信号(AlibabaCloud888)添加雲原生小助手!擷取更多相關資訊!

基于 OpenYurt & EdgeX Foundry 的雲邊端一體化解決方案背景介紹拓展 “端” 的能力OpenYurt v0.5.0 裝置管了解決方案社群合作規劃

繼續閱讀