Characterising resource management performance in Kubernetes
Víctor Medel, Rafael Tolosana-Calasanz, José Ángel Bañares, Unai Arronategui, Omer F. Rana
TL;DR
The paper addresses elastic cloud resource provisioning in Kubernetes and introduces a Petri Net-based framework (Reference Nets) to model pod and container lifecycles and the overheads of deployment and termination. By benchmarking on an eight-node cluster, it parameterizes the model with observed timings, defines metrics such as $T_d$, $T_{down}$, and $T_t$, and analyzes the overhead of the pod abstraction across CPU, IO, and network workloads. It contributes actionable rules for configuring the number of containers per pod ($\rho$) to optimize performance and supports capacity planning for elastic Kubernetes deployments. The work enables designers to reason about scheduling, resource sharing, and configuration choices to improve the responsiveness and efficiency of containerized cloud applications.
Abstract
A key challenge for supporting elastic behaviour in cloud systems is to achieve a good performance in automated (de-)provisioning and scheduling of computing resources. One of the key aspects that can be significant is the overheads associated with deploying, terminating and maintaining resources. Therefore, due to their lower start up and termination overhead, containers are rapidly replacing Virtual Machines (VMs) in many cloud deployments, as the computation instance of choice. In this paper, we analyse the performance of Kubernetes achieved through a Petri net-based performance model. Kubernetes is a container management system for a distributed cluster environment. Our model can be characterised using data from a Kubernetes deployment, and can be exploited for supporting capacity planning and designing Kubernetes-based elastic applications.
