Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kubernetes-sigs/scheduler-plugins
Repository for out-of-tree scheduler plugins based on scheduler framework.
https://github.com/kubernetes-sigs/scheduler-plugins
k8s-sig-scheduling
Last synced: 3 days ago
JSON representation
Repository for out-of-tree scheduler plugins based on scheduler framework.
- Host: GitHub
- URL: https://github.com/kubernetes-sigs/scheduler-plugins
- Owner: kubernetes-sigs
- License: apache-2.0
- Created: 2020-01-16T13:34:00.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-04T17:57:02.000Z (3 months ago)
- Last Synced: 2024-12-16T18:05:03.029Z (2 months ago)
- Topics: k8s-sig-scheduling
- Language: Go
- Size: 33.5 MB
- Stars: 1,144
- Watchers: 23
- Forks: 529
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: code-of-conduct.md
- Security: SECURITY_CONTACTS
Awesome Lists containing this project
README
[](https://goreportcard.com/report/kubernetes-sigs/scheduler-plugins) [](https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/LICENSE)
# Scheduler Plugins
Repository for out-of-tree scheduler plugins based on the [scheduler framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/).
This repo provides scheduler plugins that are exercised in large companies.
These plugins can be vendored as Golang SDK libraries or used out-of-box via the pre-built images or Helm charts.
Additionally, this repo incorporates best practices and utilities to compose a high-quality scheduler plugin.## Install
Container images are available in the official scheduler-plugins k8s container registry. There are two images one
for the kube-scheduler and one for the controller. See the [Compatibility Matrix section](#compatibility-matrix)
for the complete list of images.```shell
docker pull registry.k8s.io/scheduler-plugins/kube-scheduler:$TAG
docker pull registry.k8s.io/scheduler-plugins/controller:$TAG
```You can find [how to install release image](doc/install.md) here.
## Plugins
The kube-scheduler binary includes the below list of plugins. They can be configured by creating one or more
[scheduler profiles](https://kubernetes.io/docs/reference/scheduling/config/#multiple-profiles).* [Capacity Scheduling](pkg/capacityscheduling/README.md)
* [Coscheduling](pkg/coscheduling/README.md)
* [Node Resources](pkg/noderesources/README.md)
* [Node Resource Topology](pkg/noderesourcetopology/README.md)
* [Preemption Toleration](pkg/preemptiontoleration/README.md)
* [Trimaran (Load-Aware Scheduling)](pkg/trimaran/README.md)
* [Network-Aware Scheduling](pkg/networkaware/README.md)Additionally, the kube-scheduler binary includes the below list of sample plugins. These plugins are not intended for use in production
environments.* [Cross Node Preemption](pkg/crossnodepreemption/README.md)
* [Pod State](pkg/podstate/README.md)
* [Quality of Service](pkg/qos/README.md)## Compatibility Matrix
The below compatibility matrix shows the k8s client package (client-go, apimachinery, etc) versions
that the scheduler-plugins are compiled with.The minor version of the scheduler-plugins matches the minor version of the k8s client packages that
it is compiled with. For example scheduler-plugins `v0.18.x` releases are built with k8s `v1.18.x`
dependencies.The scheduler-plugins patch versions come in two different varieties (single digit or three digits).
The single digit patch versions (e.g., `v0.18.9`) exactly align with the k8s client package
versions that the scheduler plugins are built with. The three digit patch versions, which are built
on demand, (e.g., `v0.18.800`) are used to indicated that the k8s client package versions have not
changed since the previous release, and that only scheduler plugins code (features or bug fixes) was
changed.| Scheduler Plugins | Compiled With k8s Version | Container Image | Arch |
|-------------------|---------------------------|----------------------------------------------------------|------------------------------------------------------------|
| v0.30.6 | v1.30.6 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.30.6 | linux/amd64
linux/arm64
linux/s390x
linux/ppc64le |
| v0.29.7 | v1.29.7 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.29.7 | linux/amd64
linux/arm64
linux/s390x
linux/ppc64le |
| v0.28.9 | v1.28.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.28.9 | linux/amd64
linux/arm64 |
| v0.27.8 | v1.27.8 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.27.8 | linux/amd64
linux/arm64 || Controller | Compiled With k8s Version | Container Image | Arch |
|------------|---------------------------|------------------------------------------------------|------------------------------------------------------------|
| v0.30.6 | v1.30.6 | registry.k8s.io/scheduler-plugins/controller:v0.30.6 | linux/amd64
linux/arm64
linux/s390x
linux/ppc64le |
| v0.29.7 | v1.29.7 | registry.k8s.io/scheduler-plugins/controller:v0.29.7 | linux/amd64
linux/arm64
linux/s390x
linux/ppc64le |
| v0.28.9 | v1.28.9 | registry.k8s.io/scheduler-plugins/controller:v0.28.9 | linux/amd64
linux/arm64 |
| v0.27.8 | v1.27.8 | registry.k8s.io/scheduler-plugins/controller:v0.27.8 | linux/amd64
linux/arm64 |Older releases
| Scheduler Plugins | Compiled With k8s Version | Container Image | Arch |
|-------------------|---------------------------|-----------------------------------------------------------|----------------------------|
| v0.26.7 | v1.26.7 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.26.7 | linux/amd64
linux/arm64 |
| v0.25.12 | v1.25.12 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.25.12 | linux/amd64
linux/arm64 |
| v0.24.9 | v1.24.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.24.9 | linux/amd64
linux/arm64 |
| v0.23.10 | v1.23.10 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.23.10 | linux/amd64
linux/arm64 |
| v0.22.6 | v1.22.6 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.22.6 | linux/amd64
linux/arm64 |
| v0.21.6 | v1.21.6 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.21.6 | linux/amd64
linux/arm64 |
| v0.20.10 | v1.20.10 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.20.10 | linux/amd64
linux/arm64 |
| v0.19.9 | v1.19.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.19.9 | linux/amd64
linux/arm64 |
| v0.19.8 | v1.19.8 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.19.8 | linux/amd64
linux/arm64 |
| v0.18.9 | v1.18.9 | registry.k8s.io/scheduler-plugins/kube-scheduler:v0.18.9 | linux/amd64 || Controller | Compiled With k8s Version | Container Image | Arch |
|------------|---------------------------|-------------------------------------------------------|----------------------------|
| v0.26.7 | v1.26.7 | registry.k8s.io/scheduler-plugins/controller:v0.26.7 | linux/amd64
linux/arm64 |
| v0.25.12 | v1.25.12 | registry.k8s.io/scheduler-plugins/controller:v0.25.12 | linux/amd64
linux/arm64 |
| v0.24.9 | v1.24.9 | registry.k8s.io/scheduler-plugins/controller:v0.24.9 | linux/amd64
linux/arm64 |
| v0.23.10 | v1.23.10 | registry.k8s.io/scheduler-plugins/controller:v0.23.10 | linux/amd64
linux/arm64 |
| v0.22.6 | v1.22.6 | registry.k8s.io/scheduler-plugins/controller:v0.22.6 | linux/amd64
linux/arm64 |
| v0.21.6 | v1.21.6 | registry.k8s.io/scheduler-plugins/controller:v0.21.6 | linux/amd64
linux/arm64 |
| v0.20.10 | v1.20.10 | registry.k8s.io/scheduler-plugins/controller:v0.20.10 | linux/amd64
linux/arm64 |
| v0.19.9 | v1.19.9 | registry.k8s.io/scheduler-plugins/controller:v0.19.9 | linux/amd64
linux/arm64 |
| v0.19.8 | v1.19.8 | registry.k8s.io/scheduler-plugins/controller:v0.19.8 | linux/amd64
linux/arm64 |## Community, discussion, contribution, and support
Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
You can reach the maintainers of this project at:
- [Slack](https://kubernetes.slack.com/messages/sig-scheduling)
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)You can find an [instruction how to build and run out-of-tree plugin here](doc/develop.md) .
### Code of conduct
Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).