隨著雲端運算與 AI 工作負載的快速成長,Kubernetes 需要更精準的裝置資源管理機制。Device Management 工作組(WG)透過 Dynamic Resource Allocation(DRA)技術,提供動態資源分配與高效裝置配置方案,解決 GPU 等加速器的排程與資源爭取問題。本文深入解析 DRA 的核心機制、技術特性與實際應用場景,並探討其在 Kubernetes 生態中的整合與未來發展方向。
1. 資源切片與聲明:DRA 引入資源切片(Resource Slice)與資源聲明(Resource Claim)兩種機制。資源切片定義節點上裝置的固定清單,包含廠商、產品ID、GPU記憶體等屬性;資源聲明則作為獨立物件,用於指定裝置需求,支援設備類別匹配與屬性靈活推論。此設計使排程器能精準匹配裝置資源。
2. 排程器變更:DRA 的關鍵變更將邏輯移至排程器,使系統可達 Beta 階段。排程器根據資源聲明匹配可用裝置,並交由 Cublet 處理配置。此流程提升資源分配效率,同時降低管理複雜度。
3. 新增功能與進展:DRA 引入設備汙點與容忍(Taints & Tolerations)管理可分割裝置,支援狀態標記(如維護中)。優先替代請求(Prioritized Alternatives)允許指定多種裝置需求,排程器會嘗試滿足其中之一。管理員訪問模式新增標準化標籤,方便取得節點所有裝置。
跨節點資源支援:DRA 新增 multi-node InfiniBand(VLink)機制,針對 NVIDIA GPU 的 GB200 NVL72 系統設計。每 rack 包含 18 個計算 trays,中間有 9 個 NV 交換器。新增 Compute Domain API 物件,用於抽象化資源管理,支援多節點環境下的資源分配與使用。
DRA 作為 Kubernetes Device Management 的核心技術,透過資源切片、聲明與動態排程機制,解決加速器資源配置與分配的複雜性。其版本更新與 API 調整持續推動穩定性與擴展性,並在 NVIDIA GPU 等實際場景中驗證效能。未來需關注監控工具整合與跨廠商支援,同時透過社群貢獻(如 Morton、Rita 等開發者的工作)持續優化。建議開發者關注 Kubernetes 133 版本更新,並參與社群協作以掌握最新技術動態。