Chuyển đến nội dung chính

第 21 課:動態資源分配 (DRA) — GA K8S 1.34

K8s 1.34 中的動態資源分配 (DRA) GA — 取代舊的擴充資源。 ResourceClaim、DeviceClass、GPU 共享和 FPGA 分配。具有適用於 AI/ML 工作負載的 DRA 的 NVIDIA GPU Operator。

🔒 DevSecOps — 第 21 課 第 21 課:動態資源分配 (DRA) — GA K8S 1.34

KUBERNETES:從基礎到進階

模組 5:工作負載管理__HTMLTAG_62___

xdev.asia

🎯 課程目標____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 支援