kubernetes-sigs / karpenter

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

feat: InPlacePodVerticalScaling support #829

Open jzhn opened 9 months ago

jzhn commented 9 months ago

Description

What problem are you trying to solve?

Currently, Karpenter make scheduling and disruption decisions with the assumption that pod resource requests are immutable. Since Kubernetes 1.27, InPlacePodVerticalScaling was introduced as a new alpha feature, It's targeting beta post 1.30. With InPlacePodVerticalScaling, pod resource requests and limits become mutable.

A common use case of InPlacePodVerticalScaling is to mitigate startup issues for heavy application like Java, that big resource requests is initially allocated at startup, when the Pod becomes ready, a controller then lowers the resource requests to free up resources on the node.

With current Karpenter implementation, it is possible to create a loop that

Karpenter need to be updated to recognize the mutable resource requests, to prevent such loop. Due to the flexibility of current InPlacePodVerticalScaling, this might be a difficult task if Karpenter itself doesn't understand the resource request mutation strategy.

How important is this feature to you?

Many users have shown interest in InPlacePodVerticalScaling feature. https://github.com/aws/containers-roadmap/issues/512 might provide some datapoint. As a cluster autoscaler, Karpenter's awareness of InPlacePodVerticalScaling is critical so together the node usage efficiency can be further improved while keeping applications stable and performant.

k8s-triage-robot commented 6 months ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 5 months ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 4 months ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

k8s-ci-robot commented 4 months ago

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to [this](https://github.com/kubernetes-sigs/karpenter/issues/829#issuecomment-2081189300): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues 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: >- Reopen this issue with `/reopen` >- Mark this issue as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close not-planned > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
k8s-triage-robot commented 1 month ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot commented 2 weeks ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten