kube-scheduler-simulator
kube-scheduler-simulator copied to clipboard
Support external scheduler
There is great value for this project to support many types of schedulers.
Just replacing here to create user's scheduler is the easy way for users to use their scheduler in simulator, but, if user's scheduler is based on different version of Kubernetes or built on a completely different mechanism than kube-scheduler in k/k, it doesn't work.
For those schedulers, I propose here to support "external scheduler".
Users can run any type of scheduler as outside schedulers and that scheduler will communicate with kube-apiserver in the simulator to run simulation on the simulator.
There is drawback to outside scheduler: they cannot change scheduler configuration via Web UI (or simulator API). But, the big advantage of this is users can use their scheduler with the other advanced features of the simulator like Scenario. https://github.com/kubernetes-sigs/kube-scheduler-simulator/issues/140
/kind feature /triage accepted /priority important-longterm
/retitle Support external scheduler
/priority important-soon
/remove-priority important-soon
/remove-priority important-longterm
/priority important-soon
give this a higher priority. It will important both for version issue and scenario API.
/area simulator
/priority next-release
/assign
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
/remove-lifecycle rotten /lifecycle frozen
/remove-priority next-release
Still quite important, but just remove it from next release candidate.
@sanposhiho how to use external scheduler? is there a doc?
I'd say this external scheduler feature has not get completed yet.
We have implemented the way to disable the scheduler running in the simulator via an option so that people can run their own scheduler instead of the scheduler inside the simulator. https://github.com/kubernetes-sigs/kube-scheduler-simulator/pull/227
But, that's not enough because an external scheduler won't show any detailed scheduling results from each plugin.
To let any scheduler show the detailed scheduling results, people need to replace their all scheduler plugins with wrapped plugins in their scheduler, and it's now kinda troublesome + no doc explains how.
So, we need to provide some easy ways to do that, write the doc based on them, then this task is marked as done finally.
We're now working on the prioritized issues for the first release. We'll work on this after that. (so, not immediately)
@sanposhiho it's ok. just want an instruction for config external scheduler.