Containers Orchestration with Cost-Efficient Autoscaling in Cloud Computing Environments

Maria A. Rodriguez,Rajkumar Buyya
DOI: https://doi.org/10.48550/arXiv.1812.00300
2018-12-02
Abstract:Containers are standalone, self-contained units that package software and its dependencies together. They offer lightweight performance isolation, fast and flexible deployment, and fine-grained resource sharing. They have gained popularity in better application management and deployment in recent years and are being widely used by organizations to deploy their increasingly diverse workloads such as web services, big data, and IoT in either proprietary clusters or cloud data centres. This has led to the emergence of container orchestration platforms, which are designed to manage the deployment of containerized applications in large-scale clusters. The majority of these platforms are tailored to optimize the scheduling of containers on a fixed-sized private cluster but are not enabled to autoscale the size of the cluster nor to consider features specific to public cloud environments. In this work, we propose a comprehensive container resource management approach that has three different objectives. The first one is to optimize the initial placement of containers by efficiently scheduling them on existing resources. The second one is to autoscale the number of resources at runtime based on the current cluster's workload. The third one is a rescheduling mechanism to further support the efficient use of resources by consolidating applications into fewer VMs when possible. Our algorithms are implemented as a plugin-scheduler for Kubernetes platform. We evaluated our framework and the effectiveness of the proposed algorithms on an Australian national cloud infrastructure. Our experiments demonstrate that considerable cost savings can be achieved by dynamically managing the cluster size and placement of applications. We find that our proposed approaches are capable of reducing the cost by 58% when compared to the default Kubernetes scheduler.
Distributed, Parallel, and Cluster Computing
What problem does this paper attempt to address?
The problems that this paper attempts to solve mainly focus on container orchestration and auto - scaling. Specifically: 1. **Optimize initial container placement**: Efficiently schedule containers on existing resources to minimize the number of required worker VMs while meeting the memory and CPU requirements of containerized applications. 2. **Automatically adjust the number of resources at runtime**: Dynamically adjust the number of worker VMs according to the current workload of the cluster. On the one hand, when the resource demand increases, meet the demand by scaling out, reducing the time for containers to wait for placement and startup; on the other hand, when the resource utilization is low, relocate applications by scaling in, shutting down under - utilized VMs, thereby reducing infrastructure costs. 3. **Rescheduling mechanism**: To further support the effective use of resources, integrate applications into fewer VMs, avoid unnecessary scaling - out operations or encourage scaling - in operations, especially when the workload changes, such as when the performance of long - term tasks declines over time, resulting in reduced resource use efficiency. The solutions to these problems aim to improve resource utilization efficiency, reduce costs, and ensure that performance goals can be met when deploying containerized applications in the public cloud environment. The paper proposes a comprehensive container resource management algorithm and implements it as a plug - in scheduler for the Kubernetes platform. Its effectiveness and cost - saving capabilities are verified through experiments on Australia's national - level cloud infrastructure.