Control-Theoretic Autoscaling of Node.js in Kubernetes

Thumbnail Image



Journal Title

Journal ISSN

Volume Title


University of New Brunswick


Over the years, Kubernetes has emerged as the most prominent container orchestration platform and is thus used for managing containerized workloads in cloud-based environments. The use of the Kubernetes horizontal pod autoscaler (HPA) is one of the most widely used mechanisms for satisfaction of service level objectives under varying load conditions. Node.js applications are no exception to this; however, due to the event-driven, asynchronous nature of Node.js, there is a need for runtime-specific metrics for triggering autoscaling as opposed to the prevalent CPU-utilization-based mechanism. Thus, the contribution of this thesis is threefold: first, introducing a Node.js specific metric as the target setpoint value for the HPA controller, which acts as a threshold for triggering autoscaling; second, presenting the use of an external supervisory controller, based on control-theory and the model of the cluster, to adaptively change the setpoint value based on the difference between measured and desired service level metric; and finally, proposing a three-tier adaptive component for continuously monitoring and updating the system model and the controller parameters. To verify the methodology, this research compares the performance, under various load patterns, achieved by using the proposed approach with the widely used CPU-utilization-based autoscaling in Kubernetes.