Dynamic Autoscaling and Scheduling in Kubernetes Clusters with LSTM and ILP
Abstract
Containerized applications provide benefits such as portability, security, and faster deployment, enabling organizations to adapt swiftly to dynamic business needs. Kubernetes automates the deployment, scaling, and management of these applications, with the Kubernetes autoscaler enhancing availability and scalability by dynamically adjusting capacity to handle unexpected traffic spikes or workloads. The Kubernetes scheduler is also crucial for application autoscaling, as it schedules pods across different nodes. However, most existing research addresses autoscaling and scheduling separately. This work aims to integrate these two aspects by developing a Mixed Integer Linear Programming (ILP) model to minimize overall response time while maximizing throughput in a Kubernetes cluster through dynamic pod autoscaling and optimal scheduling. Additionally, we design a Long-Short Term Memory (LSTM)-based horizontal autoscaler and scheduler to efficiently manage pods during autoscaling. We then integrate these algorithms and evaluate their performance on a 9-node Kubernetes testbed. Results show that this combined approach outperforms the default algorithms in terms of response time and throughput across various traffic scenarios.
Keywords
Kubernetes, AutoScaling, scheduling, LSTM, HPA, VPA
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
S. Patil, N. D G and A. Bhat, "Dynamic Autoscaling and Scheduling in Kubernetes Clusters with LSTM and ILP," in Journal of Communications Software and Systems, vol. 21, no. 4, pp. 465-476, November 2025, doi: https://doi.org/10.24138/jcomss-2023-0147
@article{patil2025dynamicautoscaling,
author = {Somashekar Patil and Narayan D G and Ajeya Bhat},
title = {Dynamic Autoscaling and Scheduling in Kubernetes Clusters with LSTM and ILP},
journal = {Journal of Communications Software and Systems},
month = {11},
year = {2025},
volume = {21},
number = {4},
pages = {465--476},
doi = {https://doi.org/10.24138/jcomss-2023-0147},
url = {https://doi.org/https://doi.org/10.24138/jcomss-2023-0147}
}