Description
Tell us about your request
If Cost Savings Plan (CSP) or reserved instances have been purchased, Karpenter should select those instances in that pool first.
If there isn't anymore CSP/reserved instance types available, Karpenter should default back to normal provisioning behaviour.
There is an example topic that covers this: https://karpenter.sh/preview/concepts/scheduling/#savings-plans-and-reserved-instances and works well for simple use cases.
However, if you have multiple provisioners sharing this reserved instance / CSP selection, setting a Limit on either provisioner would result in non-optimal ec2 selection.
Eg. "100 CPU reservation" pool that you've purchased. If you split it 50/50 between provisioners, one could be using 20% of that, and another could be at 100% looking for more and provisioning extra instances unnecessarily that aren't on the reserved/csp instances.
Why would you need multiple provisioners sharing the same reserved pool?
eg. one workload works well with C type instances only and another works well with any kind of instance.
You could share the pool, but once the reserved pool is consumed, I'm not sure how you can differentiate / split to two different providers (maybe with nodeAffinity you can do this)
It would be beneficial if Karpenter had an "awareness" of reservations / CSP and provisioned that pool of resources with a stronger preference.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
With this approach, we can optimize the use of CSP/Reserved instances to reduce the overall cost.
Are you currently working around this issue?
We aren't currently working around this, but would like an easier path to work with CSP/Reserved Instances
Additional Context
No response
Attachments
No response
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Activity