KAI Scheduler is a robust, efficient, and scalable Kubernetes scheduler that optimizes GPU resource allocation for AI and machine learning workloads.
Designed to manage large-scale GPU clusters, including thousands of nodes, and high-throughput of workloads, makes the KAI Scheduler ideal for extensive and demanding environments. KAI Scheduler allows administrators of Kubernetes clusters to dynamically allocate GPU resources to workloads.
KAI Scheduler supports the entire AI lifecycle, from small, interactive jobs that require minimal resources to large training and inference, all within the same cluster. It ensures optimal resource allocation while maintaining resource fairness between the different consumers. It can run alongside other schedulers installed on the cluster.
Latest News 🔥
- [2026/04] KubeCon EU 2026 Talk: Watch the recording of the presentation "GPU Reservations: Maximizing Utilization and Fairness Across Teams", to explore how KAI Scheduler manages GPU resource reservations to balance utilization and fairness across teams.
- [2025/11] KubeCon NA 2025 Talk: Watch the recording of the presentation "Lightning Talk: Mind the Topology: Smarter Scheduling for AI Workloads on Kubernetes" to learn how KAI's Topology-Aware Scheduling (TAS) optimizes placement for modern disaggregated serving architectures.
- [2025/11] Integration with Grove & Dynamo: KAI's Topology-Aware and Hierarchical Gang Scheduling capabilities are integrated with Grove to orchestrate complex, multi-component workloads like disaggregated serving and agentic pipelines at scale. Read the blog post for more details.
- [2025/10] v0.10.0 Release: Major features released, including Topology-Aware Scheduling (TAS), Hierarchical PodGroups, and Time-based Fairshare.
- [2025/10] KubeRay Integration: KAI Scheduler is now natively integrated for Ray workloads on Kubernetes.
- [2025/08] Time-Based Fairshare: Proposal for Time-based Fairshare is discussed at batch-wg. Watch the recording.
- [2025/04] Project Introduction: Recording of the KAI Scheduler introduction presented at the batch-wg meeting.
Key Features
- Batch Scheduling: Ensure all pods in a group are scheduled simultaneously or not at all.
- Bin Packing & Spread Scheduling: Optimize node usage either by minimizing fragmentation (bin-packing) or increasing resiliency and load balancing (spread scheduling).
- Workload Priority: Prioritize workloads effectively within queues.
- Separation of workload priority and preemptibility: supports separation of workload priority and workloads preemptibility as two independent policies
- Hierarchical Queues: Apply quotas, limits, priorities, and fairness policies across multi-level queue hierarchies for flexible organizational control.
- Resource distribution: Customize quotas, over-quota weights, limits, and priorities per queue.
- Fairness Policies: Ensure equitable resource distribution using Dominant Resource Fairness (DRF) and resource reclamation across queues.
- Time-based Fairshare: Over-time fair usage of resources, considering historical usage, time decay, and other parameters for fine-tuning.
- Min-guaranteed-runtime: ensures a time period in which the scheduler must not preempt or reclaim a running workload, even if preemptible.
- Workload Consolidation: Reallocate running workloads intelligently to reduce fragmentation and increase cluster utilization.
- Elastic Workloads: Dynamically scale workloads within defined minimum and maximum pod or SubGroup thresholds.
- Background Pods: Run maintenance workloads that the scheduler plans around and evicts on demand, so they never hold capacity from users.
- Dynamic Resource Allocation (DRA): Support vendor-specific hardware resources through Kubernetes ResourceClaims (e.g., GPUs from NVIDIA or AMD).
- Topology-Aware Scheduling (TAS): supports optimized placement with topology aware scheduling and hierarchical topology aware scheduling for Hierarchical PodGroups.
- Hierarchical PodGroups: supports gang scheduling with optimized topology aware scheduling of multi-level workloads, such as distributed and disaggregated workloads such as Dynamo/Grove.
- DRA support - supporting DRA for NVIDIA ComputeResources (GB200/GB300)
- Workload signatures: KAI Scheduler provides performance optimization for large multi-pod submissions using workload signatures.
- Scheduler explainability: based on K8S Events, every major step of the scheduling process is logged.
- GPU Sharing: Allow multiple workloads to efficiently share single or multiple GPUs, maximizing resource utilization.
- Cloud & On-premise Support: Fully compatible with dynamic cloud infrastructures (including auto-scalers like Karpenter) as well as static on-premise deployments.
[!NOTE]
KAI Scheduler is built based on kube-batch.
Prerequisites
Before installing KAI Scheduler, ensure you have:
- A running Kubernetes cluster
- Helm CLI installed
- NVIDIA GPU-Operator installed in order to schedule workloads that request GPU resources
Installation
KAI Scheduler will be installed in kai-scheduler namespace.
⚠️ When submitting workloads, make sure to use a dedicated namespace. Do not use the kai-scheduler namespace for workload submission.
Installation Methods
KAI Scheduler can be installed:
- From Production (Recommended)
- From Source (Build it Yourself)
- With ArgoCD (GitOps) - see the GitOps installation guide
Install from Production
Locate the latest release version in releases page.
Run the following command after replacing with the desired release version:
helm upgrade -i kai-scheduler oci://ghcr.io/kai-scheduler/kai-scheduler/kai-scheduler -n kai-scheduler --create-namespace --version <VERSION>
Build from Source
Follow the instructions here
Flavor Specific Instructions
OpenShift
When Do not set this value to For details on our release lifecycle, LTS versions, and supported releases, see the Support Policy. Refer to the Breaking Changes doc for more info To start scheduling workloads with KAI Scheduler, please continue to Quick Start example Repo-local agent skills live under You can find the updated KAI Scheduler roadmap (historical, near year and future) here. We’d love to hear from you! Here are the best ways to connect: Contributions are encouraged and appreciated!
Please have a look at KAI-scheduler's contribution guide before submitting PRs. Join the CNCF Slack first and visit the #kai-scheduler channel. When: Every other Monday at 17:00 CEST
Convert to your time zone | Add to your calendar | Meeting notes & agenda Join the kai-scheduler mailing list to receive updates on biweekly meetings. KAI Scheduler provides public dashboards for monitoring performance and scale testing: KAI Scheduler is Cloud Native Computing Foundation sandbox project.gpu-operator --set-string admission.gpuFractionRuntimeClassName=""null; an unset value is defaulted by the operator to nvidia.
If CDI is enabled, add --set binder.cdiEnabled=true to the installation command.Support & Breaking changes
Quick Start
Agent Skills
.agents/. This directory is the shared source of truth for reusable agent workflows in this repository, including Codex and Claude Code integrations.Roadmap
Community, Discussion, and Support
Contributing
Slack
Bi-weekly Community Call
Mailing List
Technical Issues & Feature Requests
Please open a GitHub issue for bugs, feature suggestions, or technical help. This helps us keep track of requests and respond effectively.
Performance Dashboards
Copyright Contributors to KAI Scheduler, established as KAI Scheduler a Series of LF Projects, LLC. For website terms of use, trademark policy and other project policies please see lfprojects.org/policies.