Content area
Container clusters are widely used to execute containerized applications in cloud environments. An essential characteristic implemented by these clusters is autoscaling, which is the ability to automatically adapt the computing resources of a cluster to support variable workloads. Precise adjustment of cluster resources to its workload in each autoscaling operation is essential to control cluster deployment costs. Several resource allocation models have been developed with the objective of cost minimization. However, as the number of containers and virtual machines of the cluster increases, resource allocation problems become too complex, and cannot be solved in reasonable time by existing resource allocation models. In this paper we present FCMA (Fast Container to Machine Allocator), a resource allocation algorithm designed to calculate a suitable allocation of the resources of a cluster in autoscaling operations, to minimize cluster deployment costs. The main motivation for the development of FCMA has been to significantly reduce the solving time of the resource allocation problem compared to a previous state-of-the-art optimal Integer Linear Programming (ILP) model. In addition, FCMA addresses secondary objectives to improve fault tolerance and reduce container and virtual machine recycling costs, load-balancing overloads and container interference. We have conducted an experimental evaluation to assess the effectiveness of FCMA, using the ILP model and two heuristics as a baseline. The experiments show that FCMA is much faster than the ILP model, with an average solving time reduction of two orders of magnitude. This gain in speed does not compromise the quality of the solutions, which have a cost on par with those of the ILP model. In comparison to the heuristics, FCMA achieves similar solving times while consistently delivering more cost-effective solutions.