
作者 | 高文俊
來源|
阿裡巴巴雲原生公衆号
簡介
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)加入釘釘交流群。