Files
awoooi/docs/adr/ADR-110-gcp-ollama-topology.md
Your Name ed7c6946cb
All checks were successful
Code Review / ai-code-review (push) Successful in 10s
docs(awooop): define private Ollama mesh gateway
2026-05-05 22:56:22 +08:00

3.0 KiB
Raw Blame History

ADR-110: GCP Ollama 三層容災拓撲

狀態: 已採用 日期: 2026-05-03 (台北時區) 決策者: 統帥 關聯: 取代 ADR-105Revert A2 Ollama Primary

2026-05-05 修正:本 ADR 的「GCP-A → GCP-B → 111 → paid provider」邏輯仍有效 但公網 GCP IP / 110 nginx proxy 僅為過渡傳輸。正式傳輸與 runtime 管理由 ADR-125GCP Ollama Private Mesh and AwoooP Inference Gateway取代。


背景

2026-04-27 訂立「192.168.0.111 唯一 Ollama」鐵律ADR-105當時 GCP 主機尚未就緒。 2026-05-03 兩台 GCP SSD 主機34.143.170.20 / 34.21.145.224)正式上線,具備:

  • 9x 模型載速SSD vs HDD
  • 2x 推理效能
  • 免費方案(成本零增加)

決策

採用三層 Ollama 容災架構GCP 主機優先:

路由優先序

層級 URL 說明
Primary (GCP-A) http://34.143.170.20:11434 SSD 高效能主機
Secondary (GCP-B) http://34.21.145.224:11434 SSD 高效能備援
Fallback (Local) http://192.168.0.111:11434 M1 Pro Local HDD 最後防線
緊急 Gemini → Nemotron → Claude 全部 Ollama 掛掉時

決策矩陣

GCP-A HEALTHY                     → primary=GCP-A, fallback=[GCP-B, Local]
GCP-A not HEALTHY + GCP-B HEALTHY → primary=GCP-B, fallback=[Local]
GCP-A + GCP-B 不健康 + Local OK  → primary=Local, fallback=[Gemini]
所有 Ollama 不健康                 → primary=Gemini, fallback=[Nemotron, Claude]

Config 欄位映射

欄位 說明
OLLAMA_URL http://34.143.170.20:11434 GCP-A Primary
OLLAMA_SECONDARY_URL http://34.21.145.224:11434 GCP-B Secondary新增欄位
OLLAMA_FALLBACK_URL http://192.168.0.111:11434 Local HDD Fallback

安全考量

GCP IP34.143.170.20, 34.21.145.224)屬公網 IP已加入 config.py 的 _ALLOWED_PUBLIC_IPS 白名單,繞過 RFC1918 私網限制。任何不在白名單的公網 IP 仍會被拒絕(端點中毒防護不變)。

K8s NetworkPolicy egress 已新增 GCP-A/GCP-B 的 /32 出口規則port 11434

取代的決策

  • ADR-105: Revert A2 Ollama Primary已廢止被本 ADR 取代)
  • feedback_ollama_111_only.md:更新為新三層容災鐵律

結果

  • Ollama 主要流量走 GCP SSD效能提升
  • Local 111 保留為最後防線,不棄用
  • Gemini/Nemotron/Claude fallback 鏈不變

2026-05-05 現場校正

冷啟動救援期間的實測顯示:

  • GCP-A / GCP-B 透過 110 nginx proxy 可連線,但長 prompt 曾出現 504。
  • /api/ps 顯示 GCP-A / GCP-B size_vram: 0,因此不可假設它們等同 111 GPU/VRAM 推理能力。
  • 告警同步路徑必須使用 gemma3:4b 這類 fast lane 模型14B/32B 模型需移到 async 或 111/GPU 節點。
  • 公網 34.143.170.20:11434 / 34.21.145.224:11434 不再視為最終安全架構。

後續以 ADR-125 為準WireGuard private mesh 是正式網路層AwoooP Inference Gateway 是正式 runtime 層。