Awesome
<!-- * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -->Apache YuniKorn - A Universal Scheduler
Apache YuniKorn is a light-weight, universal resource scheduler for container orchestrator systems. It is 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.
Get Started
See how to get started with running YuniKorn on Kubernetes, please read the documentation on yunikorn.apache.org.
Want to know more about the value of the YuniKorn project, and what YuniKorn can do? Here are some session recordings and demos.
Get Involved
Please read get involved document if you want to discuss issues, contribute your ideas, explore use cases, or participate the development.
If you want to contribute code to this repo, please read the developer doc. All the design docs are available here.
Code Structure
Apache YuniKorn project has the following git repositories:
- yunikorn-core : the scheduler brain :round_pushpin:
- yunikorn-k8shim : the adaptor to Kubernetes
- yunikorn-scheduler-interface : the common scheduling interface
- yunikorn-web : the web UI
- yunikorn-release: the repo manages yunikorn releases, including the helm charts
- yunikorn-site: the source code for yunikorn website
The yunikorn-core
is the brain of the scheduler, which makes placement decisions (allocate container X on node Y) according
to the builtin rich scheduling policies. Scheduler core implementation is agnostic to the underneath resource manager system.