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

[proposal] Reservation support binding to scheduled pods #2150

Open
saintube opened this issue Aug 1, 2024 · 0 comments
Open

[proposal] Reservation support binding to scheduled pods #2150

saintube opened this issue Aug 1, 2024 · 0 comments
Labels
Milestone

Comments

@saintube
Copy link
Member

saintube commented Aug 1, 2024

What is your proposal:

Besides reserving the unallocated node resources for further pods, reservations can match and bind to the scheduled pods on nodes.

Why is this needed:

Currently, the reservation can allocate the free node resources and reserve them for further pods (i.e. owners). In some advanced use cases, we want to keep a certain quantity of reserved resources in the cluster to ensure the resources are deterministic to deliver to users, so we reserve resources with reservations. Firstly, some user pods are scheduled and bound with reservations, and more pods are scheduled without any reservation. Once the user pods bound with reservations terminate, there are pods lacking reservations and reservations unbound to any pod. If we keep the unbound reservations, cluster resources are wasted. Otherwise, we clean up the unbound reservations, then the reserved resources are insufficient and the user pods are not assured to schedule deterministically.

For this case, we need the ability to let the reservation bind to scheduled pods. So when the reservations become unbound from the terminating pods, we can bind the reservations to other scheduled pods to keep the quantity of the reserved resources.

It also can be an alternative to the pre-allocation mentioned in the reservation proposal. Reservation can first bind to a scheduled pod, and then the resources will be reserved after the pod terminates. It helps when the cluster resources are insufficient currently, but we want to pre-allocate resources for some pods to reschedule after the resources are ready.

Is there a suggested solution, if so, please add it:

This ability should be an option for a reservation object since not every reservation needs to bind scheduled pods.
It should support both unscheduled reservations and available reservations considering the pre-allocation scenarios.
The binding logic is recommended to implement in the koord-scheduler due to the consistency problem when new pods also could allocate the unbound reservations.

@saintube saintube added this to the v1.6 milestone Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant