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

Implement intelligent autoscaling #15068

Open
skonto opened this issue Apr 1, 2024 · 2 comments
Open

Implement intelligent autoscaling #15068

skonto opened this issue Apr 1, 2024 · 2 comments
Labels
kind/feature Well-understood/specified features, ready for coding.

Comments

@skonto
Copy link
Contributor

skonto commented Apr 1, 2024

Describe the feature

KPA gathers statistics via a moving average across pod replicas given a time window. I am wondering if we could provide something smarter and also deal with some cold start issues eg. don't scale down to zero if a traffic burst is about to happen.
This could be implemented as knative-extension as Knative services could be updated externally (no need to change kpa).
There is a lot of history on the topic, see [1] for more. This feature is already offered, for example at the node level, by cloud providers, see [2]. See also the KEDA related issue [3]. I am creating this issue also as a ref for future discussions in case there is interest from the community.

Refs

[1] Lucia Schuler, Somaya Jamil, Niklas Kühl, AI-based Resource Allocation: Reinforcement Learning for Adaptive Auto-scaling in Serverless Environments.
[2] Predictive scaling for Amazon EC2 Auto Scaling
[3] kedacore/keda#2401

cc @dprotaso @ReToCode

@skonto skonto added the kind/feature Well-understood/specified features, ready for coding. label Apr 1, 2024
@Hojland
Copy link

Hojland commented Apr 5, 2024

We also experience the issues mentioned here. I was initially hoping to integrate some redundancy option, so that I could always add x pods to the deployment on top of what kpa predicts. But I would much rather like some predictive scaling or options for also integrating cyclical workloads or similar.

As a first step for me, could I integrate this redundancy as a knative-extension and deploy it myself? Are there guides for doing that?

Help is much appreciated!

@Lightxyz
Copy link

Lightxyz commented Apr 23, 2024

@Hojland You can implement your own Autoscaling algorithm in Knative, then just recompile it and deploy the different Autoscaler container image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Well-understood/specified features, ready for coding.
Projects
None yet
Development

No branches or pull requests

3 participants