TY - JOUR
T1 - DRS
T2 - A deep reinforcement learning enhanced Kubernetes scheduler for microservice-based system
AU - Jian, Zhaolong
AU - Xie, Xueshuo
AU - Fang, Yaozheng
AU - Jiang, Yibing
AU - Lu, Ye
AU - Dash, Ankan
AU - Li, Tao
AU - Wang, Guiling
N1 - Publisher Copyright:
© 2023 John Wiley & Sons, Ltd.
PY - 2023
Y1 - 2023
N2 - Recently, Kubernetes is widely used to manage and schedule the resources of microservices in cloud-native distributed applications, as the most famous container orchestration framework. However, Kubernetes preferentially schedules microservices to nodes with rich and balanced CPU and memory resources on a single node. The native scheduler of Kubernetes, called Kube-scheduler, may cause resource fragmentation and decrease resource utilization. In this paper, we propose a deep reinforcement learning enhanced Kubernetes scheduler named DRS. We initially frame the Kubernetes scheduling problem as a Markov decision process with intricately designed state, action, and reward structures in an effort to increase resource usage and decrease load imbalance. Then, we design and implement DRS mointor to perceive six parameters concerning resource utilization and create a thorough picture of all available resources globally. Finally, DRS can automatically learn the scheduling policy through interaction with the Kubernetes cluster, without relying on expert knowledge about workload and cluster status. We implement a prototype of DRS in a Kubernetes cluster with five nodes and evaluate its performance. Experimental results highlight that DRS overcomes the shortcomings of Kube-scheduler and achieves the expected scheduling target with three workloads. With only 3.27% CPU overhead and 0.648% communication delay, DRS outperforms Kube-scheduler by 27.29% in terms of resource utilization and reduces load imbalance by 2.90 times on average.
AB - Recently, Kubernetes is widely used to manage and schedule the resources of microservices in cloud-native distributed applications, as the most famous container orchestration framework. However, Kubernetes preferentially schedules microservices to nodes with rich and balanced CPU and memory resources on a single node. The native scheduler of Kubernetes, called Kube-scheduler, may cause resource fragmentation and decrease resource utilization. In this paper, we propose a deep reinforcement learning enhanced Kubernetes scheduler named DRS. We initially frame the Kubernetes scheduling problem as a Markov decision process with intricately designed state, action, and reward structures in an effort to increase resource usage and decrease load imbalance. Then, we design and implement DRS mointor to perceive six parameters concerning resource utilization and create a thorough picture of all available resources globally. Finally, DRS can automatically learn the scheduling policy through interaction with the Kubernetes cluster, without relying on expert knowledge about workload and cluster status. We implement a prototype of DRS in a Kubernetes cluster with five nodes and evaluate its performance. Experimental results highlight that DRS overcomes the shortcomings of Kube-scheduler and achieves the expected scheduling target with three workloads. With only 3.27% CPU overhead and 0.648% communication delay, DRS outperforms Kube-scheduler by 27.29% in terms of resource utilization and reduces load imbalance by 2.90 times on average.
KW - Kubernetes scheduler
KW - deep reinforcement learning
KW - microservice scheduling
KW - resource awareness
UR - http://www.scopus.com/inward/record.url?scp=85173863027&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85173863027&partnerID=8YFLogxK
U2 - 10.1002/spe.3284
DO - 10.1002/spe.3284
M3 - Article
AN - SCOPUS:85173863027
SN - 0038-0644
JO - Software - Practice and Experience
JF - Software - Practice and Experience
ER -