Skip to main content
Version: Next

Deployment Modes

YuniKorn deployment modes

NOTE: This section is maintained largely for historical context. The plugin deployment mode is deprecated and no longer supported. The removal timeline agreed upon by the YuniKorn community is as follows:

  • YuniKorn 1.6: Deprecation announced
  • YuniKorn 1.7: Scheduler will emit warnings if plugin mode is in use
  • YuniKorn 1.8: YuniKorn will no longer ship plugin mode binaries
  • YuniKorn 1.9: Implementation removed from codebase

YuniKorn can be deployed in two different modes: standard and plugin. In standard mode, YuniKorn runs as a standalone Kubernetes scheduler. In plugin mode (now deprecated), YuniKorn is implemented as a set of plugins on top of the default Kubernetes scheduling framework.

Regardless of the YuniKorn deployment mode in use, it is recommended to run the admission controller as well, as this will ensure that only a single scheduler is active within your Kubernetes cluster. In this mode, the default Kubernetes scheduler (which is always running) will be bypassed for all pods except YuniKorn itself.

Standard mode

Standard mode is currently the default. It is stable, efficient, and very performant. It is well-suited for all YuniKorn deployments and is recommended.

Plugin mode

Deprecated for removal

Plugin mode was an experimental deployment model where the scheduler was implemented on top of the default Kubernetes scheduler as a set of plugins. Originally, this was expected to help provide better compatibility with the default Kubernetes scheduler, but that did not end up being the case. Consequently, the plugin mode is now deprecated and will be removed from a future YuniKorn release.

It is not recommended to use plugin mode for any new deployments, and existing users should migrate to standard mode as soon as practically possible. The standard mode is much more mature, providing excellent compatibility with the default Kubernetes scheduler (as it now uses the same scheduler plugins internally) while providing significantly better performance then either the default Kubernetes scheduler or the now deprecated YuniKorn plugin deployment mode.