KubernetesにおけるDevice ManagementとDRAの進展

引言

Kubernetesはクラウドネイティブアプリケーションの運用において不可欠なプラットフォームとして注目を集めています。しかし、専用デバイス(GPUやアクセラレータなど)の管理は、スケーラビリティや効率的なリソース利用を阻害する要因となることがあります。この課題に対応するため、KubernetesコミュニティではDevice Management Working Groupが設立され、**DRA(Dynamic Resource Allocation)**という新たなアプローチが提案されています。本記事では、DRAの技術的詳細、実裝例、および今後の展望について解説します。

主要內容

技術の定義と基本概念

Device Management Working Groupは、Kubernetesにおける専用デバイスの管理を簡素化し、効率化することを目的としています。このグループが提案する**DRA(Dynamic Resource Allocation)**は、GPUやその他のアクセラレータを含むデバイスの動的リソース割當を実現するメカニズムです。DRAは、Kubernetesのアーキテクチャ內に統合され、リソースの自動拡縮、ネットワーク、ノード間の相互作用、スケジューリング決定に影響を與えます。

重要な特性と機能

1. リソーススライスとリソースクレーム

  • リソーススライス(Resource Slice):ノード上のデバイスの固定リストを表し、製造元、製品ID、GPUメモリ、計算ノード數などの屬性を含みます。
  • リソースクレーム(Resource Claim):デバイスの要件を指定する獨立したオブジェクトで、デバイスの種類(例:製造元)に基づいて柔軟にマッチングが可能です。
  • 構造化パラメータ:デバイスの記述を構造化し、論理的推論やシミュレーションをサポートします。

2. スケジューラの変更

  • 論理の移動:DRAの実裝において、スケジューラに論理を移行させることで、Betaステージに到達しました。
  • スケジューリングフロー:スケジューラはリソースクレームに基づき、利用可能なデバイスをマッチングし、Cubletにデバイスの設定を委譲します。

3. 新機能と進展

  • デバイスのタイントとトールレーション:分割可能なデバイス(Partitionable Devices)を管理し、デバイスの狀態(例:メンテナンス中)を指定可能です。
  • 優先代替リクエスト:複數のデバイス要件(例:製造元Aまたは製造元B)を指定し、スケジューラがそのいずれかを満たすようにします。
  • 管理者アクセスモード:ノード上のすべてのデバイスを取得できる標準化されたラベルを追加し、管理者がアクセスを制御できるようにしました。

4. バージョン更新とAPIの簡素化

  • バージョン133:デバイスの狀態(Claim Status)をサポートし、分割可能なデバイスを簡素化し、APIを簡略化しました。
  • バージョン134の目標:DRAの核心機能をGA(Generally Available)に移行し、リソースクレームの狀態を統合します。
  • APIバージョン:v1beta1とv1beta2が共存し、後者は構造を簡略化してGAへの移行を促進します。

5. 可靠性と拡張性

  • デフォルトルール(Arbug Rules):ドライバのロールアウト更新をサポートし、中斷時間を削減します。
  • デバイス屬性の制限:デバイス屬性の數を制限し、オブジェクトのサイズを管理します。

実際の応用例と実裝ステップ

NVIDIA GPUの使用例

  • バージョン130:12の使用例のうち6をサポート。
  • バージョン131:9をサポート。
  • バージョン133:すべての例をサポート(1つのアプリケーション特有の例を除く)。
  • クロスノードリソース:NVIDIA GPUのマルチノードVLink(Multi-node InfiniBand)をサポートし、Compute Domain APIオブジェクトを追加しました。

マルチノードリソースのサポート

  • VLink接続:マルチノード環境で高帯域幅通信を実現し、InfiniBandやEthernetよりも高速です。
  • テスト內容:MPIワークロードを4つ実行し、GPU間のメモリ読み取り/書き込みのスループットを測定しました。
  • デモ時間:NVIDIAブースで4:00にデモが行われ、mini GB200クラスター(4ノード、各ノード4GPU、合計16GPU)が使用されました。

技術の優位性と課題

優位性

  • 柔軟なリソース管理:DRAはデバイスの動的割當を可能にし、クラウドネイティブ環境でのスケーラビリティを向上させます。
  • 拡張性:新しいデバイスやネットワーク環境への対応が容易です。
  • 信頼性:デフォルトルールやリソース屬性制限により、システムの安定性が向上します。

課題

  • 監視ツールの更新:DCGMなどの監視ツールはDRAの新しいAPIをまだサポートしていないため、今後の更新が必要です。
  • APIの複雑さ:v1beta1とv1beta2の共存により、実裝や運用が複雑化する可能性があります。

總結

DRAはKubernetesにおける専用デバイス管理の革新をもたらし、動的リソース割當を実現します。特にNVIDIA GPUのマルチノード環境での応用例は、高帯域幅通信を可能にし、スケーラビリティを向上させます。今後、DRAのGA実裝と監視ツールの更新が進むことで、さらなる普及が期待されます。Kubernetesユーザーは、DRAの最新バージョンを確認し、自身の環境に合わせた導入を検討することをお勧めします。