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 成本高
各環境 header 策略¶
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
相關概念¶
- Istio Cross-Namespace xDS Authentication
- Istio EKS ARM64 Installation
- Preview Environment PR-Level Isolation
- Trusted Proxy Hardening
來源 Sessions¶
| 日期 | Session | 貢獻摘要 |
|---|---|---|
| 2026-03-24 | 770400fc-5a4e-4290-92e5-08106a48b63e | 明確定義用 x-env header 做多環境路由的設計決策與 dev/staging/prod 差異 |