Article Preview
TopIntroduction
Cloud computing platform (Lee, 2013) provides us with a lot of benefits such as the flexibility in the allocation of computing and network resources, the pay-per-use model. This helps saving the intial capital expenditure (CAPEX) for small and medium enterprises. The required network and computing infrastructure is deployed elastically and efficiently on any geographically distributed data centers over the world. This will decrease the network latency, provide enough information technology infrastructure, networking, and computing resources for operation in the small and medium enterprises.
Containter virtualization is a network and computing virtualization technology that is attracting a lot of interest of academic research and industry. Instead of virtualizing the all the hardware components, such as CPU, memory, network cards, and software component, such as operation system, drivers. The container technology just packages the necessary components to run the applications such as library, bin file, and file system. The container technology brings several benefits compared to traditional virtual machine technologies. These benefits are lightweight, small footprints, and fast reboot and recovery process. This reduces the downtime of system significantly during the recovery process.
With the arrival of container technology, there have been a lot of container management and deployment platform. The most outstanding container management platform is Kubernetes (K8s) platform (Kubernetes container deployment and management platform, n.d.). The K8s deploys the applications as containers in the point of deployents (PoD) that are distributed over different hardware nodes in the K8s cluster. The K8s provides the loadbalancing over containers, the scheduling function that optimizes the deployment of containers over the clusters of hardware nodes. K8s also provides the autoscaling function (Horizontal PoD autoscaling function in Kubernetes Platform, n.d.) that adjusts dynamically the number of containers or the hardware resources of containers when the CPU or memory are used over the threshold.
Currently, there have been two major methods that are used to fulfill the autoscaling functions on the K8s. These methods are horizontal autoscaling and vertial autoscaling. The horizontal autoscaling refers to the process of increasing or decreasing the number of point of deployments (PoDs) for the purpose of reducing the CPU or memory ultilization. And the vertical autoscaling (Vertical PoD autoscaling in Google Kubernetes Engine, n.d.) involves the process of increasing or decreasing the hardware resource limit of the PoDs. However, each of autoscaling strategy has its own limitations. For example, the vertical autoscaling consumes a lot of time, which results from multiple step autoscaling process. The current horizontal autoscaling is not efficient in terms of bandwidth cost. Therfore, in this paper a hybrid autoscaling method is presented, which makes use of advantages of both horizontal and vertial autoscaling. At the same time, a bandwidth-efficient scheduler is also proposed, which is based on the network topology to select the best hardware nodes in the K8s cluster to reduce the network bandwidth cost. By numerical results, our hybrid approach not only improves the autoscaling latency but also reduces the bandwidth cost.
The paper is organized as followings: first the authors review the basic concept of Kubernetes cluster, how the autoscaling works, then current research works related to autoscaling in terms of both vertical and horizontal autoscaling. The authors then present in detail the proposed hybrid autoscaling approach. In the next section, the authors analyze the performance of each approach and do the simulation to obtain the numerical results of each approach. Last section is the conclusion of the research work.