English | 简体中文
What is NEW! |
---|
Latest Release: Sep 9th, 2022. OpenYurt v1.0.0. Please check the CHANGELOG for details. |
First Release: May 29th, 2020. OpenYurt v0.1.0-beta.1 |
OpenYurt is built based on upstream Kubernetes and now hosted by the Cloud Native Computing Foundation(CNCF) as a Sandbox Level Project.
OpenYurt has been designed to meet various DevOps requirements against typical edge infrastructures. It provides the same user experience for managing the edge applications as if they were running in the cloud infrastructure. It addresses specific challenges for cloud-edge orchestration in Kubernetes such as unreliable or disconnected cloud-edge networking, edge node autonomy, edge device management, region-aware deployment and so on. OpenYurt preserves intact Kubernetes API compatibility, is vendor agnostic, and more importantly, is SIMPLE to use.
OpenYurt follows a classic cloud-edge architecture design.
It uses a centralized Kubernetes control plane residing in the cloud site to
manage multiple edge nodes residing in the edge sites. Each edge node has moderate compute resources available in order to
run edge applications plus the required OpenYurt components. The edge nodes in a cluster can span
multiple physical regions, which are referred to as Pools
in OpenYurt.
The above figure demonstrates the core OpenYurt architecture. The major components consist of:
- YurtHub: YurtHub runs on worker nodes as static pod and serve as a node sidecar to handle requests that comes from components(like Kubelet, Kubeproxy and so on) on worker nodes to kube-apiserver.
- Yurt Controller Manager: It includes node controller that ships from upstream node controller to support edge computing requirements and csr controller that used to handle CSRs from OpenYurt components.
- Yurt App Manager: It manages several CRD resources introduced in OpenYurt: NodePool,
YurtAppSet, YurtAppDaemon
and YurtIngress.
NodePool
provides a convenient management for a pool of nodes within the same region or site.YurtAppSet
defines a new edge application management methodology of using per NodePool workload.YurtAppDaemon
enables to deploy workload for every matching NodePool.YurtIngress
orchestrates the deployment of multiple ingress controllers to the respective NodePools. - Yurt Tunnel (server/agent):
TunnelServer
connects with theTunnelAgent
daemon running in each edge node via a reverse proxy to establish a secure network access between the cloud site control plane and the edge nodes that are connected to the intranet. - Raven/Raven Controller Manager: It is focused on edge-edge and edge-cloud communication in OpenYurt. and provide layer 3 network connectivity among pods in different physical regions, as there are in one vanilla Kubernetes cluster.
In addition, OpenYurt also includes auxiliary controllers for integration and customization purposes.
- Node resource manager: It manages additional edge node resources such as LVM, QuotaPath and Persistent Memory. Please refer to node-resource-manager repo for more details.
- Integrating EdgeX Foundry platform and uses Kubernetes CRD to manage edge devices!
OpenYurt introduces Yurt-edgex-manager to manage the lifecycle of the EdgeX Foundry software suite, and Yurt-device-controller to manage edge devices hosted by EdgeX Foundry via Kubernetes custom resources. Please refer to the short demo and the respective repos for more details. |
Please check the resource and system requirements before installing OpenYurt.
OpenYurt supports Kubernetes versions up to 1.22. Using higher Kubernetes versions may cause compatibility issues. OpenYurt installation is divided into two parts:
To experience the power of OpenYurt, please try the detailed tutorials.
If you are willing to be a contributor for the OpenYurt project, please refer to our CONTRIBUTING document for details. We have also prepared a developer guide to help the code contributors.
Item | Value |
---|---|
APAC Friendly Community meeting | Adjust to weekly APAC (Starting May 11, 2022), Wednesday 11:00AM GMT+8 |
Meeting link APAC Friendly meeting | https://us02web.zoom.us/j/82828315928?pwd=SVVxek01T2Z0SVYraktCcDV4RmZlUT09 |
Meeting notes | Notes and agenda |
Meeting recordings | OpenYurt bilibili Channel |
If you have any questions or want to contribute, you are welcome to communicate most things via GitHub issues or pull requests. Other active communication channels:
- Mailing List: https://groups.google.com/g/openyurt/
- Slack: channel
- DingTalk: Now no slots in Community Group1(GroupID 31993519), please join Community Group2 (Chinese)
OpenYurt is under the Apache 2.0 license. See the LICENSE file for details. Certain implementations in OpenYurt rely on the existing code from Kubernetes and the credits go to the original Kubernetes authors.