tree: 338af35b8d3632260dbd2b9c2f8e5cb8d8aea1ea [path history] [tgz]
  1. templates/
  2. .helmignore
  3. Chart.yaml
  4. README.md
  5. values.yaml
helm-charts/yunikorn/README.md

Apache YuniKorn (Incubating) - A Universal Scheduler

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 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

  • Features to support both batch jobs and long-running/stateful services.
  • Hierarchy queues with min/max resource quotas.
  • Resource fairness between queues, users and apps.
  • Cross-queue preemption based on fairness.
  • Automatically map incoming container requests to queues by policies.
  • Node partition: partition cluster to sub-clusters with dedicated quota/ACL management.
  • Fully compatible with K8s predicates, events, PV/PVC and admin commands.
  • Supports to work with Cluster AutoScaler to drive cluster scales up and down.

Deployment model

YuniKorn can be deployed with helm-charts on an existing K8s cluster. It can be deployed with or without the admission controller. When the admission controller is enabled, YuniKorn will be the primary scheduler that takes over the resource scheduling (the admission controller runs a mutation webhook that automatically mutates pod spec's schedulerName to yunikorn); when it is disabled, user needs to manually change the schedulerName to yunikorn in order to get apps scheduled by YuniKorn.

Supported K8s versions

K8s VersionSupport?
1.18.x (or earlier)X
1.19.x
1.20.x
1.21.x
1.22.x
1.23.x

Installing the chart

helm repo add yunikorn  https://apache.github.io/incubator-yunikorn-release
helm repo update 
helm install yunikorn yunikorn/yunikorn

Configuration

The following table lists the configurable parameters of the YuniKorn chart and their default values.

ParameterDescriptionDefault
imagePullSecretsDocker repository secrets
serviceAccountService account nameyunikorn-admin
image.repositoryScheduler image repositoryapache/yunikorn
image.tagScheduler image tagscheduler-latest
image.pullPolicyScheduler image pull policyAlways
webImage.repositoryweb app image repositoryapache/yunikorn
webImage.tagweb app image tagweb-latest
webImage.pullPolicyweb app image pull policyAlways
admissionControllerImage.repositoryadmission controller image repositoryapache/yunikorn
admissionControllerImage.tagadmission controller image tagadmission-latest
admissionControllerImage.pullPolicyadmission controller image pull policyAlways
service.portPort of the scheduler service9080
service.portWebPort of the web application service9889
resources.requests.cpuCPU resource requests200m
resources.requests.memoryMemory resource requests1Gi
resources.limits.cpuCPU resource limit4
resources.limits.memoryMemory resource limit2Gi
embedAdmissionControllerFlag for enabling/disabling the admission controllertrue
operatorPluginsScheduler operator pluginsgeneral
nodeSelectorScheduler deployment nodeSelector(s)

These parameters can be passed in via helm's --set option, such as --set embedAdmissionController=false.