Apache YuniKorn - A Universal Scheduler

codecov Go Report Card License Repo Size


Apache YuniKorn is a light-weight, universal resource scheduler for container orchestrator systems. It was created to achieve fine-grained resource sharing for various workloads efficiently on a large scale, multi-tenant, and cloud-native environment. YuniKorn brings a unified, cross-platform, scheduling experience for mixed workloads that consist of stateless batch workloads and stateful services.

YuniKorn now supports K8s and can be deployed as a custom K8s scheduler. YuniKorn's architecture design also allows adding different shim layer and adopt to different ResourceManager implementation including Apache Hadoop YARN, or any other systems.

Feature highlights

  • Gang scheduling
  • Application and queue aware preemption
  • Hierarchy Resource Queues
  • Application aware scheduling
  • Job Ordering and Queuing
  • High throughput scheduling
  • Default Kubernetes workload compatible (daemonsets, jobs, deployments etc)

Read the complete list of features from here.

Web UI

YuniKorn has builtin web UIs for queue hierarchies and apps. See below:

Web-UI

Supported K8s versions

K8s VersionSupported from versionSupport ended
1.12.x (or earlier)--
1.13.x0.8.00.10.0
1.14.x0.8.00.10.0
1.15.x0.8.00.10.0
1.16.x0.10.00.11.0
1.17.x0.10.00.11.0
1.18.x0.10.00.11.0
1.19.x0.11.01.0.0
1.20.x0.12.11.2.0
1.21.x0.12.11.3.0
1.22.x0.12.21.3.0
1.23.x0.12.21.3.0
1.24.x1.0.0-
1.25.x1.2.0-
1.26.x1.2.0-
1.27.x1.4.0-
1.28.x1.4.0-
1.29.x1.5.0-

Useful links