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で体系化し、将来のノード追加・置換に耐える拡張性を確立