CAROKRS: Cost-Aware Resource Optimization Kubernetes Resource Scheduler
Tianzhe Li, Lupeng Qiu, F. Chen, Hao Chen, Naqin Zhou · 2024
Kubernetes (K8s) is a widely used container orchestration tool in cloud computing platforms, providing strong support for the automated deployment, scaling, and management of applications. One of its key features is the ability to use scheduling algorithms to determine the optimal placement of containers on available nodes in a cluster. Poor scheduling decisions can lead to decreased service performance or wastage of cloud resources. However, effective resource scheduling has always been one of the challenges faced by Kubernetes: existing K8s schedulers often have limitations in their scheduling approaches, typically optimizing scheduling decisions for a specific target. Additionally, existing K8s schedulers lack targeted awareness of cluster and deployment resources for optimization goals, resulting in less noticeable optimization effects. This paper aims to propose a Cost-aware Resource Optimization Kubernetes Resource Scheduler (CAROKRS) to improve the utilization of computing resources, avoid resource overruns, and reduce deployment costs. Through research on the adaptability patterns between pod resource demands and node resource situations, we introduce a resource fitness scheduling algorithm (RFSA). Based on this, we further optimize the scheduling strategy using a supplementary scheduling algorithm (SSA) based on a simulated annealing algorithm, resulting in a final scheduling strategy with low deployment costs, low overrun rates, and high resource utilization rates. Experimental results show that the Cost-aware Resource Optimization Kubernetes Resource Scheduler, compared to the native K8s scheduler, achieves an average reduction of 89.78% in deployment costs, an average increase of 60.59% in load balancing, and an average decrease of 36.05% in resource overruns.