🎯 レッスンの目的_
K8s 1.34 の動的リソース割り当て (DRA) GA とは何か、それが古い拡張リソースよりも優れている理由、ResourceClaim と DeviceClass を使用して AI/ML ワークロードに GPU、FPGA を割り当てる方法を理解します。
1.拡張リソースに関する問題 Old
DRA が導入される前、Kubernetes は GPU:
を管理するために__HTMLTAG_74___拡張リソース を使用していました。 ___コードブロック_0___欠点:
- 全か無か: 複数のポッド間で GPU を共有できません
- 構造化パラメーターなし: GPU タイプ、メモリ、MIG パーティションを指定できません
- トポロジ認識なし: どの GPU がどの PCIe スイッチにあるのかわからない
- 割り当て解除フックなし: ポッド終了時のクリーンアップなし
2.動的リソース割り当て (DRA) — GA K8s 1.34
DRA は、__HTMLTAG_100___構造化パラメータ.
を使用してハードウェア リソースを割り当てるための柔軟な API を提供します。2.1 DRA アーキテクチャ
- DeviceClass: デバイス タイプ (GPU、FPGA、NIC) を定義します — インフラストラクチャ チーム__HTMLTAG_109___ によって作成されました
- ResourceClaim: デバイス固有のリクエスト — アプリチームによって作成
- ResourceClaimTemplate: Deployment/StatefulSet 内の各ポッドに ResourceClaim を作成
- _ResourceSlice: 各ノードで利用可能なデバイスに関する情報 (ドライバーによって公開)
2.2 デバイスクラス
___コードブロック_1___2.3 ResourceClaim — GPU 固有の要件__HTMLTAG_126___ ___コードブロック_2___
2.4 ポッドは ResourceClaim を使用します
___コードブロック_3___2.5 ResourceClaimTemplate — デプロイメント用
___コードブロック_4___3. DRA
による GPU タイム スライシングタイムスライスを使用して複数のポッドで 1 GPU を共有:
___コードブロック_5___4.マルチインスタンス GPU (MIG) パーティショニング
MIG (マルチインスタンス GPU) は、A100/H100 GPU を独立したパーティションに分割します:
___コードブロック_6___5. DRA
を備えた NVIDIA GPU オペレーター ___コードブロック_7___6.比較: 拡張リソースと DRA
___コードブロック_8___7.その他の使用例_
- _FPGA: 推論、暗号化、ネットワーク処理を高速化
- RDMA NIC: 分散トレーニング用の高速ネットワーキング
- カスタム ASIC: TPU、カスタム AI アクセラレータ
- SR-IOV ネットワーク インターフェイス: 高性能ネットワーキングのための仮想関数
概要
- DRA GA K8s 1.34: 拡張リソースを柔軟な割り当てに置き換えます
- DeviceClass: ハードウェア タイプを定義します__HTMLTAG_169___
- ResourceClaim: CEL セレクターを使用した特定のリクエスト
- GPU 共有のサポート: タイムスライスと MIG パーティショニング
- NVIDIA GPU オペレーター: 最新バージョンからの DRA サポート