作者 | 高文俊
來源|阿里巴巴雲原生公眾號
簡介
OpenYurt 是由阿里雲開源的基於原生 Kubernetes 構建的、業內首個對於 Kubernetes 非侵入式的邊緣計算項目,目標是擴展 Kubernetes 以無縫支持邊緣計算場景。它提供了完整的 Kubernetes API 兼容性;支持所有 Kubernetes 工作負載、服務、運營商、CNI 插件和 CSI 插件;提供良好的節點自治能力和雲邊協同能力。OpenYurt 可以輕鬆部署在任何 Kubernetes 集群服務中,讓強大的雲原生能力擴展到邊緣。
邊緣本地存儲
OpenYurt v0.4.0 版本推出全新特性:邊緣本地存儲管理,用於高效地管理邊緣節點的存儲資源,用戶可以通過 ConfigMap 來動態配置集群內節點的本地資源,並能無縫對接 CSI 存儲插件,通過原生的 PV/PVC 方式使用本地存儲。
該項目組件主要包含兩個部分, 一個是定義在集群中 kube-system namespace 的 node-resource-topo ConfigMap, 一個是部署在集群中 kube-system namespace 下面的 node-resource-manager Daemonset, 每個 Node 節點上的 node-resource-manager 通過掛載 node-resource-topo ConfigMap 的方式生產並管理用戶定義的本地資源。架構如下:
主要優點:
- 簡單易用:node-resource-manager 可以僅通過定義 ConfigMap 就完成對集群中的本地資源的初始化和更新。
- 易於集成:node-resource-manager 可以與 csi 插件集成來完成 kubernetes 集群中的相關本地資源的生命週期管理。
- 與雲平臺無關:node-resource-manager 可以輕鬆部署在任何完全兼容 Kubernetes API 的集群中。
關於邊緣本地存儲設備管理的詳情和使用方法,請參考 configmap.md:
https://github.com/openyurtio/node-resource-manager/blob/main/docs/configmap.md。
IOT 設備管理 API
阿里聯合 VMware 在 OpenYurt 社區推出了 IOT 邊緣設備管理的 API 標準定義,API 基於 Kubernetes 的 CRD(custom resource definitions)模型實現。任何邊緣平臺只需實現對應 CRD Controller,即能通過這些 API 接入 OpenYurt 集群,完成面向終態的設備管理。
未來我們將繼續基於 OpenYurt + EdgeX Foundry 來進行 IOT 等邊緣場景下的探索,共建統一 API 下的多場景設備接入、使能和融合能力,打造雲原生 IOT 領域標準。
關於 API 定義,請參考《Proposal: managing edge devices by integraing Edgex Foundry into OpenYurt》:
https://github.com/openyurtio/openyurt/pull/236
支持 Kubernetes 1.18 版本
OpenYurt 正式支持 Kubernetes 1.18 版本,用戶可無縫轉換 Kubernetes 1.18 集群至 OpenYurt 集群,並使用 1.18 版本的 API 和新特性。
更多特性
- YurtHub 支持 CRD 緩存,邊緣應用可在雲邊斷網情況下,使用 CRD 的擴展能力,如 Calico、各類自定義 Operator 等,請參見《Proposal: enhance the caching ability of YurtHub》:https://github.com/openyurtio/openyurt/pull/244
- UnitedDeployment 支持 Patch 特性,UnitedDeployment controller 支持 在不同 nodepool 內進行 workload 的差異化配置,如 images、resources 等,請參見《Feature: UnitedDeployment support patch for pool》:https://github.com/openyurtio/yurt-app-manager/pull/12
- 支持 Prometheus 和 Yurt-Tunnel-Server 跨節點部署,請參見《Feature: add dns controller to sync cluster node dns records》:https://github.com/openyurtio/openyurt/pull/270
- Yurtctl 支持 Kind 集群一鍵轉換,請參見《Add support for the conversion between kind and OpenYurt cluster》:https://github.com/openyurtio/openyurt/pull/234
- 新增邊緣容器網絡特性說明,針對邊緣弱網場景,提供邊緣網絡插件的定製化特性,如 MAC 地址保持,IP 地址保持,並提供相應代碼參考和使用說明,請參見《add edge-pod-network doc》:https://github.com/openyurtio/openyurt/pull/302
- 制定社區治理規則,基於社區反饋,設立 Member,Reviewer,Approver,Maintainer 等角色,明確成員職責和准入、提升條件,規範化社區治理,鼓勵社區同學參與共建,請參見:https://github.com/openyurtio/community/blob/main/community-membership.md
未來計劃
OpenYurt V0.4.0 版本發佈,提供了邊緣本地存儲管理,邊緣 IOT 設備管理等全新能力,併發布了 Kubernetes 1.18 版本的支持,以及一系列擴展能力和優化。未來 OpenYurt 社區會在本地存儲項目提供存儲調度能力,在 IOT 設備管理領域持續投入和探索演進,在社區治理和貢獻者體驗方面加大建設力度,同時也非常歡迎有興趣的同學加入參與共建,共同打造一個穩定、可靠的雲原生邊緣計算平臺。
更多社區詳情請關注:https://github.com/openyurtio/openyurt。
相關鏈接:
- OpenYurt v0.4.0 CHANGELOG:https://github.com/openyurtio/openyurt/blob/master/CHANGELOG.md#v040
- OpenYurt 使用教程:https://github.com/openyurtio/openyurt/tree/master/docs/tutorial
- OpenYurt 官網:https://openyurt.io/
如果您對於 OpenYurt 有任何疑問,歡迎使用釘釘搜索群號(31993519)加入釘釘交流群。