[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-kai-scheduler--KAI-Scheduler":3,"tool-kai-scheduler--KAI-Scheduler":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":74,"owner_location":74,"owner_email":74,"owner_twitter":74,"owner_website":74,"owner_url":75,"languages":76,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":100,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":110,"github_topics":74,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":144},8544,"kai-scheduler\u002FKAI-Scheduler","KAI-Scheduler","KAI Scheduler is an open source Kubernetes Native scheduler for AI workloads at large scale","KAI-Scheduler 是一款专为大规模 AI 工作负载设计的开源 Kubernetes 原生调度器。它致力于解决在千节点级 GPU 集群中，如何高效、公平地分配昂贵算力资源的难题，确保从小型交互式任务到大型模型训练与推理都能在同一集群内顺畅运行。\n\n这款工具特别适合负责管理 AI 基础设施的运维工程师、平台开发者以及需要处理高并发机器学习任务的研究团队。通过引入拓扑感知调度（TAS），KAI-Scheduler 能根据硬件物理结构智能放置任务，显著提升现代分离式架构下的运行效率；其层级化 Pod 组和时间基公平共享机制，则能在多租户环境下保障资源分配的公正性与灵活性。此外，它还支持与 Ray 及 Grove 等生态工具无缝集成，并能与其他调度器共存，为构建复杂、大规模的 AI 生产环境提供了坚实可靠的底层支撑。","[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE) [![Coverage](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fraw\u002Fcoverage-badge\u002Fbadges\u002Fcoverage.svg)](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002F.github\u002Fworkflows\u002Fupdate-coverage-badge.yaml)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Fkai-scheduler\u002FKAI-scheduler)\n[![OpenSSF Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkai-scheduler_KAI-Scheduler_readme_e7ac80e96562.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F12064)\n\n# KAI Scheduler\n\nKAI Scheduler is a robust, efficient, and scalable [Kubernetes scheduler](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Fconcepts\u002Fscheduling-eviction\u002Fkube-scheduler\u002F) that optimizes GPU resource allocation for AI and machine learning workloads.\n\nDesigned 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.\nKAI Scheduler allows administrators of Kubernetes clusters to dynamically allocate GPU resources to workloads. \n\nKAI Scheduler supports the entire AI lifecycle, from small, interactive jobs that require minimal resources to large training and inference, all within the same cluster. \nIt ensures optimal resource allocation while maintaining resource fairness between the different consumers.\nIt can run alongside other schedulers installed on the cluster.\n\n## Latest News 🔥\n\n- [2025\u002F11] **KubeCon NA 2025 Talk:** Watch the recording of the presentation \"[Lightning Talk: Mind the Topology: Smarter Scheduling for AI Workloads on Kubernetes](https:\u002F\u002Fyoutu.be\u002Fo5i7pTWZjfo?si=su5iTOAS4r4O1TPa)\" to learn how KAI's Topology-Aware Scheduling (TAS) optimizes placement for modern disaggregated serving architectures.\n- [2025\u002F11] **Integration with [Grove](https:\u002F\u002Fgithub.com\u002Fai-dynamo\u002Fgrove) & 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](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fstreamline-complex-ai-inference-on-kubernetes-with-nvidia-grove\u002F) for more details.\n- [2025\u002F10] **[v0.10.0 Release:](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Freleases\u002Ftag\u002Fv0.10.0)** Major features released, including [Topology-Aware Scheduling (TAS)](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftopology), [Hierarchical PodGroups](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup), and [Time-based Fairshare](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftime-based-fairshare).\n- [2025\u002F10] **KubeRay Integration:** KAI Scheduler is now natively integrated for [Ray workloads on Kubernetes](https:\u002F\u002Fdocs.ray.io\u002Fen\u002Fmaster\u002Fcluster\u002Fkubernetes\u002Fk8s-ecosystem\u002Fkai-scheduler.html).\n- [2025\u002F08] **Time-Based Fairshare:** [Proposal for Time-based Fairshare](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Ftime-based-fairshare\u002Ftime-based-fairshare.md) is discussed at batch-wg. [Watch the recording.](https:\u002F\u002Fzoom.us\u002Frec\u002Fplay\u002FuW5ex5dmQP8_7UqOv5UjOGq8IqZeIa8AhKILqvDUQ6CnBAIdJjPY-BLfUWnoYblvDP-ZIvAp48p7XJNv.Cx5t7x1DwGqJgIYB?eagerLoadZvaPages=&accessLevel=meeting&canPlayFromShare=true&from=share_recording_detail&startTime=1755010542000&componentName=rec-play&originRequestUrl=https%3A%2F%2Fzoom.us%2Frec%2Fshare%2Frd_j_7ZDpC8lXxGNdQwguK2ZunoM3R93HR1Eo4A9rxD7b5lWSbmojDKc8OZ00ZMK.QxgEeMOxMcuiDkIY%3FstartTime%3D1755010542000)\n- [2025\u002F04] **Project Introduction:** Recording of the [KAI Scheduler introduction presented at the batch-wg meeting](https:\u002F\u002Fzoom.us\u002Frec\u002Fplay\u002FE1weaHroJpuTdXx6s9pjMu6oS78BiA53wsnvV9MWe_rIdwmDLFOG8J4XEPNW8-hIp4-HSFNdsbbP7mcv.YstbxFdS7z7tOfKw?eagerLoadZvaPages=&accessLevel=meeting&canPlayFromShare=true&from=share_recording_detail&startTime=1744124229000&componentName=rec-play&originRequestUrl=https%3A%2F%2Fzoom.us%2Frec%2Fshare%2FwP2WH6bqd7Dj8dupZD3YQTMWgG4AP5361_0h5vicI69LNb25JdQB8wn6fkvtLw2f.rLrRcQTSO1OCyRNu%3FstartTime%3D1744124229000).\n\n## Key Features\n\n- [Batch Scheduling](docs\u002Fbatch\u002FREADME.md): Ensure all pods in a group are scheduled simultaneously or not at all.\n- Bin Packing & Spread Scheduling: Optimize node usage either by minimizing fragmentation (bin-packing) or increasing resiliency and load balancing (spread scheduling).\n- [Workload Priority](docs\u002Fpriority\u002FREADME.md): Prioritize workloads effectively within queues.\n- [Separation of workload priority and preemptibility](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fpriority-preemptibility-separation): supports separation of workload priority and workloads preemptibility as two independent policies\n- [Hierarchical Queues](docs\u002Fqueues\u002FREADME.md): Manage workloads with two-level queue hierarchies for flexible organizational control.\n- [Resource distribution](docs\u002Ffairness\u002FREADME.md#resource-division-algorithm): Customize quotas, over-quota weights, limits, and priorities per queue.\n- [Fairness Policies](docs\u002Ffairness\u002FREADME.md#reclaim-strategies): Ensure equitable resource distribution using Dominant Resource Fairness (DRF) and resource reclamation across queues.\n- [Time-based Fairshare](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftime-based-fairshare): Over-time fair usage of resources, considering historical usage, time decay, and other parameters for fine-tunning. \n- [Min-guaranteed-runtime](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fmin-runtime): ensures a time period in which the scheduler must not preempt or reclaim a running workload, even if preemptible.\n- Workload Consolidation: Reallocate running workloads intelligently to reduce fragmentation and increase cluster utilization.\n- [Elastic Workloads](docs\u002Felastic\u002FREADME.md): Dynamically scale workloads within defined minimum and maximum pod counts.\n- Dynamic Resource Allocation (DRA): Support vendor-specific hardware resources through Kubernetes ResourceClaims (e.g., GPUs from NVIDIA or AMD).\n- [Topology-Aware Scheduling (TAS)](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftopology): supports optimized placement with [topology aware scheduling](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Ftopology-awareness) and hierarchical topology aware scheduling for [Hierarchical PodGroups](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup).\n- [Hierarchical PodGroups](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup): supports gang scheduling with optimized topology aware scheduling of multi-level workloads, such as distributed and disaggregated workloads such as Dynamo\u002FGrove.\n- DRA support - supporting DRA for NVidia ComputeResources (GB200\u002FGB300)\n- Workload signatures: KAI Scheduler provides performance optimization for large  multi-pod submissions using workload signatures. \n- Scheduler explainability: based on K8S Events, every major step of the scheduling process is logged.\n\n- [GPU Sharing](docs\u002Fgpu-sharing\u002FREADME.md): Allow multiple workloads to efficiently share single or multiple GPUs, maximizing resource utilization.\n- Cloud & On-premise Support: Fully compatible with dynamic cloud infrastructures (including auto-scalers like Karpenter) as well as static on-premise deployments.\n\n> [!NOTE]\n> KAI Scheduler is built based on [kube-batch](https:\u002F\u002Fgithub.com\u002Fkubernetes-sigs\u002Fkube-batch).\n\n## Prerequisites\n\nBefore installing KAI Scheduler, ensure you have:\n\n- A running Kubernetes cluster\n- [Helm](https:\u002F\u002Fhelm.sh\u002Fdocs\u002Fintro\u002Finstall) CLI installed\n- [NVIDIA GPU-Operator](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fgpu-operator) installed in order to schedule workloads that request GPU resources\n\n## Installation\n\nKAI Scheduler will be installed in `kai-scheduler` namespace.\n\n> ⚠️ When submitting workloads, make sure to use a dedicated namespace. Do not use the `kai-scheduler` namespace for workload submission.\n\n### Installation Methods\n\nKAI Scheduler can be installed:\n\n- **From Production (Recommended)**\n- **From Source (Build it Yourself)**\n\n#### Install from Production\n\nLocate the latest release version in [releases](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Freleases) page.\nRun the following command after replacing `\u003CVERSION>` with the desired release version:\n\n```sh\nhelm upgrade -i kai-scheduler oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler -n kai-scheduler --create-namespace --version \u003CVERSION>\n```\n\n#### Build from Source\n\nFollow the instructions [here](docs\u002Fdeveloper\u002Fbuilding-from-source.md)\n\n## Flavor Specific Instructions\n\n### Openshift\n\nWhen `gpu-operator` \u003Cv25.10.0 is installed, the following flag should be added to the installation command:\n\n```\n--set admission.gpuPodRuntimeClassName=null\n```\nIf CDI is enabled also add `--set binder.cdiEnabled=true`.\n## Support & Breaking changes\n\nFor details on our release lifecycle, LTS versions, and supported releases, see the [Support Policy](SUPPORT.md).\n\nRefer to the [Breaking Changes](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002Fdocs\u002Fmigrationguides\u002FREADME.md) doc for more info\n\n## Quick Start\n\nTo start scheduling workloads with KAI Scheduler, please continue to [Quick Start example](docs\u002Fquickstart\u002FREADME.md)\n\n## Roadmap\n\nYou can find the updated KAI Scheduler roadmap (historical, near year and future) [here](roadmap.md).\n\n## Community, Discussion, and Support\n\nWe’d love to hear from you! Here are the best ways to connect:\n\n### Contributing\n\nContributions are encouraged and appreciated! \nPlease have a look at KAI-scheduler's [contribution guide](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) before submitting PRs.\n\n### Slack\n\nJoin the [CNCF Slack](https:\u002F\u002Fcommunityinviter.com\u002Fapps\u002Fcloud-native\u002Fcncf) first and visit the [#kai-scheduler](https:\u002F\u002Fcloud-native.slack.com\u002Farchives\u002Fkai-scheduler) channel.\n\n### Bi-weekly Community Call\n\n**When:** Every other Monday at 17:00 CEST  \n[Convert to your time zone](https:\u002F\u002Fdateful.com\u002Ftime-zone-converter?t=17&tz2=Germany) | [Add to your calendar](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fevent?action=TEMPLATE&tmeid=N2Q2bjhoNXAzMGc0cWpnZTQ4OGtpdXFhanFfMjAyNTA2MDlUMTUwMDAwWiAxZjQ2OTZiOWVlM2JiMWE1ZWIzMTAwODBkNDZiZmMwMDZjNTUxYWFiZmU1YTM3ZGM2YTc0NTFhYmNhMmE1ODk0QGc&tmsrc=1f4696b9ee3bb1a5eb310080d46bfc006c551aabfe5a37dc6a7451abca2a5894%40group.calendar.google.com&scp=ALL)  | [Meeting notes & agenda](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F13K7NGdPebOstlrsif1YLjGz1x-aJafMXeIgqbO7WghI\u002Fedit?usp=sharing)\n\n### Mailing List\n\nJoin the [kai-scheduler mailing list](https:\u002F\u002Fgroups.google.com\u002Fg\u002Fkai-scheduler) to receive updates on biweekly meetings.\n\n### Technical Issues & Feature Requests  \nPlease open a [GitHub issue](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fissues\u002Fnew\u002Fchoose) for bugs, feature suggestions, or technical help. This helps us keep track of requests and respond effectively.\n\n---\n\n\u003Cdiv align=\"center\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor-whitetext\u002Fcncf-color-whitetext.svg\">\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor\u002Fcncf-color.svg\">\n      \u003Cimg width=\"300\" alt=\"Cloud Native Computing Foundation logo\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor-whitetext\u002Fcncf-color-whitetext.svg\">\n    \u003C\u002Fpicture>\n    \u003Cp>KAI Scheduler is \u003Ca href=\"https:\u002F\u002Fcncf.io\">Cloud Native Computing Foundation\u003C\u002Fa> sandbox project.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\nCopyright Contributors to KAI Scheduler, established as KAI Scheduler a Series of LF Projects, LLC.\nFor website terms of use, trademark policy and other project policies please see [lfprojects.org\u002Fpolicies](https:\u002F\u002Flfprojects.org\u002Fpolicies\u002F).\n","[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE) [![覆盖率](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fraw\u002Fcoverage-badge\u002Fbadges\u002Fcoverage.svg)](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002F.github\u002Fworkflows\u002Fupdate-coverage-badge.yaml)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Fkai-scheduler\u002FKAI-scheduler)\n[![OpenSSF 最佳实践](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkai-scheduler_KAI-Scheduler_readme_e7ac80e96562.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F12064)\n\n# KAI 调度器\n\nKAI 调度器是一款健壮、高效且可扩展的 [Kubernetes 调度器](https:\u002F\u002Fkubernetes.io\u002Fdocs\u002Fconcepts\u002Fscheduling-eviction\u002Fkube-scheduler\u002F)，专为 AI 和机器学习工作负载优化 GPU 资源分配而设计。\n\n该调度器旨在管理大规模 GPU 集群，包括数千个节点和高吞吐量的工作负载，因此非常适合复杂且要求苛刻的环境。KAI 调度器使 Kubernetes 集群管理员能够动态地将 GPU 资源分配给各类工作负载。\n\nKAI 调度器支持完整的 AI 生命周期，从只需少量资源的小型交互式作业，到大型训练与推理任务，均可在同一集群中运行。它在确保资源最优分配的同时，还能维护不同用户之间的资源公平性。此外，KAI 调度器可以与集群上已安装的其他调度器并行运行。\n\n## 最新消息 🔥\n\n- [2025年11月] **KubeCon NA 2025 演讲：** 观看题为“闪电演讲：关注拓扑结构——针对 Kubernetes 上 AI 工作负载的更智能调度”的演讲录像[链接](https:\u002F\u002Fyoutu.be\u002Fo5i7pTWZjfo?si=su5iTOAS4r4O1TPa)，了解 KAI 的拓扑感知调度（TAS）如何为现代分离式推理架构优化资源放置。\n- [2025年11月] **与 [Grove](https:\u002F\u002Fgithub.com\u002Fai-dynamo\u002Fgrove) 和 Dynamo 集成：** KAI 的拓扑感知与分层 Gang 调度功能现已集成至 Grove，用于大规模编排复杂的多组件工作负载，如分离式推理和代理式流水线。更多详情请参阅[博客文章](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fstreamline-complex-ai-inference-on-kubernetes-with-nvidia-grove\u002F)。\n- [2025年10月] **[v0.10.0 版本发布：](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Freleases\u002Ftag\u002Fv0.10.0)** 重磅功能上线，包括 [拓扑感知调度（TAS）](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftopology)、[分层 PodGroup](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup) 和 [基于时间的公平份额](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftime-based-fairshare)。\n- [2025年10月] **KubeRay 集成：** KAI 调度器现已原生集成至 [Kubernetes 上的 Ray 工作负载](https:\u002F\u002Fdocs.ray.io\u002Fen\u002Fmaster\u002Fcluster\u002Fkubernetes\u002Fk8s-ecosystem\u002Fkai-scheduler.html)。\n- [2025年8月] **基于时间的公平份额：** 关于[基于时间的公平份额](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Ftime-based-fairshare\u002Ftime-based-fairshare.md)的提案已在 batch-wg 讨论中提出。[观看录像](https:\u002F\u002Fzoom.us\u002Frec\u002Fplay\u002FuW5ex5dmQP8_7UqOv5UjOGq8IqZeIa8AhKILqvDUQ6CnBAIdJjPY-BLfUWnoYblvDP-ZIvAp48p7XJNv.Cx5t7x1DwGqJgIYB?eagerLoadZvaPages=&accessLevel=meeting&canPlayFromShare=true&from=share_recording_detail&startTime=1755010542000&componentName=rec-play&originRequestUrl=https%3A%2F%2Fzoom.us%2Frec%2Fshare%2Frd_j_7ZDpC8lXxGNdQwguK2ZunoM3R93HR1Eo4A9rxD7b5lWSbmojDKc8OZ00ZMK.QxgEeMOxMcuiDkIY%3FstartTime%3D1755010542000)。\n- [2025年4月] **项目介绍：** 在 batch-wg 会议上展示的[KAI 调度器介绍录像](https:\u002F\u002Fzoom.us\u002Frec\u002Fplay\u002FE1weaHroJpuTdXx6s9pjMu6oS78BiA53wsnvV9MWe_rIdwmDLFOG8J4XEPNW8-hIp4-HSFNdsbbP7mcv.YstbxFdS7z7tOfKw?eagerLoadZvaPages=&accessLevel=meeting&canPlayFromShare=true&from=share_recording_detail&startTime=1744124229000&componentName=rec-play&originRequestUrl=https%3A%2F%2Fzoom.us%2Frec%2Fshare%2FwP2WH6bqd7Dj8dupZD3YQTMWgG4AP5361_0h5vicI69LNb25JdQB8wn6fkvtLw2f.rLrRcQTSO1OCyRNu%3FstartTime%3D1744124229000)。\n\n## 核心特性\n\n- [批调度](docs\u002Fbatch\u002FREADME.md)：确保一组中的所有 Pod 要么同时被调度，要么完全不被调度。\n- 箱装与分散调度：通过最小化碎片化（箱装）或提高弹性和负载均衡（分散调度），优化节点资源的使用。\n- [工作负载优先级](docs\u002Fpriority\u002FREADME.md)：在队列中有效管理工作负载的优先级。\n- [工作负载优先级与抢占性的分离](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fpriority-preemptibility-separation)：支持将工作负载优先级和抢占性作为两个独立的策略进行分离。\n- [层次化队列](docs\u002Fqueues\u002FREADME.md)：通过两级队列层次结构来管理工作负载，实现灵活的组织控制。\n- [资源分配](docs\u002Ffairness\u002FREADME.md#resource-division-algorithm)：为每个队列自定义配额、超额权重、限制和优先级。\n- [公平性策略](docs\u002Ffairness\u002FREADME.md#reclaim-strategies)：利用主导资源公平性（DRF）和跨队列的资源回收机制，确保资源的公平分配。\n- [基于时间的公平份额](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftime-based-fairshare)：考虑历史使用情况、时间衰减等参数，对资源的使用进行精细化调整，实现随时间推移的公平使用。\n- [最小保障运行时](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fmin-runtime)：确保调度器在一定时间内不会抢占或回收正在运行的负载，即使该负载是可抢占的。\n- 工作负载整合：智能地重新分配正在运行的负载，以减少碎片化并提高集群利用率。\n- [弹性工作负载](docs\u002Felastic\u002FREADME.md)：在定义的最小和最大 Pod 数范围内动态扩展工作负载。\n- 动态资源分配（DRA）：通过 Kubernetes ResourceClaims 支持特定厂商的硬件资源（例如 NVIDIA 或 AMD 的 GPU）。\n- [拓扑感知调度（TAS）](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Ftopology)：支持优化的放置策略，包括[拓扑感知调度](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Ftopology-awareness)以及针对[层次化 Pod 组](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup)的层次化拓扑感知调度。\n- [层次化 Pod 组](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Ftree\u002Fmain\u002Fdocs\u002Fdeveloper\u002Fdesigns\u002Fhierarchical-podgroup)：支持组调度，并对多层级工作负载（如分布式和解聚式工作负载，例如 Dynamo\u002FGrove）进行优化的拓扑感知调度。\n- DRA 支持——支持 NVIDIA ComputeResources（GB200\u002FGB300）的 DRA。\n- 工作负载签名：KAI 调度器通过工作负载签名技术，为大规模多 Pod 提交提供性能优化。\n- 调度器可解释性：基于 Kubernetes 事件，调度过程中的每一个关键步骤都会被记录。\n\n- [GPU 共享](docs\u002Fgpu-sharing\u002FREADME.md)：允许多个工作负载高效共享单个或多个 GPU，从而最大化资源利用率。\n- 云与本地部署支持：完全兼容动态云基础设施（包括 Karpenter 等自动伸缩器）以及静态的本地部署环境。\n\n> [!注意]\n> KAI 调度器基于 [kube-batch](https:\u002F\u002Fgithub.com\u002Fkubernetes-sigs\u002Fkube-batch) 构建。\n\n## 前置条件\n\n在安装 KAI 调度器之前，请确保您已具备以下条件：\n\n- 运行中的 Kubernetes 集群\n- 已安装 [Helm](https:\u002F\u002Fhelm.sh\u002Fdocs\u002Fintro\u002Finstall) CLI\n- 已安装 [NVIDIA GPU-Operator](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fgpu-operator)，以便能够调度请求 GPU 资源的工作负载\n\n## 安装\n\nKAI 调度器将被安装在 `kai-scheduler` 命名空间中。\n\n> ⚠️ 在提交工作负载时，请务必使用专用命名空间。请勿将 `kai-scheduler` 命名空间用于工作负载提交。\n\n### 安装方法\n\nKAI 调度器可以通过以下方式安装：\n\n- **从生产版本安装（推荐）**\n- **从源代码构建安装**\n\n#### 从生产版本安装\n\n在 [releases](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Freleases) 页面找到最新发布的版本。将 `\u003CVERSION>` 替换为您希望安装的版本号后，执行以下命令：\n\n```sh\nhelm upgrade -i kai-scheduler oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler -n kai-scheduler --create-namespace --version \u003CVERSION>\n```\n\n#### 从源代码构建安装\n\n请按照 [这里](docs\u002Fdeveloper\u002Fbuilding-from-source.md) 的说明进行操作。\n\n## 特定发行版的说明\n\n### Openshift\n\n当安装的 `gpu-operator` 版本低于 v25.10.0 时，应在安装命令中添加以下标志：\n\n```\n--set admission.gpuPodRuntimeClassName=null\n```\n如果启用了 CDI，还需添加 `--set binder.cdiEnabled=true`。\n\n## 支持与重大变更\n\n有关我们的发布生命周期、LTS 版本及受支持版本的详细信息，请参阅 [支持政策](SUPPORT.md)。\n\n更多关于重大变更的信息，请参阅 [重大变更文档](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002Fdocs\u002Fmigrationguides\u002FREADME.md)。\n\n## 快速入门\n\n要开始使用 KAI 调度器调度工作负载，请继续阅读 [快速入门示例](docs\u002Fquickstart\u002FREADME.md)。\n\n## 路线图\n\n您可以在这里找到更新后的 KAI 调度器路线图（历史、近期及未来规划）：[路线图](roadmap.md)。\n\n## 社区、讨论与支持\n\n我们非常期待您的反馈！以下是几种最佳的联系方式：\n\n### 贡献\n\n我们鼓励并欢迎任何形式的贡献！在提交 PR 之前，请先查看 KAI 调度器的 [贡献指南](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)。\n\n### Slack\n\n请先加入 [CNCF Slack](https:\u002F\u002Fcommunityinviter.com\u002Fapps\u002Fcloud-native\u002Fcncf)，然后访问 [#kai-scheduler](https:\u002F\u002Fcloud-native.slack.com\u002Farchives\u002Fkai-scheduler) 频道。\n\n### 双周社区会议\n\n**时间：** 每隔一周的周一 17:00 中欧夏令时  \n[转换为您的时区](https:\u002F\u002Fdateful.com\u002Ftime-zone-converter?t=17&tz2=Germany) | [添加到日历](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fevent?action=TEMPLATE&tmeid=N2Q2bjhoNXAzMGc0cWpnZTQ4OGtpdXFhanFfMjAyNTA2MDlUMTUwMDAwWiAxZjQ2OTZiOWVlM2JiMWE1ZWIzMTAwODBkNDZiZmMwMDZjNTUxYWFiZmU1YTM3ZGM2YTc0NTFhYmNhMmE1ODk0QGc&tmsrc=1f4696b9ee3bb1a5eb310080d46bfc006c551aabfe5a37dc6a7451abca2a5894%40group.calendar.google.com&scp=ALL)  | [会议记录与议程](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F13K7NGdPebOstlrsif1YLjGz1x-aJafMXeIgqbO7WghI\u002Fedit?usp=sharing)\n\n### 邮件列表\n\n加入 [kai-scheduler 邮件列表](https:\u002F\u002Fgroups.google.com\u002Fg\u002Fkai-scheduler)，以获取双周会议的最新动态。\n\n### 技术问题与功能请求  \n如遇 bug、功能建议或需要技术支持，请在 [GitHub](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Fissues\u002Fnew\u002Fchoose) 上提交 issue。这有助于我们跟踪请求并高效响应。\n\n---\n\n\u003Cdiv align=\"center\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor-whitetext\u002Fcncf-color-whitetext.svg\">\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor\u002Fcncf-color.svg\">\n      \u003Cimg width=\"300\" alt=\"云原生计算基金会 logo\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fcncf\u002Fartwork\u002Frefs\u002Fheads\u002Fmain\u002Fother\u002Fcncf\u002Fhorizontal\u002Fcolor-whitetext\u002Fcncf-color-whitetext.svg\">\n    \u003C\u002Fpicture>\n    \u003Cp>KAI 调度器是 \u003Ca href=\"https:\u002F\u002Fcncf.io\">云原生计算基金会\u003C\u002Fa> 的沙箱项目。\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n版权所有者为 KAI 调度器的贡献者，KAI 调度器由一系列 LF 项目有限责任公司设立。\n有关网站使用条款、商标政策及其他项目政策，请参阅 [lfprojects.org\u002Fpolicies](https:\u002F\u002Flfprojects.org\u002Fpolicies\u002F)。","# KAI-Scheduler 快速上手指南\n\nKAI-Scheduler 是一款专为 AI 和机器学习工作负载设计的健壮、高效且可扩展的 Kubernetes 调度器。它优化了 GPU 资源分配，支持大规模集群管理、拓扑感知调度（TAS）、层级队列管理及公平共享策略，适用于从交互式小任务到大规模训练推理的全生命周期场景。\n\n## 环境准备\n\n在部署 KAI-Scheduler 之前，请确保您的环境满足以下要求：\n\n*   **Kubernetes 集群**：拥有一个运行正常的 Kubernetes 集群。\n*   **Helm CLI**：已安装 Helm 包管理工具。\n*   **GPU 支持（可选但推荐）**：若需调度 GPU 任务，必须预先安装 [NVIDIA GPU-Operator](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fgpu-operator)。\n*   **命名空间规划**：请准备一个专用的命名空间用于提交业务负载，**切勿**使用 `kai-scheduler` 系统命名空间提交任务。\n\n> **注意**：目前官方文档未提供特定的中国镜像加速源，以下命令使用官方 OCI 仓库。如遇网络问题，请自行配置容器镜像加速器。\n\n## 安装步骤\n\nKAI-Scheduler 将默认安装在 `kai-scheduler` 命名空间中。推荐使用生产环境的发布版本进行安装。\n\n### 1. 获取最新版本号\n访问 [Releases 页面](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-scheduler\u002Freleases) 查找最新的稳定版本号（例如 `v0.10.0`）。\n\n### 2. 执行安装命令\n将下方命令中的 `\u003CVERSION>` 替换为实际版本号，然后执行：\n\n```sh\nhelm upgrade -i kai-scheduler oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler -n kai-scheduler --create-namespace --version \u003CVERSION>\n```\n\n### 3. 特殊环境配置（OpenShift）\n如果您在 OpenShift 环境下运行，且安装的 `gpu-operator` 版本低于 `v25.10.0`，需在上述命令中添加以下参数：\n\n```sh\n--set admission.gpuPodRuntimeClassName=null\n```\n\n如果同时启用了 CDI (Containerized Data Importer)，还需额外添加：\n\n```sh\n--set binder.cdiEnabled=true\n```\n\n## 基本使用\n\n安装完成后，KAI-Scheduler 即可接管集群调度。以下是提交一个简单批处理任务的最简示例。\n\n### 1. 创建专用命名空间\n为避免干扰调度器自身运行，请先创建一个业务命名空间（例如 `ai-workloads`）：\n\n```sh\nkubectl create namespace ai-workloads\n```\n\n### 2. 提交示例任务\nKAI-Scheduler 通过识别特定的注解或资源类型来管理任务。以下是一个简单的 Pod 组（PodGroup）示例，利用其**批处理调度（Batch Scheduling）**特性，确保组内所有 Pod 要么同时调度成功，要么全部等待（Gang Scheduling）。\n\n创建文件 `example-job.yaml`：\n\n```yaml\napiVersion: scheduling.kai-scheduler.io\u002Fv1alpha1\nkind: PodGroup\nmetadata:\n  name: training-job-1\n  namespace: ai-workloads\nspec:\n  minMember: 2  # 最小成员数，少于该数量则不调度任何 Pod\n  queue: default # 所属队列\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: worker-0\n  namespace: ai-workloads\n  labels:\n    scheduling.kai-scheduler.io\u002Fpod-group: training-job-1\nspec:\n  containers:\n  - name: trainer\n    image: pytorch\u002Fpytorch:latest\n    command: [\"echo\", \"Starting training...\"]\n    resources:\n      limits:\n        nvidia.com\u002Fgpu: 1 # 请求 1 个 GPU\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: worker-1\n  namespace: ai-workloads\n  labels:\n    scheduling.kai-scheduler.io\u002Fpod-group: training-job-1\nspec:\n  containers:\n  - name: trainer\n    image: pytorch\u002Fpytorch:latest\n    command: [\"echo\", \"Starting training...\"]\n    resources:\n      limits:\n        nvidia.com\u002Fgpu: 1 # 请求 1 个 GPU\n```\n\n应用配置：\n\n```sh\nkubectl apply -f example-job.yaml\n```\n\n### 3. 验证调度状态\n查看 Pod 状态，确认它们是否被 KAI-Scheduler 正确调度：\n\n```sh\nkubectl get pods -n ai-workloads\nkubectl get events -n ai-workloads --sort-by='.lastTimestamp'\n```\n\n您可以通过查看事件日志了解调度器的决策过程（如排队、抢占或绑定节点），这是 KAI-Scheduler 可解释性的重要体现。\n\n> 更多高级功能（如拓扑感知调度、层级队列、弹性伸缩等）的详细配置，请参考官方文档中的 [Quick Start example](docs\u002Fquickstart\u002FREADME.md)。","某大型自动驾驶公司需要在拥有数千张 GPU 的 Kubernetes 集群上，同时运行高优先级的模型训练任务和低延迟的实时推理服务。\n\n### 没有 KAI-Scheduler 时\n- **资源碎片化严重**：默认调度器无法感知 GPU 拓扑结构，导致多卡训练任务被分散在不同节点，通信开销巨大，训练速度下降 40%。\n- **任务饿死现象**：长期运行的大规模训练作业独占资源，导致临时的交互式调试任务或小型推理请求长时间排队等待。\n- **启动失败率高**：缺乏成组调度（Gang Scheduling）机制，分布式任务因部分 Pod 资源不足而无法整体启动，反复重试浪费算力。\n- **公平性难以保障**：不同团队间资源争抢激烈，无法按时间片或配额动态平衡，引发内部资源分配纠纷。\n\n### 使用 KAI-Scheduler 后\n- **拓扑感知加速**：利用拓扑感知调度（TAS）功能，自动将关联 Pod 调度至同一 NVLink 域或相近节点，显著降低通信延迟，提升训练效率。\n- **分层公平共享**：通过基于时间的公平共享（Time-based Fairshare）策略，确保高低优先级任务按比例获得资源，小任务也能即时响应。\n- **原子化任务启动**：借助分层 PodGroup 和成组调度能力，确保分布式任务要么全部启动、要么全部等待，彻底消除“半启动”状态。\n- **混合负载共存**：在同一集群内高效容纳从交互式开发到大规模训练的全生命周期负载，最大化集群整体利用率。\n\nKAI-Scheduler 通过智能拓扑感知与公平调度机制，将原本混乱的 GPU 集群转变为高效、公平且能支撑大规模 AI 全生命周期任务的统一算力底座。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkai-scheduler_KAI-Scheduler_435a5b92.png","kai-scheduler","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkai-scheduler_329f54d1.png",null,"https:\u002F\u002Fgithub.com\u002Fkai-scheduler",[77,81,85,89,93],{"name":78,"color":79,"percentage":80},"Go","#00ADD8",99.2,{"name":82,"color":83,"percentage":84},"Shell","#89e051",0.5,{"name":86,"color":87,"percentage":88},"Makefile","#427819",0.3,{"name":90,"color":91,"percentage":92},"Dockerfile","#384d54",0,{"name":94,"color":95,"percentage":92},"Python","#3572A5",1237,181,"2026-04-17T09:18:24","Apache-2.0",4,"Linux","需要 NVIDIA GPU（通过 NVIDIA GPU-Operator 管理），支持动态资源分配 (DRA)，具体型号和显存未说明，需依赖底层硬件配置","未说明",{"notes":105,"python":103,"dependencies":106},"该工具是 Kubernetes 调度器而非本地运行的 AI 模型库，因此无本地 Python 或显存硬性要求。必须预先拥有运行中的 Kubernetes 集群并安装 Helm。若需调度 GPU 任务，集群内必须安装 NVIDIA GPU-Operator。在 OpenShift 环境下且 gpu-operator 版本低于 v25.10.0 时，安装需添加特定参数。建议使用独立命名空间提交任务，不要使用 kai-scheduler 系统命名空间。",[107,108,109],"Kubernetes Cluster","Helm CLI","NVIDIA GPU-Operator",[14],"2026-03-27T02:49:30.150509","2026-04-18T00:45:44.072035",[114,119,124,129,134,139],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},38276,"KAI Scheduler 与 Kueue、Volcano 和 Yunikorn 等其他 Kubernetes 调度器相比有何不同？","Kueue 不替换默认的 K8s 调度器，而是在常规调度前插入一个类似“准入”的非侵入阶段，适合不愿使用非标准调度器的用户。但默认调度器缺少成组调度（gang scheduling）等功能，且 Kueue 需要为每种工作负载单独适配以支持准入。相比之下，Volcano 等调度器可以通过创建调度抽象的 PodGroup 来直接使用成组调度、队列和公平调度等高级功能。KAI Scheduler 提供了一个 Pod-grouper 控制器，可以监听 `.spec.schedulerName = kai-scheduler` 的 Pod，并基于顶层所有者的 GroupVersionKind 自动进行分组，通过插件机制集成不支持原生 PodGroup 的工作负载类型。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F29",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},38277,"为什么设置了 GPU 显存共享（如 4000MiB），但在容器内运行 nvidia-smi 时仍显示整卡显存（如 80GB）？","这是已知行为。KAI Scheduler 的 GPU 共享功能（包括显存隔离）目前主要依赖 Run:ai 平台的额外服务和组件来实现完整的显存隔离和监控。开源版本的 KAI Scheduler 在基础调度层面支持分数化 GPU 和显存配额调度，但容器内部看到的 `nvidia-smi` 信息可能仍显示物理卡的总显存，除非配合特定的设备插件或运行时环境（如 Run:ai 平台提供的组件）进行深层隔离。社区曾有相关计划（如 PR #60）试图改进此问题，但目前完整功能仍需依赖平台版组件。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F49",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},38278,"KAI GPU 共享功能是否与集群自动伸缩（如 Karpenter）兼容？","目前存在兼容性问题。预期行为是预留 Pod（reservation pod）应尽早创建并请求 GPU 资源以触发 Karpenter 扩容，但实际上预留 Pod 往往在工作负载 Pod 被调度后才部署，导致 Karpenter 无法检测到资源需求而不进行扩容。此外，当工作负载缩容时，调度器可能导致 GPU 在节点间分布不均（未正确打包），例如将 4 个副本分散在 4 个 GPU 上而不是合并到 1 个 GPU，这会阻止 Karpenter 进行节点整合（consolidation）。解决方法是手动移除 `do-not-disrupt` 注解或等待未来版本支持周期性整合（参考 Issue #1311）。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F111",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},38279,"Pod 因节点内存不足而失败，即使该节点有可用的 GPU 资源，为什么会发生这种情况？","这通常是因为调度器在计算节点资源时，未能正确处理正在终止的 Pod 所释放的资源。在某些版本（如 v0.7.5 之前）中，如果节点上有即将终止的 Pod 释放出恰好匹配请求的资源，调度器可能错误地认为资源不可用，导致调度失败或选择错误的节点。该问题在 v0.7.5 及更高版本（如 v0.7.7）中已得到修复。如果遇到此问题，请确保升级 KAI Scheduler 到最新版本，并检查调度器 Pod 的镜像版本是否正确。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F306",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},38280,"Pod 一直处于 Pending 状态，提示没有足够的 GPU 资源，但节点明明有 GPU，如何解决？","这通常是由于 GPU 驱动或 Device Plugin 状态异常导致的。常见的解决步骤包括：1. 重新安装 NVIDIA GPU Operator；2. 检查 GPU 节点状态和 Device Plugin 日志；3. 确认是否启用了 GPU 共享功能（按显存或分数），并确保队列（Queue）配置正确。有用户反馈在重新安装 GPU Operator 并重复部署步骤后问题解决。同时支持基于显存（gpu-memory）和分数（fraction）的共享模式。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F39",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},38281,"KAI Scheduler 是否支持 vGPU（虚拟 GPU）功能？","KAI Scheduler 本身主要关注 GPU 资源的分数化调度和显存共享调度，并不直接等同于 NVIDIA vGPU 技术（即硬件层面的虚拟化）。虽然 Volcano 等项目文档中提到了类似的 GPU 虚拟化功能，但 KAI Scheduler 的实现更多是在调度层面对物理 GPU 进行逻辑切分。完整的 vGPU 支持或类似的高级虚拟化功能通常需要结合 Run:ai 平台的其他服务和组件才能实现，单纯开源版的 KAI Scheduler 可能不具备完全的硬件级 vGPU 能力。","https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F204",[145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240],{"id":146,"version":147,"summary_zh":148,"released_at":149},306422,"v0.14.0","## 变更内容\n\n### 新增\n- 为队列控制器添加了队列验证 Webhook，支持父-子关系的可选配额验证 [AdheipSingh](https:\u002F\u002Fgithub.com\u002FAdheipSingh)\n- 为 KAI 调度器的不同组件增加了 VPA 配置支持 - [jrosenboimnvidia](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1119)\n- 在集群中安装了 VPA 的用户现在可以利用它实现正确的垂直自动扩缩\n- 为仓库上下文添加了 FOSSA 扫描功能。提交的 PR 也会进行扫描。扫描结果可在此处查看：[here](https:\u002F\u002Fapp.fossa.com\u002Fprojects\u002Fcustom%2B162%2Fgit%40github.com%3Akai-scheduler%2FKAI-Scheduler.git)。[#1178](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1178) - [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif)\n- 添加了对 Ray 子组拓扑感知调度的支持，可通过指定 `kai.scheduler\u002Ftopology`、`kai.scheduler\u002Ftopology-required-placement` 和 `kai.scheduler\u002Ftopology-preferred-placement` 注解来实现。\n- 允许子组的 `minAvailable` 值为 0。这意味着该子组中的所有 Pod 都是“弹性额外 Pod”。[#1216](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1216) [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif)\n\n### 变更\n- 当 `operator.replicaCount` > 1 时自动启用领导者选举，以防止并发协调 [#1218](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F1218)\n- 将 Go 版本更新至 v1.26.1，并相应升级基础 Docker 镜像、linter 和控制器生成工具。[#1222](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1222) - [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif)\n\n### 修复\n- 更新了资源枚举逻辑，排除计数为 0 的资源。[#1120](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fissues\u002F1120)\n- 修复了在 Kubernetes \u003C 1.34 且 DRA 已禁用的情况下调度器的问题。\n- 修复了 Pod 组控制器在 Kubernetes 1.32-1.33 集群上无法跟踪 DRA GPU 资源的问题。[#1214](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F1214)\n- 通过编码完整的 `int32` 值，修复了 `Priority` 和容器 `HostPort` 的调度约束签名哈希问题，避免了字节截断导致的冲突和不稳定的签名测试。\n- 修复了带有 DRA 的调度模拟中的回滚问题 [#1168](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1168) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\n- 修复了 DRA 调度模拟中潜在的状态损坏问题 [#1219](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1219) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\n- 修复了仅更新状态就触发重新协调的操作员协调循环问题。#1229 [cypres](https:\u002F\u002Fgithub.com\u002Fcypres)\n- 修复了在 DRA 已禁用的 Kubernetes 集群上调度器无法启动的问题，原因是 ResourceSliceTracker 未同步。#1241 [cypres](https:\u002F\u002Fgithub.com\u002Fcypres)\n- 修复了 AKS 上的 Webhook 协调循环问题，在协调过程中保留由云提供商注入的 namespaceSelector 规则。#1292 [cypres](https:\u002F\u002Fgithub.com\u002Fcypres)\n\n## 新贡献者\n","2026-03-30T14:36:46",{"id":151,"version":152,"summary_zh":153,"released_at":154},306423,"v0.6.18","## 变更内容\n### 修复\n- 由 @SiorMeir 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1313 中修复的 podGroup 状态更新冲突循环问题\n- 由 @gshaibi 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F997 中将 bind 插件服务器绑定到 localhost 的问题\n- 由 @KaiPilotBot 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI- 中修复的不包含计数为 0 的资源的问题\n\n## 变更\n- 构建：将 Go 升级至 1.25.6，golangci-lint 升级至 v2.11.3，controller-gen 升级至 v0.20.1，mockgen 升级至 v0.6.0 - v0.6，由 @davidLif 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1281 中完成\n- CI：为外部贡献者的 PR 添加 approval gatekeeper 工作流，由 @KaiPilotBot 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1004 中完成\n\n### 新增\n- 添加 dco GitHub Action，由 @KaiPilotBot 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1268 中完成\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.6.17...v0.6.18","2026-03-24T14:56:20",{"id":156,"version":157,"summary_zh":158,"released_at":159},306424,"v0.13.4","## 变更内容\n### 修复\n- 修复了仅更新状态就会触发重新协调的操作符协调循环问题。#1229 [cypres](https:\u002F\u002Fgithub.com\u002Fcypres)\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.13.3...v0.13.4","2026-03-19T20:32:50",{"id":161,"version":162,"summary_zh":163,"released_at":164},306425,"v0.13.3","## 变更内容\n- 修复了在未启用调度器资源分配（DRA）的集群上调度器无法启动的问题 [#1240](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1240) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.13.2...v0.13.3","2026-03-18T14:22:43",{"id":166,"version":167,"summary_zh":168,"released_at":169},306426,"v0.13.2","### 修复\n- 修复了使用 DRA 进行调度模拟时的回滚问题 [#1168](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1168) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\n- 允许子组的 \"minAvailable\" 值为 0。这意味着该子组中的所有 Pod 都是“弹性额外 Pod”。[#1216](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1216) [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif)\n- 修复了 Pod 组控制器在 Kubernetes 1.32–1.33 集群上无法跟踪 DRA GPU 资源的问题。[#1214](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fissues\u002F1214)\n- 修复了 DRA 调度模拟中可能出现的状态损坏问题 [#1225](https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1225) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.13.1...v0.13.2","2026-03-17T17:07:05",{"id":171,"version":172,"summary_zh":173,"released_at":174},306427,"v0.12.18","## 变更内容\n* ci: 将容器注册表迁移至 ghcr.io\u002Fkai-scheduler\u002Fkai-scheduler，由 @SiorMeir 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1175 中完成\n* fix(deps): 将 OpenTelemetry SDK 升级至 v1.40.0 (GHSA-9h8m-3fm2-qjrq)，由 @enoodle 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1181 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.17...v0.12.18","2026-03-11T10:59:12",{"id":176,"version":177,"summary_zh":178,"released_at":179},306428,"v0.9.15","## 变更内容\n* 修复（调度器）：解决冲突时的 podGroup 状态更新循环问题 - v0.9，由 @enoodle 在 https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fpull\u002F1166 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.9.14...v0.9.15","2026-03-10T09:20:58",{"id":181,"version":182,"summary_zh":183,"released_at":184},306429,"v0.13.1","## 变更内容\n### 修复\n\n- 更新了资源枚举逻辑，以排除计数为 0 的资源。[#1120](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fissues\u002F1120)\n- 修复了在 Kubernetes 版本低于 1.34 且 DRA 已禁用的情况下调度器的问题。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fkai-scheduler\u002FKAI-Scheduler\u002Fcompare\u002Fv0.13.0...v0.13.1","2026-03-09T15:34:05",{"id":186,"version":187,"summary_zh":188,"released_at":189},306430,"v0.12.17","## 变更内容\n* 修复：当 gpuPodRuntimeClassName 为 e… 时，跳过 runtimeClassName 注入 —— 由 @enoodle 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1130 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.16...v0.12.17","2026-03-04T16:52:20",{"id":191,"version":192,"summary_zh":193,"released_at":194},306431,"v0.9.14","## 变更内容\n* 重构：将 Pod 引用表示为字符串 v0.9，由 @itsomri 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F985 中完成\n* 修复（调度器）：将插件服务器绑定到 localhost，由 @gshaibi 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F996 中完成\n* CI：为外部贡献者的 PR 添加批准的 gatekeeper 工作流，由 @KaiPilotBot 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1003 中完成\n* 修复（队列控制器）：使用 Spec.Queue 字段索引器进行资源聚合 (#1049)，由 @gshaibi 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1053 中完成\n* 杂项：使用 union 策略自动解决 CHANGELOG.md 的合并冲突，由 @KaiPilotBot 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1054 中完成\n* 修复：当 gpuPodRuntimeClassName 为 e… 时，跳过 runtimeClassName 注入，由 @enoodle 在 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1131 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.9.13...v0.9.14","2026-03-04T16:51:31",{"id":196,"version":197,"summary_zh":198,"released_at":199},306432,"v0.12.16","## What's Changed\r\n### Fixed\r\n- Fixed operator status conditions to be kstatus-compatible for Helm 4 `--wait` support: added `Ready` condition and fixed `Reconciling` condition to properly transition to false after reconciliation completes [#1060](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1060)\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.15...v0.12.16","2026-03-02T12:50:14",{"id":201,"version":202,"summary_zh":203,"released_at":204},306433,"v0.13.0","## What's Changed\r\n### Added\r\n- Added `global.nodeSelector` propagation from Helm values to Config CR, ensuring operator-created sub-component deployments (admission, binder, scheduler, pod-grouper, etc.) receive the configured nodeSelector [#1102](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1102) [yuanchen8911](https:\u002F\u002Fgithub.com\u002Fyuanchen8911)\r\n- Added `plugins` and `actions` fields to SchedulingShard spec, allowing per-shard customization of scheduler plugin\u002Faction enablement, priority, and arguments [gshaibi](https:\u002F\u002Fgithub.com\u002Fgshaibi)\r\n- Added support for Kubeflow Trainer v2 TrainJob workloads via skipTopOwner grouper pattern\r\n- Added `binder.cdiEnabled` Helm value to allow explicit override of CDI auto-detection for environments without ClusterPolicy\r\n- Added metric for tracking evicted pods in pod groups, including nodepool, eviction action, and gang size\r\n- Block scheduling of pods with shared (non-template) DRA GPU claims that lack a queue label or have a mismatched queue label [gshaibi](https:\u002F\u002Fgithub.com\u002Fgshaibi)\r\n- Added the option to disable prometheus service monitor creation [#810](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F810) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Fixed prometheus instance deprecation - ensure single instance [#779](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F779) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Added clear error messages for jobs referencing missing or orphan queues, reporting via events and conditions [#820](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F820) [gshaibi](https:\u002F\u002Fgithub.com\u002Fgshaibi)\r\n- Added rule selector for resource accounting prometheus [#818](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F818) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Made accounting labels configurable [#818](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F818) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Added support for Grove hierarchical topology constraints in PodGroup subgroups\r\n- Added support for n-level queue hierarchies [#858](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F858) [gshaibi](https:\u002F\u002Fgithub.com\u002Fgshaibi)\r\n- Added labels and annotations propagation from topOwner in SkipTopOwner grouper [#861](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F861) [SiorMeir](https:\u002F\u002Fgithub.com\u002Fsiormeir)\r\n- Added scheduler name match conditions to admission webhooks to improve cluster stability\r\n- Add Gpu Dra claims and resource slices accounting for the purpose of resource management and quota guarantees. *** This change doesn't support shared gpu claims or gpu claims with FirstAvailable *** [#900](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F900) [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif) \r\n- Added DRA resources recording to snapshot [#830](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F830)\r\n- Temporarily Prevent device-plugin GPU pods on DRA-only nodes - until translation between device-plugin notation and DRA is implemented\r\n- Implemented subgroups for pytorchjobs [#935](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F935) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Made KAI images distroless [#745](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F745) [dttung2905](https:\u002F\u002Fgithub.com\u002Fdttung2905)\r\n- Allow setting empty gpuPodRuntimeClassName during helm install [#972](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F972) [steved](https:\u002F\u002Fgithub.com\u002Fsteved)\r\n- Created scale tests scenarios for running scale tests for KAI [#967](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F967)\r\n- Implemented block-level segmentation for pytorchjobs [#938](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F938) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Added scale test environment setup script and updated service monitors for KAI scheduler [#1031](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1031)\r\n- Implemented subgroups for leaderworkerset [#1046](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1046) [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif) \r\n- Added discovery data to snapshot for more accurate debugging [#1047](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1047) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Implemented subgroup segmentation (with topology segment definitions) for leaderworkerset [#1058](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F10586) [davidLif](https:\u002F\u002Fgithub.com\u002FdavidLif)\r\n\r\n### Fixed\r\n- Fixed operator status conditions to be kstatus-compatible for Helm 4 `--wait` support: added `Ready` condition and fixed `Reconciling` condition to properly transition to false after reconciliation completes [#1060](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1060)\r\n- Fixed a bug where the node scale adjuster would not check if a pod was unschedulable before creating a scaling pod leading to unnecessary node scaling [#1094](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1094) [slaupster](https:\u002F\u002Fgithub.com\u002Fslaupster)\r\n- Fixed admission webhook to skip runtimeClassName injection when gpuPodRuntimeClassName is empty [#1035](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1035)\r\n- Fixed topology-migration helm hook failing on OpenShift d","2026-03-02T10:32:43",{"id":206,"version":207,"summary_zh":208,"released_at":209},306434,"v0.12.15","## What's Changed\r\n### Fixed\r\n- Fixed a bug where queue status did not reflect its podgroups resources correctly [#1049](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1049)\r\n- Fixed topology-migration helm hook failing on OpenShift due to missing `kai-topology-migration` service account in the `kai-system` SCC [#1050](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1050)\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.14...v0.12.15","2026-02-25T10:44:16",{"id":211,"version":212,"summary_zh":213,"released_at":214},306435,"v0.12.14","## What's Changed\r\n- Allow configuration of plugins\u002Factions from helm [#1026](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F1026) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.13...v0.12.14","2026-02-18T13:28:40",{"id":216,"version":217,"summary_zh":218,"released_at":219},306436,"v0.12.13","## What's Changed\r\n### Added\r\n- Added `plugins` and `actions` fields to SchedulingShard spec, allowing per-shard customization of scheduler plugin\u002Faction enablement, priority, and arguments [#966](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F966) [gshaibi](https:\u002F\u002Fgithub.com\u002Fgshaibi)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.12...v0.12.13","2026-02-17T13:29:24",{"id":221,"version":222,"summary_zh":223,"released_at":224},306437,"v0.12.12","## What's Changed\r\n\r\n### Fixed\r\n- Fixed a bug in ray gang scheduling where not all worker groups' minMember would be respected [#962](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F962) [itsomri](https:\u002F\u002Fgithub.com\u002Fitsomri)\r\n- Fixed plugin server (snapshot and job-order endpoints) listening on all interfaces by binding to localhost only.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.11...v0.12.12","2026-02-12T14:32:31",{"id":226,"version":227,"summary_zh":228,"released_at":229},306438,"v0.12.11","## What's Changed\r\n### Fixed\r\n- Added `binder.cdiEnabled` Helm value to allow explicit override of CDI auto-detection for environments without ClusterPolicy fixing compatibility issues in Openshift\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.10...v0.12.11","2026-02-04T09:38:08",{"id":231,"version":232,"summary_zh":233,"released_at":234},306439,"v0.9.13","## What's Changed\r\n* fix: snapshot tool topology & DRA update v0.9 by @enoodle in https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F920\r\n* fix(scheduler): Remove pod-name label from  bindingRequests - v0.9 by @github-actions[bot] in https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F928\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.9.12...v0.9.13","2026-01-26T15:49:42",{"id":236,"version":237,"summary_zh":238,"released_at":239},306440,"v0.12.10","## What's Changed\r\n* fix(scheduler): Remove pod-name label from  bindingRequests - v0.12 by @github-actions[bot] in https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F929\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.12.9...v0.12.10","2026-01-26T13:24:36",{"id":241,"version":242,"summary_zh":243,"released_at":244},306441,"v0.6.17","## What's Changed\r\n* Remove pod-name label from bindingRequests - v0.6 by @davidLif in https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fpull\u002F930\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FKAI-Scheduler\u002Fcompare\u002Fv0.6.16...v0.6.17","2026-01-26T12:57:50"]