跳轉到

Istio Header-Based Environment Routing

概念概覽

Header-Based Routing vs Wildcard Subdomain

核心知識

Header-Based Routing vs Wildcard Subdomain

方案 A(Header):請求帶 x-env: pr-42 header,Istio VirtualService 按 header 值分流到對應 preview namespace。 - 優點:不動 DNS/TLS,QA 可在同設備切換環境(改 header 比換 DNS 快) - 缺點:client 需主動帶 header(需 Postman collection 或 browser extension 工具支援)

方案 B(Subdomain)pr-42.dev.matchrpg.internal - 優點:client 無需任何工具配置 - 缺點:每個 PR 需 DNS 記錄 + TLS 憑證,現階段 infra 成本高

local dev   → 不走 Istio(Docker Compose)
dev env     → 主動帶 x-env: dev(必須,不能用 withoutHeaders fallback)
pr-N env    → 帶 x-env: pr-{number}
staging     → 不需 x-env(獨立部署,無多租戶)
prod        → 不需 x-env(獨立部署,無多租戶)

升級路徑

團隊 >10 人時評估升級為 wildcard subdomain,省去 header 配置負擔。

經驗教訓

  • header-based routing 的核心優勢是零 DNS/TLS 變更,適合快速驗證 preview env 可行性

  • dev 環境不帶專屬 header 而依賴 withoutHeaders fallback 是典型的隱性 bug 來源

常見陷阱

  • withoutHeaders fallback 在多環境並存時路由結果不可預期,應避免作為 dev 的主要路由方式

  • local CI 測試路徑不經 Istio,x-env header 邏輯無法在 local smoke test 中被驗證

最佳實踐

  • 準備 QA 工具包(Postman collection 預設帶 x-env header),降低使用門檻

  • VirtualService 中為每個 preview PR 和 dev 環境明確設定 header match,不依賴 catch-all fallback

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-03-24 | 770400fc-5a4e-4290-92e5-08106a48b63e | 明確定義用 x-env header 做多環境路由的設計決策與 dev/staging/prod 差異 |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-03-24