Author | Gao Wenjun
Source｜ Alibaba Cloud Native Public
OpenYurt is the industry's first non-intrusive Kubernetes edge computing project Cloud's open source 160c09f3ab0bad based on native Kubernetes. The goal is to extend Kubernetes to seamlessly support edge computing scenarios. It provides complete Kubernetes API compatibility; supports all Kubernetes workloads, services, operators, CNI plug-ins and CSI plug-ins; provides good node autonomy and cloud-side collaboration capabilities. OpenYurt can be easily deployed in any Kubernetes cluster service, allowing powerful cloud native capabilities to extend to the edge.
Edge local storage
OpenYurt v0.4.0 releases a new feature: Edge local storage management, which is used to efficiently manage the storage resources of edge nodes. Users can dynamically configure the local resources of nodes in the cluster through ConfigMap, and can seamlessly connect to CSI storage plug-ins. The PV/PVC method uses local storage.
The project components mainly consist of two parts, one is the node-resource-topo ConfigMap defined in the kube-system namespace in the cluster, and the other is the node-resource-manager Daemonset deployed under the kube-system namespace in the cluster, each Node node The node-resource-manager on the site produces and manages user-defined local resources by mounting the node-resource-topo ConfigMap. The structure is as follows:
The main advantage:
- Simple and easy to use: node-resource-manager can initialize and update local resources in the cluster only by defining ConfigMap.
- Easy to integrate: node-resource-manager can be integrated with the csi plug-in to complete the life cycle management of related local resources in the kubernetes cluster.
- It has nothing to do with the cloud platform: node-resource-manager can be easily deployed in any cluster that is fully compatible with the Kubernetes API.
For details and usage of edge local storage device management, please refer to configmap.md:
IOT device management API
Alibaba and VMware jointly launched an API standard definition for IOT edge device management in the OpenYurt community. The API is implemented based on the CRD (custom resource definitions) model of Kubernetes. Any edge platform only needs to implement the corresponding CRD Controller, which can access the OpenYurt cluster through these APIs to complete the end-oriented device management.
In the future, we will continue to explore edge scenarios such as IOT based on OpenYurt + EdgeX Foundry, jointly build multi-scenario device access, enablement and integration capabilities under a unified API, and create a cloud-native IOT field standard.
For API definition, please refer to "Proposal: managing edge devices by integraing Edgex Foundry into OpenYurt":
Support Kubernetes version 1.18
OpenYurt officially supports Kubernetes version 1.18. Users can seamlessly convert a Kubernetes 1.18 cluster to an OpenYurt cluster, and use the 1.18 version of the API and new features.
- YurtHub supports CRD caching , edge applications can use CRD expansion capabilities when the cloud is disconnected, such as Calico, various custom operators, etc., please refer to "Proposal: enhance the caching ability of YurtHub": https ://github.com/openyurtio/openyurt/pull/244
- UnitedDeployment supports Patch feature , UnitedDeployment controller supports differentiated configuration of workload in different nodepools, such as images, resources, etc., please refer to "Feature: UnitedDeployment support patch for pool": https://github.com/openyurtio /yurt-app-manager/pull/12
- supports Prometheus and Yurt-Tunnel-Server cross-node deployment , please refer to "Feature: add dns controller to sync cluster node dns records": https://github.com/openyurtio/openyurt/pull3ab1421
- Yurtctl supports Kind cluster one-click conversion , please refer to "Add support for the conversion between kind and OpenYurt cluster": https://github.com/openyurtio/openyurt/pull/234
- adds edge container network feature description , for weak edge network scenarios, provides customized features of edge network plug-ins, such as MAC address retention, IP address retention, and provides corresponding code reference and instructions for use. Please refer to "add edge-pod" -network doc": https://github.com/openyurtio/openyurt/pull/302
- Formulate community governance rules , based on community feedback, set up Member, Reviewer, Approver, Maintainer and other roles, clarify member responsibilities and access, and upgrade conditions, standardize community governance, and encourage community students to participate in joint construction. Please refer to: https: //github.com/openyurtio/community/blob/main/community-membership.md
OpenYurt V0.4.0 was released, providing new capabilities such as edge local storage management and edge IOT device management, and released support for Kubernetes version 1.18, as well as a series of expansion capabilities and optimizations. In the future, the OpenYurt community will provide storage scheduling capabilities in local storage projects, continue to invest and explore evolution in the field of IOT equipment management, and increase efforts in community governance and contributor experience. At the same time, interested students are also welcome to join and participate in the joint construction. Work together to build a stable and reliable cloud-native edge computing platform.
For more community details, please follow: https://github.com/openyurtio/openyurt .
related links :
- OpenYurt v0.4.0 CHANGELOG：https://github.com/openyurtio/openyurt/blob/master/CHANGELOG.md#v040
- OpenYurt tutorial: https://github.com/openyurtio/openyurt/tree/master/docs/tutorial
- OpenYurt official website: https://openyurt.io/
If you have any questions about OpenYurt, please use the Dingding search group number (31993519) to join the Dingding exchange group.