Get Started
Before reading this guide, we assume you either have a Kubernetes cluster, or a local Kubernetes dev environment, e.g MiniKube.
It is also assumed that kubectl
is on your path and properly configured.
Follow this guide on how to setup a local Kubernetes cluster using docker-desktop.
Install
The easiest way to get started is to use our Helm Charts to deploy YuniKorn on an existing Kubernetes cluster. It is recommended to use Helm 3 or later versions.
helm repo add yunikorn https://apache.github.io/yunikorn-release
helm repo update
kubectl create namespace yunikorn
helm install yunikorn yunikorn/yunikorn --namespace yunikorn
By default, the helm chart will install the scheduler, web-server and the admission-controller in the cluster.
When admission-controller
is installed, it simply routes all traffic to YuniKorn. That means the resource scheduling
is delegated to YuniKorn. You can disable it by setting embedAdmissionController
flag to false
during the helm install.
The YuniKorn scheduler can also be deployed as a Kubernetes scheduler plugin by setting the Helm enableSchedulerPlugin
flag to true
. This will deploy an alternate Docker image which contains YuniKorn compiled together with the default
scheduler. This new mode offers better compatibility with the default Kubernetes scheduler and is suitable for use with the
admission controller delegating all scheduling to YuniKorn. Because this mode is still very new, it is not enabled by default.
If you are unsure which deployment mode you should use, refer to our side-by-side comparison.
If you want to use a specific version of YuniKorn, you can add the --version
flag to the helm install
command as follows:
helm install yunikorn yunikorn/yunikorn --namespace yunikorn --version {version}
You can check YuniKorn Helm hub page to see the available versions and further configuration options for YuniKorn Helm chart.
If you don't want to use helm charts, you can find our step-by-step tutorial here.
Uninstall
Run the following command to uninstall YuniKorn:
helm uninstall yunikorn --namespace yunikorn
Access the Web UI
When the scheduler is deployed, the web UI is also deployed in a container. Port forwarding for the web interface on the standard port can be turned on via:
kubectl port-forward svc/yunikorn-service 9889:9889 -n yunikorn
9889
is the default port for web UI.
Once this is done, web UI will be available at: http://localhost:9889
.
YuniKorn UI provides a centralised view for cluster resource capacity, utilization, and all application info.
Besides, YuniKorn also exposes its scheduling metrics via Prometheus.
If you want to monitor the YuniKorn core services by using Prometheus and Grafana, you can find our step-by-step tutorial here.