Apache YuniKorn (Incubating) 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 consists of stateless batch workloads and stateful services.
These instructions provided are tailored to the source release. Details on how to set up a full development environment can be found in Building YuniKorn.
General requirement for building YuniKorn images from this release:
The scheduler and shim are build as one set of artifacts and have one requirement:
The YuniKorn web UI uses a two stage docker build with predefined images. All dependencies are included in the image.
NOTE: the scheduler can be used without a web UI build or deployed.
make command to build docker images.
The command will generate the following three docker images in the local docker repository:
The simplest way to run YuniKorn is to use the provided helm charts, you can find the templates in the release package
helm-charts. There are a few prerequisites:
If you have a cluster, and the helm client you can simply run helm from the root directory:
helm install yunikorn ./helm-charts/yunikorn
make command will pass on the following two variables:
VERSION="0.9.1" REGISTRY="internal" make
The values defined in the helm charts assume a default build without changes to the
REGISTRY. Once you have built your own docker images, you will need to replace the docker image name in the helm chart templates. Open
helm-charts/yunikorn/values.yaml and replace the docker image information with ones you built.
For more instructions, please refer to User Guide.
Running the unit tests is supported via the make command. It will run the tests for all parts of YuniKorn in order:
The scheduler tests runs in two parts: the core, and the k8shim. There are no tests for the scheduler-interface.
Unit testing for the scheduler has no additional pre-requisites.
The project requires a number of external tools to be installed for test and development. A non image build requires the following tools to be installed:
Running unit tests adds the following requirements:
Please check the documentation for further details.