2025/11/11 by Christensen, Henrik Daniel, Saverio Giallorenzo, Giallorenzo, Saverio +2
Computer Science · #Cloud Computing and Resource Management #Distributed #Distributed and Parallel Computing Systems #FOS: Computer and information sciences #Parallel #Software-Defined Networks and 5G #and Cluster Computing (cs.DC)
paper · pdf · doi:10.48550/arxiv.2511.08373
openalex publication_date 2025/11/11 · openalex created_date 2025/11/13 · openalex updated_date 2026/07/28
Distributed applications employ Kubernetes for scalable, fault-tolerant deployments over computer clusters, where application components run in groups of containers called pods. The scheduler, at the heart of Kubernetes' architecture, determines the placement of pods given their priority and resource requirements on cluster nodes. To quickly allocate pods, the scheduler uses lightweight heuristics that can lead to suboptimal placements and resource fragmentation, preventing allocations of otherwise deployable pods on the available nodes. We propose the usage of constraint programming to find the optimal allocation of pods satisfying all their priorities and resource requests. Implementation-wise, our solution comes as a plug-in to the default scheduler that operates as a fallback mechanism when some pods cannot be allocated. Using the OR-Tools constraint solver, our experiments on small-to-mid-sized clusters indicate that, within a 1-second scheduling window, our approach places more higher-priority pods than the default scheduler (possibly demonstrating allocation optimality) in over 44% of realisable allocation scenarios where the default scheduler fails, while certifying that the default scheduler's placement is already optimal in over 19% of scenarios. With a 10-second window, our approach improves placements in over 73% and still certifies that the default scheduler's placement is already optimal in over 19% of scenarios.