Node2-Node3 Docker Compose分離型AI基盤(制御層と計算層のコンテナ分離設計)

🔍 抽出済み | 技術 | 優先度:🟠 高

シリーズ: AI・IT実践シリーズ


目的(ゴール)

CUDA(NVIDIA)とROCm(AMD)が共存するNode3の特殊マルチベンダーGPU環境において、ドライバ競合・単一障害点・リソース争奪を回避するため、制御層(Node2)と計算層(Node3)をDocker Composeで明確に分離したAI基盤を設計・構築する。Node2が「脳(司令塔)」、Node3が「筋肉(計算機)」として役割分担する堅牢なアーキテクチャを確立する。

アクター

  • 著者(Manabazu)
  • Node2(EVO-X1 Ubuntu 32GB RAM)——制御層ホスト(Vector DB / API Gateway / Orchestrator)
  • Node3(Ubuntu / NVIDIA 3枚 + AMD 1枚)——計算層ホスト(CUDA推論コンテナ / ROCm推論コンテナ / Embeddingコンテナ)
  • Docker Compose / Docker Swarm——コンテナオーケストレーション
  • gRPC / OpenAI互換API——ノード間通信プロトコル

アーキテクチャ設計

Node2(制御層)                    Node3(計算層)
┌─────────────────────┐           ┌─────────────────────────────┐
│ [Qdrant Container]  │←──HTTP───→│ [CUDA Inference] vLLM       │
│ [LangGraph Agent]   │           │   RTX5070Ti + 4060Ti + 3060  │
│ [API Gateway]       │←──gRPC───→│ [ROCm Inference] vLLM/llama │
│ [Log Aggregator]    │           │   RX7900XTX                  │
└─────────────────────┘           │ [Embedding Service]          │
         ↑↓                       │   RTX4060Ti(非同期)         │
    QNAP NAS                      └─────────────────────────────┘
(ドキュメント・モデル・ログ)

検証シナリオ

S1:Node2制御層コンテナ群の構築

Qdrant(Vector DB)・LangGraph(オーケストレーター)・APIゲートウェイをDocker Compose化。Node3の負荷とは独立して稼働することを確認。

S2:Node3 CUDA推論コンテナ分離

RTX5070Ti/4060Ti/3060用のvLLM CUDAコンテナと、RX7900XTX用のvLLM ROCmコンテナを別コンテナとして起動。ドライバ競合なく並列稼働することを検証。

S3:Node3高負荷時のNode2安定性確認

Node3でVRAMを使い切る推論(32B QUANTモデル)を実行中にNode2のQdrant検索が応答不能にならないことを確認。制御層・計算層分離の効果を定量測定。

S4:マルチノード動的ルーティング

Node2のエージェントが「軽いクエリ→Node4 NPU」「長文要約→Node3 AMD」「精密分析→Node3 NVIDIA」と自動ルーティングするワークフローをLangGraphで実装・検証。

S5:NASウォッチドッグ連携

QNAPの指定フォルダへのファイル追加をNode2が検知し、自動でNode3のEmbeddingサービスへ処理委譲するパイプラインを構築。

対応リスク

期待成果

  • CUDA/ROCm共存環境での安定稼働を実証しR260413-001(プラットフォームリスク)に対処
  • UC260506-002(MCPオーケストレーター)・UC260506-005(RAGシステム)の実行インフラとして機能
  • CBFラボの「制御層と計算層の分離」設計原則をDocker Composeで体系化し、将来のノード追加・置換に耐える拡張性を確立