All Projects → openyurtio → Openyurt

openyurtio / Openyurt

Licence: apache-2.0
OpenYurt - Extending your native Kubernetes to edge(project under CNCF)

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Openyurt

Metalk8s
An opinionated Kubernetes distribution with a focus on long-term on-prem deployments
Stars: ✭ 217 (-71.07%)
Mutual labels:  cloud-native, k8s
siddhi-operator
Operator allows you to run stream processing logic directly on a Kubernetes cluster
Stars: ✭ 16 (-97.87%)
Mutual labels:  k8s, cloud-native
Awesome Kubernetes Notes
awesome-kubernetes-notes 🎉
Stars: ✭ 249 (-66.8%)
Mutual labels:  cloud-native, k8s
Cdk
CDK is an open-sourced container penetration toolkit, offering stable exploitation in different slimmed containers without any OS dependency. It comes with penetration tools and many powerful PoCs/EXPs helps you to escape container and takeover K8s cluster easily.
Stars: ✭ 1,264 (+68.53%)
Mutual labels:  cloud-native, k8s
Linstor Server
High Performance Software-Defined Block Storage for container, cloud and virtualisation. Fully integrated with Docker, Kubernetes, Openstack, Proxmox etc.
Stars: ✭ 374 (-50.13%)
Mutual labels:  cloud-native, k8s
K8gb
A cloud native Kubernetes Global Balancer
Stars: ✭ 113 (-84.93%)
Mutual labels:  cloud-native, k8s
kubernetes-reading-notes
Kubernetes源码阅读笔记
Stars: ✭ 96 (-87.2%)
Mutual labels:  k8s, cloud-native
Argo Workflows
Workflow engine for Kubernetes
Stars: ✭ 10,024 (+1236.53%)
Mutual labels:  k8s, cloud-native
K3sup
bootstrap Kubernetes with k3s over SSH < 1 min 🚀
Stars: ✭ 4,012 (+434.93%)
Mutual labels:  cloud-native, k8s
vcluster
vcluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
Stars: ✭ 1,360 (+81.33%)
Mutual labels:  k8s, cloud-native
Container Service Extension
Container Service for VMware vCloud Director
Stars: ✭ 66 (-91.2%)
Mutual labels:  cloud-native, k8s
Kube Scan
kube-scan: Octarine k8s cluster risk assessment tool
Stars: ✭ 566 (-24.53%)
Mutual labels:  cloud-native, k8s
Openebs
Leading Open Source Container Attached Storage, built using Cloud Native Architecture, simplifies running Stateful Applications on Kubernetes.
Stars: ✭ 7,277 (+870.27%)
Mutual labels:  cloud-native, k8s
Kubernetes 101
Kubernetes 101 - by Jeff Geerling
Stars: ✭ 169 (-77.47%)
Mutual labels:  cloud-native, k8s
Kruise
Automate application management on Kubernetes (project under CNCF)
Stars: ✭ 2,819 (+275.87%)
Mutual labels:  k8s, cloud-native
galaxykube
PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes.
Stars: ✭ 65 (-91.33%)
Mutual labels:  k8s, cloud-native
radondb-mysql-kubernetes
Open Source,High Availability Cluster,based on MySQL
Stars: ✭ 146 (-80.53%)
Mutual labels:  k8s, cloud-native
Kubeedge
Kubernetes Native Edge Computing Framework (project under CNCF)
Stars: ✭ 4,582 (+510.93%)
Mutual labels:  cloud-native, edge-computing
Kubesphere
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️
Stars: ✭ 8,315 (+1008.67%)
Mutual labels:  cloud-native, k8s
Linkerd
Old repo for Linkerd 1.x. See the linkerd2 repo for Linkerd 2.x.
Stars: ✭ 5,382 (+617.6%)
Mutual labels:  cloud-native

openyurtio/openyurt


Version License Go Report Card Build Status

English | 简体中文

notification What is NEW!
January 8th, 2021. OpenYurt v0.3.0 is RELEASED! Please check the CHANGELOG for details.
August 30th, 2020. OpenYurt v0.2.0 is RELEASED! Please check the CHANGELOG for details.
May 29th, 2020. OpenYurt v0.1.0-beta.1 is RELEASED! Please check the CHANGELOG for details.

OpenYurt(official website: https://openyurt.io) is now hosted by the Cloud Native Computing Foundation(CNCF) as a Sandbox Level Project. It is built based on native Kubernetes and targets to extend it to support edge computing seamlessly. In a nutshell, OpenYurt enables users to manage applications that run in the edge infrastructure as if they were running in the cloud infrastructure.

OpenYurt is suitable for common edge computing use cases whose requirements include:

  • Minimizing the network traffic over long distances between the devices and the workloads.
  • Overcoming the network bandwidth or reliability limitations.
  • Processing data remotely to reduce latency.
  • Providing a better security model to handle sensitive data.
  • Manage edge resources and edge applications in a single cluster.

OpenYurt has the following advantages in terms of compatibility and usability.

  • Kubernetes native. It provides full Kubernetes API compatibility. All Kubernetes workloads, services, operators, CNI plugins, and CSI plugins are supported.
  • Seamless conversion. It provides a tool to easily convert a native Kubernetes to be "edge" ready. The extra resource and maintenance costs of the OpenYurt components are very low.
  • Node autonomy. It provides mechanisms to tolerate unstable or disconnected cloud-edge networking. The applications run in the edge nodes are not affected even if the nodes are offline.
  • Cloud platform agnostic. OpenYurt can be easily deployed in any public cloud Kubernetes services.

Architecture

OpenYurt follows a classic edge application architecture design - a centralized Kubernetes master resides in the cloud site, which manages multiple edge nodes reside in the edge site. Each edge node has moderate compute resources allowing running a number of edge applications plus the Kubernetes node daemons. The edge nodes in a cluster can span multiple physical regions. The terms region and Pool are interchangeable in OpenYurt.


The major OpenYurt components consist of:

  • YurtHub: A node daemon that serves as a proxy for the outbound traffic from the Kubernetes node daemons (Kubelet, Kubeproxy, CNI plugins and so on). It caches the states of all the resources that the Kubernetes node daemons might access in the edge node's local storage. In case the edge node is offline, those daemons can recover the states upon node restarts.
  • Yurt controller manager: It manages a node controller for different edge computing use cases. For example, the Pods in the nodes that are in the autonomy mode will not be evicted from APIServer even if the node heartbeats are missing.
  • Yurt app manager: It manages two CRD resources introduced in OpenYurt: NodePool and UnitedDeployment. The former provides a convenient management experience for a pool of nodes within the same region or site. The latter defines a new edge application management methodology of using per node pool workload.
  • Yurt tunnel (server/agent): TunnelServer connects with the TunnelAgent 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.

Getting started

OpenYurt supports Kubernetes versions up to 1.16. Using higher Kubernetes versions may cause compatibility issues.

You can setup the OpenYurt cluster manually, but we recommend to start OpenYurt by using the yurtctl command line tool. To quickly build and install yurtctl, assuming the build system has golang 1.13+ and bash installed, you can simply do the following:

git clone https://github.com/openyurtio/openyurt.git
cd openyurt
make WHAT=cmd/yurtctl

The yurtctl binary can be found at _output/bin. To convert an existing Kubernetes cluster to an OpenYurt cluster, the following simple command line can be used(support kubernetes clusters that managed by minikube, kubeadm and ACK):

_output/bin/yurtctl convert --provider [minikube|kubeadm|ack]

To uninstall OpenYurt and revert back to the original Kubernetes cluster settings, you can run the following command:

_output/bin/yurtctl revert

Please check yurtctl tutorial for more details.

Usage

We provider detailed tutorials to demonstrate how to use OpenYurt to manage edge applications.

Roadmap

Community

Contributing

If you are willing to be a contributor for OpenYurt project, please refer to our CONTRIBUTING document for details. We have also prepared a developer guide to help the code contributors.

Meeting

Item Value
APAC Friendly Community meeting Bi-weekly APAC (Starting Sep 2, 2020), 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

Contact

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:

License

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].