在 AI 訓練和推理的場景裡,資源排程從來不是小事。尤其是當叢集裡混著不同型號的 GPU、不同的作業優先順序,以及不斷進出的任務佇列時,傳統 Kubernetes 預設排程器往往力不從心。KAI-Scheduler 正是為解決這個問題而生的開源專案。
專為 AI 工作負載設計的 K8s 排程器
KAI-Scheduler 以 Kubernetes 原生排程器 的形式執行,意味著它可以作為準入控制器或擴充套件排程器無縫接入現有叢集。它的核心邏輯圍繞 GPU 資源分配、優先順序佇列 和 資源搶佔 展開,專門應對 AI 訓練作業中常見的長耗時、高資源消耗、以及突發性需求。
- 動態優先順序佇列:允許使用者為不同團隊或任務設定優先順序,確保關鍵作業先得到資源。
- 資源搶佔與回填:當高優先順序作業等待時,自動搶佔低優先順序任務並回填空閒資源,提升叢集整體利用率。
- GPU 拓撲感知:考慮節點間 GPU 互聯拓撲(如 NVLink),優化多節點訓練時的通訊效率。
- 分組排程:支援將多個 Pod 作為一個計算組(Gang Scheduling)統一排程,避免死鎖。
為什麼社羣選擇它
KAI-Scheduler 最初由韓國科技公司 Kakao 開源,目前已在生產環境驗證,GitHub 獲得 1350 顆星。相比其他排程方案(比如 Volcano、Yunikorn),它的優勢在於 輕量且與 K8s 排程框架深度整合。不需要額外部署排程器例項,只需作為外掛啟用即可。對於已經執行大量 PyTorch 或 TensorFlow 作業的團隊,遷移成本很低。
一個典型的使用場景是:某 AI 實驗室有 100 張 GPU,同時跑 10 個訓練任務和 20 個推理服務。預設排程器可能導致推理 Pod 搶佔訓練任務的 GPU,或者訓練任務因等待碎片化 GPU 而遲遲無法啟動。KAI-Scheduler 通過佇列和搶佔,讓推理任務在空閒 GPU 上執行,當訓練任務需要時自動驅逐,保證訓練任務幾乎無延遲。
上手與侷限性
部署 KAI-Scheduler 需要基本的 Kubernetes 運維知識。官方提供了 Helm Chart,一行命令即可安裝。但配置優先順序策略和搶佔規則需要理解 CRD 和排程配置,因此適合 有 K8s 經驗的 DevOps 或平臺工程師。
另外,目前專案仍處於活躍開發階段,文件和示例以英文為主,中文資料較少。對於小型叢集(<50 GPU),預設排程器可能就夠用,引入 KAI-Scheduler 的收益不明顯。
如果團隊正在為 GPU 利用率低、訓練作業排隊混亂而頭疼,KAI-Scheduler 值得一試。它解決了真實痛點,而且不用花一分錢。










評論
暫無評論
成為第一個評論的人