Title
Hierarchical Scaling of Microservices in Kubernetes
Abstract
In the last years, we have seen the increasing adoption of the microservice architectural style where applications satisfy user requests by invoking a set of independently deployable services. Software containers and orchestration tools, such as Kubernetes, have simplified the development and management of microservices. To manage containers' horizontal elasticity, Kubernetes uses a decentralized threshold-based policy that requires to set thresholds on system-oriented metrics (i.e., CPU utilization). This might not be well-suited to scale latency-sensitive applications, which need to express requirements in terms of response time. Moreover, being a fully decentralized solution, it may lead to frequent and uncoordinated application reconfigurations. In this paper, we present me-kube (Multi-level Elastic Kubernetes), a Kubernetes extension that introduces a hierarchical architecture for controlling the elasticity of microservice-based applications. At higher level, a centralized per-application component coordinates the run-time adaptation of subordinated distributed components, which, in turn, locally control the adaptation of each microservice. Then, we propose novel proactive and reactive hierarchical control policies, based on queuing theory. To show that me-kube provides general mechanisms, we also integrate reinforcement learning-based scaling policies. Using me-kube, we perform a large set of experiments, aimed to show the advantages of a hierarchical control over the default Kubernetes autoscaler.
Year
DOI
Venue
2020
10.1109/ACSOS49614.2020.00023
2020 IEEE International Conference on Autonomic Computing and Self-Organizing Systems (ACSOS)
Keywords
DocType
ISBN
Container,Elasticity,Hierarchical control,Kubernetes,Microservices,Self-adaptation
Conference
978-1-7281-7278-1
Citations 
PageRank 
References 
4
0.49
0
Authors
3
Name
Order
Citations
PageRank
Fabiana Rossi1102.77
Valeria Cardellini21514106.12
Francesco Lo Presti3107378.83