Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support custom Pod scheduler #1739

Closed
kfox1111 opened this issue Dec 12, 2019 · 6 comments · Fixed by #1790
Closed

Support custom Pod scheduler #1739

kfox1111 opened this issue Dec 12, 2019 · 6 comments · Fixed by #1790
Assignees
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature.

Comments

@kfox1111
Copy link

It would be interesting if volcano (http://volcano.sh/) would be supported to enable tasks to be queued and more fairly scheduled in a shared environment

@imjasonh
Copy link
Member

Very interesting! Today Tekton just creates Pods and expects Kubernetes to schedule them as fairly as possible. In theory one could plug in whatever Pod scheduler you wanted to schedule jobs more fairly, if that's something you were concerned about.

Since Kubernetes is generally optimized for long-running serving jobs, I wouldn't be surprised if there was an opportunity to improve the scheduling algorithm, for instance to take into account a TaskRun's timeout, since you can know when a TaskRun is guaranteed to finish.

If there's some way to take advantage of Volcano's scheduler it would be great. I wouldn't want to take a hard dependency on it though unless there was sufficient benefit and users were comfortable with that dependency (WRT performance and security, for instance)

@imjasonh
Copy link
Member

/kind feature

@tekton-robot tekton-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Dec 12, 2019
@kfox1111
Copy link
Author

Volcano uses a fork of kube-batch at the moment. I think for kube-batch, it looks like it supports scheduling pods directly via the 'kube-batch' scheduler:
https://github.com/kubernetes-sigs/kube-batch/blob/master/doc/usage/tutorial.md
While they don't have a bare pod example, they do have a job example in the tutorial.

If that's the case, it may be as simple as making which scheduler to use configurable in tekton.

@imjasonh
Copy link
Member

AFAIK all it would take to support custom schedulers in Tekton is to add schedulerName to TaskRunSpec's PodTemplate type, and pass it in when creating a Pod for a TaskRun (here).

This should be fairly straightforward to implement, if you're interested.

@imjasonh imjasonh changed the title volcano Support custom Pod scheduler Dec 16, 2019
@imjasonh imjasonh added the good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. label Dec 16, 2019
@waveywaves
Copy link
Member

@imjasonh I would like to work on this issue :)

@waveywaves
Copy link
Member

/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants