DEVOURED
Kubernetes v1.36: Advancing Workload-Aware Scheduling
Kubernetes v1.36 overhauls scheduling for AI/ML and batch workloads by introducing a PodGroup API for atomic, topology-aware gang scheduling and dynamic resource allocation.
What: Kubernetes v1.36 introduced a major architectural overhaul for workload-aware scheduling, splitting the Workload API into a static template and a new PodGroup API for runtime state, enabling atomic scheduling of entire pod groups rather than individual pods. The release also added topology-aware scheduling to reduce network latency for AI/ML workloads, workload-aware preemption for group-based eviction, Dynamic Resource Allocation (DRA) support for shared devices, and native Job controller integration for automated gang scheduling of indexed parallel jobs.
Why it matters: This represents a significant architectural evolution in Kubernetes scheduling, moving beyond individual pod management to address the complex requirements of modern distributed workloads, particularly for AI/ML training and high-performance computing, where co-location and atomic resource allocation are crucial for efficiency.
Takeaway: If you are running large-scale AI/ML or batch workloads on Kubernetes, explore the v1.36 alpha features like PodGroup and topology-aware scheduling to potentially improve performance and resource utilization.
Deep dive
- Kubernetes v1.36 focuses on workload-aware scheduling improvements.
- Splits the Workload API (static template) from the new PodGroup API (runtime state) in
scheduling.k8s.io/v1alpha2. - Introduces a dedicated PodGroup scheduling cycle in kube-scheduler for atomic processing of entire groups.
- Supports gang scheduling, where pods are scheduled together if
minCountrequirement is met, preventing partial deployments. - Adds topology-aware scheduling to co-locate pods within physical or logical domains (e.g., racks) to reduce network latency, especially for AI/ML.
- Debuts workload-aware preemption, which treats an entire PodGroup as a single preemptor unit, pre-empting across multiple nodes simultaneously.
- Enhances Dynamic Resource Allocation (DRA) to allow PodGroups to represent the replicable unit for ResourceClaimTemplates, enabling high-cardinality sharing of devices like GPUs.
- Integrates with the Job controller to automatically create Workload and PodGroup objects for specific types of parallel Jobs (static, indexed, fully-parallel).
- All these features are alpha in v1.36 and require feature gates to be enabled.
- Future plans include graduating APIs to Beta, multi-level Workload hierarchies, and broader controller integration.
Decoder
- Gang scheduling: A scheduling technique where a group of interdependent tasks (pods in Kubernetes) are scheduled to run simultaneously, or not at all, to avoid deadlocks and improve performance.
- Topology-aware scheduling: A scheduling strategy that considers the physical or logical arrangement of resources (e.g., racks, zones) within a cluster to place interdependent workloads closer together, minimizing communication latency.
- Dynamic Resource Allocation (DRA): A Kubernetes feature allowing pods to make detailed, dynamic requests for specialized devices like GPUs or TPUs, rather than relying on static resource definitions.
Original article
Full article content is not available for inline reading.
Explore all 57 articles in today's digest
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi