Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blampe/longhorn-scheduler
A Kubernetes scheduler for data locality with Longhorn volumes.
https://github.com/blampe/longhorn-scheduler
Last synced: 16 days ago
JSON representation
A Kubernetes scheduler for data locality with Longhorn volumes.
- Host: GitHub
- URL: https://github.com/blampe/longhorn-scheduler
- Owner: blampe
- License: apache-2.0
- Created: 2023-02-23T22:11:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-30T19:26:00.000Z (9 months ago)
- Last Synced: 2024-06-21T08:12:11.007Z (7 months ago)
- Language: Go
- Homepage:
- Size: 428 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🐮 longhorn-scheduler
This is a fork of [linstor-scheduler-extender] modified to work with [Longhorn]
volumes. It uses [Stork] to schedule pods alongside existing replicas for
optimal performance.This is in contrast to Longhorn's built-in [data locality] functionality, which
only affects pods that have already been scheduled, and which re-allocates
replicas to achieve locality.## Behavior
Scheduling is best-effort -- if no replica nodes have capacity the pod will be
scheduled without locality.In situations where a pod has multiple Longhorn volumes attached, preference is
given to nodes with more replicas.RWX volumes will attempt to schedule pods on the same node as the NFS share
manager, but the share manager may not have data locality _unless_ the admission
controller is also deployed (see below).## Deployment
```
kubectl apply -f deploy/longhorn-scheduler.yaml
```## Usage
Use `schedulerName: longhorn` in your pod spec to take advantage of the
scheduler.## Admission controller
You can also deploy the admission controller to automatically assign
`schedulerName: longhorn` to all pods with Longhorn volumes:```
kubectl apply -f deploy/longhorn-scheduler-admission.yaml
```[linstor-scheduler-extender]: https://github.com/piraeusdatastore/linstor-scheduler-extender
[Longhorn]: http://longhorn.io
[Stork]: https://github.com/libopenstorage/stork
[data locality]: https://longhorn.io/docs/1.4.0/high-availability/data-locality/#data-locality-settings