Implementing a Predictive Autoscaler in Kubernetes Using ML Time Series Forecasting Models
Authors
Jensen, Thomas Møller ; Møller, Jens Jacob Torvin ; Fog, Jonathan Wisborg
Term
4. term
Education
Publication year
2025
Submitted on
2025-06-13
Pages
20
Abstract
This thesis presents a predictive autoscaling system for Kubernetes (a platform for orchestrating containerized applications) that uses time-series forecasting with multiple machine-learning models, trained continuously on incoming data. Unlike default reactive autoscalers, which add capacity only after a traffic spike is already underway and can degrade quality of service (QoS), our system forecasts the future load of each deployment and scales it up or down in advance. It is lightweight to deploy, requires only a few cluster dependencies, and continuously monitors the cluster to discover new deployments it can manage automatically. In experiments, the predictive autoscaler reduced average response time by 14-20% compared with the Kubernetes Horizontal Pod Autoscaler (HPA) and cut the share of requests taking over one second by 93-95%. These improvements came with only 3% more power use and 2-5% more pods. The source code is available as open source on GitHub; see Section A (p. 19).
Dette projekt præsenterer et forudsigende autoskaleringssystem til Kubernetes (en platform til at styre containeriserede applikationer), som bruger tidsrækkeprognoser med flere maskinlæringsmodeller, der trænes løbende på nye data. I modsætning til de reaktive standardløsninger, der først skalerer når en trafiktop allerede er i gang og derfor kan forringe kvaliteten af service (QoS), forudsiger vores system den fremtidige belastning for hver enkelt udrulning og skalerer op eller ned på forhånd. Løsningen er let at tage i brug, kræver få afhængigheder i klyngen, og den overvåger løbende klyngen for at finde nye udrulninger, som kan styres automatisk. I forsøg overgik den forudsigende autoskalerer Kubernetes' Horizontal Pod Autoscaler (HPA) ved at reducere den gennemsnitlige svartid med 14-20% og antallet af anmodninger over ét sekund med 93-95%. Disse gevinster krævede kun 3% mere strømforbrug og 2-5% flere pods. Kildekoden er tilgængelig som open source på GitHub; se Afsnit A (s. 19).
[This apstract has been rewritten with the help of AI based on the project's original abstract]
