A Static Task Allocation and Scheduling Algorithm for Kubernetes Cluster
In this paper, a static task allocation and scheduling algorithm for Kubernetes (also known as K8s) clusters is proposed, which includes two parts: static task allocation and dynamic task scheduling. The static allocation algorithm firstly submits the tasks to the K8s and obtains a feasible task allocation scheme to form a task allocation blueprint, and secondly stores the task allocation blueprint in the form of ConfigMap in the ETCD database of K8s. According to the task allocation scheme in the task allocation blueprint, the dynamic scheduling algorithm guides the K8s default scheduler to schedule tasks to the nodes specified in the task allocation blueprint by dynamically setting the nodeSelector field and tolerations fields of pods, as well as the labels and taints of nodes. When a node fails, the dynamic scheduling algorithm finds an untagged node and tags the same label and taint to the node, and the tasks running on the faulty node are scheduled to the node. Experimental results show that the proposed algorithm has significant progress compared with the existing task scheduling algorithms: 1) the proposed algorithm improves the certainty of K8s cluster task scheduling by statically recording the task allocation scheme in the task allocation blueprint; 2) The algorithm represents the task allocation blueprint as the ConfigMap resource of the K8s cluster, and the node of task scheduling can be determined within O(n) time by querying the ConfigMap, which improves the real-time task scheduling of the K8s cluster.
Authors
- Honghui Wang (ORCID: https://orcid.org/0000-0001-9257-2820)
- Yuechang Zhao
- Jinyong Yin
Institutions
- NARI Group (China) (CN)
Publication Details
- Published
- 2024-09-27
- DOI
- https://doi.org/10.1109/iciscae62304.2024.10761792
- Citations
- 2
- Primary Topic
- Distributed and Parallel Computing Systems
- Type
- article
- Field-Weighted Citation Impact
- 0.70