🎯 課程目標____HTMLTAG_68__HTMLTAG_69___了解 K8s 1.34 中的動態資源分配 (DRA) GA 是什麼,為什麼它比舊的擴充資源更好,如何使用 ResourceClaim 和 DeviceClass 為 AI/ML 工作負載分配 AI/ML 工作負載分配 GPU、FPGA。
1。擴充資源問題舊
在 DRA 之前,Kubernetes 使用 擴充資源 來管理 GPU:
___程式碼區塊_0___缺點:
-
___HTMLTAG_80__HTMLTAG_81___全有或全無:無法在多個 Pod 之間共用 GPU
___HTMLTAG_84__HTMLTAG_85___無結構化參數:無法指定GPU類型、記憶體、MIG分區
___HTMLTAG_88__HTMLTAG_89___沒有拓樸意識:不知道哪個GPU位於哪個PCIe交換器上
___HTMLTAG_92__HTMLTAG_93___無釋放掛鉤:Pod 結束時不進行清理
2。動態資源分配 (DRA) — GA K8s 1.34
DRA 提供靈活的 API,透過 結構化參數.
分配硬體資源2.1 DRA 架構
-
___HTMLTAG_106__HTMLTAG_107___DeviceClass:定義設備類型(GPU、FPGA、NIC) — 由基礎設施團隊建立__HTMLTAG_109___
___HTMLTAG_110__HTMLTAG_111___ResourceClaim:裝置特定請求 — 由應用程式團隊建立
___HTMLTAG_114__HTMLTAG_115___ResourceClaimTemplate:為 Deployment/StatefulSet 中的每個 Pod 建立 ResourceClaim
___HTMLTAG_118__HTMLTAG_119___ResourceSlice:每個節點上可用設備的資訊(由驅動程式發布)
2.2 設備類別
___程式碼區塊_1___2.3 ResourceClaim — GPU 特定要求__HTMLTAG_126___ ___程式碼區塊_2___
2.4 Pod 使用 ResourceClaim
___程式碼區塊_3___2.5 ResourceClaimTemplate — 用於部署
___程式碼區塊_4___3。使用 DRA
進行 GPU 時間切片透過時間切片為多個 Pod 共享 1 個 GPU:
___程式碼區塊_5___4。多實例 GPU (MIG) 分區
MIG(多實例GPU)將A100/H100 GPU分割成獨立的分區:
___程式碼區塊_6___5。具有 DRA
的 NVIDIA GPU 運算符 ___程式碼區塊_7___6。比較:擴充資源與 DRA
___程式碼區塊_8___7。其他用例
-
___HTMLTAG_146__HTMLTAG_147___FPGA:加速推理、加密、網路處理
___HTMLTAG_150__HTMLTAG_151___RDMA NIC:用於分散式訓練的高速網路
___HTMLTAG_154__HTMLTAG_155___客製化 ASIC:TPU、客製化 AI 加速器
___HTMLTAG_158__HTMLTAG_159___SR-IOV 網路介面:高效能網路的虛擬功能
摘要
- DRA GA K8s 1.34:以彈性分配取代擴充資源
- DeviceClass:定義硬體類型__HTMLTAG_169___
- ResourceClaim:使用 CEL 選擇器的特定請求
- 支援 GPU 共享:時間切片和 MIG 分區
- NVIDIA GPU Operator:最新版本的 DRA 支援