|
| 1 | +--- |
| 2 | +title: Scheduler Plugins |
| 3 | +type: docs |
| 4 | +--- |
| 5 | + |
| 6 | +# Scheduler Plugins |
| 7 | + |
| 8 | +Repository for out-of-tree scheduler plugins based on the [scheduler framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/). |
| 9 | + |
| 10 | +This repo provides scheduler plugins that are exercised in large companies. |
| 11 | +These plugins can be vendored as Golang SDK libraries or used out-of-box via the pre-built images or Helm charts. |
| 12 | +Additionally, this repo incorporates best practices and utilities to compose a high-quality scheduler plugin. |
| 13 | + |
| 14 | +## Install |
| 15 | + |
| 16 | +Container images are available in the official scheduler-plugins k8s container registry. There are two images one |
| 17 | +for the kube-scheduler and one for the controller. See the [Compatibility Matrix section](#compatibility-matrix) |
| 18 | +for the complete list of images. |
| 19 | + |
| 20 | +```shell |
| 21 | +docker pull registry.k8s.io/scheduler-plugins/kube-scheduler:$TAG |
| 22 | +docker pull registry.k8s.io/scheduler-plugins/controller:$TAG |
| 23 | +``` |
| 24 | + |
| 25 | +You can find [how to install release image](docs/user-guide/installation.md) here. |
| 26 | + |
| 27 | +## Plugins |
| 28 | + |
| 29 | +The kube-scheduler binary includes the below list of plugins. They can be configured by creating one or more |
| 30 | +[scheduler profiles](https://kubernetes.io/docs/reference/scheduling/config/#multiple-profiles). |
| 31 | + |
| 32 | +* [Capacity Scheduling](docs/plugins/capacity-scheduling.md) |
| 33 | +* [Coscheduling](docs/plugins/coscheduling.md) |
| 34 | +* [Node Resources](docs/plugins/noderesources.md) |
| 35 | +* [Node Resource Topology](docs/plugins/noderesourcetopology.md) |
| 36 | +* [Preemption Toleration](docs/plugins/preemptiontoleration.md) |
| 37 | +* [Trimaran](docs/plugins/trimaran.md) |
| 38 | +* [Network-Aware Scheduling](docs/plugins/networkaware.md) |
| 39 | + |
| 40 | +Additionally, the kube-scheduler binary includes the below list of sample plugins. These plugins are not intended for use in production |
| 41 | +environments. |
| 42 | + |
| 43 | +* [Cross Node Preemption](docs/plugins/crossnodepreemption.md) |
| 44 | +* [Pod State](docs/plugins/podstate.md) |
| 45 | +* [Quality of Service](docs/plugins/qos.md) |
| 46 | + |
| 47 | +## Compatibility Matrix |
| 48 | + |
| 49 | +The below compatibility matrix shows the k8s client package (client-go, apimachinery, etc) versions |
| 50 | +that the scheduler-plugins are compiled with. |
| 51 | + |
| 52 | +The minor version of the scheduler-plugins matches the minor version of the k8s client packages that |
| 53 | +it is compiled with. For example scheduler-plugins `v0.18.x` releases are built with k8s `v1.18.x` |
| 54 | +dependencies. |
| 55 | + |
| 56 | +The scheduler-plugins patch versions come in two different varieties (single digit or three digits). |
| 57 | +The single digit patch versions (e.g., `v0.18.9`) exactly align with the k8s client package |
| 58 | +versions that the scheduler plugins are built with. The three digit patch versions, which are built |
| 59 | +on demand, (e.g., `v0.18.800`) are used to indicated that the k8s client package versions have not |
| 60 | +changed since the previous release, and that only scheduler plugins code (features or bug fixes) was |
| 61 | +changed. |
| 62 | + |
| 63 | +| Scheduler Plugins | Compiled With k8s Version | Container Image | Arch | |
| 64 | +|-------------------|---------------------------|-----------------------------------------------------------|----------------| |
| 65 | +| v0.26.7 | v1.26.7 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.26.7 | AMD64<br>ARM64 | |
| 66 | +| v0.25.7 | v1.25.7 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.25.7 | AMD64<br>ARM64 | |
| 67 | +| v0.24.9 | v1.24.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.24.9 | AMD64<br>ARM64 | |
| 68 | +| v0.23.10 | v1.23.10 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.23.10 | AMD64<br>ARM64 | |
| 69 | +| v0.22.6 | v1.22.6 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.22.6 | AMD64<br>ARM64 | |
| 70 | +| v0.21.6 | v1.21.6 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.21.6 | AMD64<br>ARM64 | |
| 71 | +| v0.20.10 | v1.20.10 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.20.10 | AMD64<br>ARM64 | |
| 72 | +| v0.19.9 | v1.19.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.19.9 | AMD64<br>ARM64 | |
| 73 | +| v0.19.8 | v1.19.8 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.19.8 | AMD64<br>ARM64 | |
| 74 | +| v0.18.9 | v1.18.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.18.9 | AMD64 | |
| 75 | + |
| 76 | +| Controller | Compiled With k8s Version | Container Image | Arch | |
| 77 | +|------------|---------------------------|-------------------------------------------------------|----------------| |
| 78 | +| v0.26.7 | v1.26.7 | registry.k8s.io/scheduler-plugins/controller:v0.26.7 | AMD64<br>ARM64 | |
| 79 | +| v0.25.7 | v1.25.7 | registry.k8s.io/scheduler-plugins/controller:v0.25.7 | AMD64<br>ARM64 | |
| 80 | +| v0.24.9 | v1.24.9 | registry.k8s.io/scheduler-plugins/controller:v0.24.9 | AMD64<br>ARM64 | |
| 81 | +| v0.23.10 | v1.23.10 | registry.k8s.io/scheduler-plugins/controller:v0.23.10 | AMD64<br>ARM64 | |
| 82 | +| v0.22.6 | v1.22.6 | registry.k8s.io/scheduler-plugins/controller:v0.22.6 | AMD64<br>ARM64 | |
| 83 | +| v0.21.6 | v1.21.6 | registry.k8s.io/scheduler-plugins/controller:v0.21.6 | AMD64<br>ARM64 | |
| 84 | +| v0.20.10 | v1.20.10 | registry.k8s.io/scheduler-plugins/controller:v0.20.10 | AMD64<br>ARM64 | |
| 85 | +| v0.19.9 | v1.19.9 | registry.k8s.io/scheduler-plugins/controller:v0.19.9 | AMD64<br>ARM64 | |
| 86 | +| v0.19.8 | v1.19.8 | registry.k8s.io/scheduler-plugins/controller:v0.19.8 | AMD64<br>ARM64 | |
| 87 | + |
| 88 | +## Community, discussion, contribution, and support |
| 89 | + |
| 90 | +Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/). |
| 91 | + |
| 92 | +You can reach the maintainers of this project at: |
| 93 | + |
| 94 | +- [Slack](https://kubernetes.slack.com/messages/sig-scheduling) |
| 95 | +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling) |
| 96 | + |
| 97 | +You can find an [instruction how to build and run out-of-tree plugin here](docs/user-guide/develop.md) . |
| 98 | + |
| 99 | +### Code of conduct |
| 100 | + |
| 101 | +Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](https://github.com/kubernetes-sigs/scheduler-plugins/tree/master/code-of-conduct.md). |
0 commit comments