2025年12月17日にリリースされたKubernetes 1.35は、AI/MLワークロードの実行基盤として大きな進化を遂げた。Dynamic Resource Allocation(DRA)がGA(General Availability)に達し、GPUリソースの柔軟な割り当てが可能になった。本稿では、DRAの仕組みとAI基盤の効率化について解説する。

従来のGPU管理の限界

従来のKubernetesにおけるGPU割り当ては、Device Pluginを通じて「不透明な整数リソース」として扱われていた。ワークロードは「nvidia.com/gpu: 1」のようにGPU全体を要求し、たとえ必要なのがGPUメモリの一部であっても、排他的アクセスを取得していた。

この設計は深刻な非効率を生んでいた。本番クラスタでは、GPU使用率が30〜40%程度に留まることが一般的であった。50基のGPUを運用する中規模組織では、この無駄が年間30万〜60万ポンド(約6,000万〜1億2,000万円)の損失に相当するという試算もある。

また、NVLinkやGPUインターコネクトといったトポロジを考慮したスケジューリングが困難であり、マルチGPUワークロードの最適配置は手動での対応を余儀なくされていた。

Dynamic Resource Allocation(DRA)とは

DRAは、Kubernetes 1.34でGA(一般提供)に達し、1.35ではフィーチャーゲートがロック(無効化不可)された。これは、DRAがKubernetesのコア機能として完全に統合されたことを意味する。

DRAの根本的な違いは、ワークロードが「どのようなデバイスが必要か」を宣言的に記述し、スケジューラが最適な割り当てを決定する点にある。例えば「20GB以上のメモリを持つ任意のGPU」という要求を出すと、スケジューラが利用可能なリソースから最適なGPUを選択する。

DRAの主要コンポーネントは3つある。ResourceClaimはワークロードが必要とする特定リソースの要求を表す。DeviceClassはリソースの選択基準と設定を定義する。ResourceSliceは割り当て可能なリソースに関する情報を公開する。

きめ細かなGPU共有と分割

DRAは、GPUやNICなどのデバイスのきめ細かな共有を可能にする。開発者は40GBのGPUから10GBのみを安全に割り当てるといった、特定容量の要求ができる。

共有戦略として、Time-slicing(時分割)、MPS(Multi-Process Service)、MIG(Multi-Instance GPU)、または排他的アクセスをPod単位で指定できる。ワークロードの特性に応じて最適な分離レベルを選択することで、セキュリティと効率のバランスを取れる。

トポロジ認識スケジューリングも重要な機能である。NVLinkやGPUインターコネクトを理解し、マルチGPUワークロードを最適なノードとGPUの組み合わせに配置する。これにより、分散学習のパフォーマンスが大幅に向上する。

Kubernetes 1.35の追加機能

Kubernetes 1.35では、AI/MLチーム向けにGang Scheduling(アルファ)とDRAエコシステムの継続的な改善が提供されている。

ワークロード抽象化(Workload Abstraction)の基本実装も含まれている。これにより、スケジューリング制約とトポロジ要件を持つPodグルーピングを定義できる。Node Selectorの強化版と考えることができ、複数のPodが特定の条件を満たすノード群に一緒にスケジュールされることを保証する。

これらの機能は、大規模な分散学習ジョブや、特定のハードウェア構成を必要とするワークロードにとって特に有用である。

クラウドプロバイダーの対応状況

主要クラウドプロバイダーはDRAのサポートを積極的に進めている。AWSはAmazon EKSでDRAをサポートし、EC2 P6e-GB200(NVIDIA Grace Blackwell)インスタンスとの統合を提供している。

Google CloudはDistributed Cloud for bare metalでGPU向けDRAの管理機能を提供している。Alibaba CloudのACK(Container Service for Kubernetes)もDRAによるGPUスケジューリングをサポートしている。Azure AKSも2025年11月にDRAとデバイス、ドライバに関する詳細なガイダンスを公開した。

多くの企業がDRA導入後にGPU使用率の20〜40%改善を報告しており、コスト最適化とAIワークロードの効率化の両面で成果が出始めている。

FAQ

DRAを使うにはKubernetes 1.35が必要ですか?

DRA CoreはKubernetes 1.34でGAに達している。1.35ではフィーチャーゲートがロックされ、より安定した本番環境での利用が可能である。

既存のDevice Pluginからの移行は必要ですか?

DRAとDevice Pluginは共存可能である。段階的な移行が推奨され、新規ワークロードからDRAを採用し、既存ワークロードは徐々に移行するアプローチが現実的である。

GPU以外のデバイスにもDRAは使えますか?

DRAはGPUに限らず、NIC、FPGA、その他のアクセラレータにも適用可能である。デバイスドライバがDRAに対応していれば利用できる。

Time-slicingとMIGの違いは?

Time-slicingは時間分割でGPUを共有し、MIGはGPUを物理的に分割して独立したインスタンスを作成する。MIGはより強い分離を提供するが、対応GPUが限られる(A100、H100など)。

参考文献