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

🎯 レッスンの目的_

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 サポート