kubernetes-sigs / karpenter

Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.
Apache License 2.0
439 stars 149 forks source link

Document the way the Kubernetes scheduler mode impacts Karpenter #1228

Open stevehipwell opened 2 months ago

stevehipwell commented 2 months ago

Description

What problem are you trying to solve? I have the following hypothesis.

With the default Kubernetes scheduler configuration of LeastAllocated, Karpenter is statistically more likely to disrupt pods and/or require consolidation than if the scheduler was running in MostAllocated mode.

I'd like to see this tested and documented. I suspect that in some cases, especially where eviction on some pods is disabled, that this would provide a significant price reduction.

How important is this feature to you? I think having this officially documented would help users understand how to get the most out of Karpenter and would add weight to requests to cloud providers to support customising the scheduler.

stevehipwell commented 2 months ago

CC @jonathan-innis (this is what I spoke to you at KubeCon EU about)

jonathan-innis commented 1 month ago

I'd like to see this tested and documented. I suspect that in some cases, especially where eviction on some pods is disabled, that this would provide a significant price reduction

Agreed. This sounds like a good feature to explore. Obviously, for us to give a recommendation for those that have direct control of their SchedulerConfiguration and the control plane, but also platforms like EKS should explore this alternative option to see if they get increased performance with Karpenter from this other setting.

I suspect that you are right about the performance, at least that we would be able to act more aggressively with consolidation since we'd have "less cluster churn" disrupting our current consolidation decision-making.

jonathan-innis commented 1 month ago

/triage accepted