NVIDIA/k8s-device-plugin
NVIDIA device plugin for Kubernetes
何を解決するか
このプロジェクトは、KubernetesクラスタがNVIDIA GPUを認識し、利用できるようにします。デフォルトではKubernetesはGPUを最初のクラスのリソースとして管理する方法を知りません。このプラグインにより、クラスタは各ノード上のGPU数を自動検出し、その健全性を監視し、GPUを要求するコンテナに割り当てることができます。
動作方法
DaemonSetとして動作し、クラスタ内のすべてのノードで実行されます。Kubernetesデバイスプラグインフレームワークを実装して、nvidia.com/gpuリソースタイプを公開します。ポッドがGPUを要求すると、プラグインはNVIDIA Container Toolkitと連携して、ハードウェアがコンテナに正しく注入されるようにします。
複数の高度な割り当て戦略をサポートしています:
- MIG(マルチインスタンスGPU):1つのGPUを複数の小さなインスタンスに分割できます。
- タイムスライシング:1つのGPUに対して複数のワークロードが時間的に交互に使用できるように、リソースの仮想レプリカを作成します。
- MPS(マルチプロセスサービス):各ワークロードごとにメモリと計算リソースを明示的に制限するための空間分割を提供します。
対象ユーザー
NVIDIAハードウェアを使用してKubernetes上でAI、機械学習、またはハイパフォーマンスコンピューティング(HPC)ワークロードを展開するクラスタ管理者およびDevOpsエンジニア。
主な特徴
- 自動リソース公開:GPUの数をKubernetes APIに自動的に報告します。
- 柔軟な共有:CUDAタイムスライシングとMPSをサポートし、GPUの過剰割り当てが可能です。
- MIGサポート:マルチインスタンスGPUの使用を可能にし、ハードウェアの利用効率を向上させます。
- カスタマイズ可能な割り当て:デバイスID(UUID vs インデックス)やデバイスリスト(環境変数、ボリュームマウント、またはCDIアノテーション)の複数の戦略を提供します。
- GPU機能の自動発見:GPUの機能に基づいたノードラベルの自動付与を実装しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト