跳轉到

Valkey Serverless External Routing

概念概覽

Serverless vs 非 Serverless 連線設定差異

核心知識

Serverless vs 非 Serverless 連線設定差異

項目 Serverless (qa-test) 非 Serverless
連線地址 AWS Serverless hostname 直連 Virtual Service 代理 service.pocket-store.make-wish.club:16380
TLS 必須啟用 啟用
SSL Host 填入 Serverless hostname 本身 填 AWS master endpoint(與連線地址不同)
Port 6379 16380(外部代理 port)

SSL Host 留空陷阱:Serverless 模式若 SSL Host 留空,TLS SNI 驗證會失敗,錯誤不明顯。

Serverless Valkey 外部連線三組件架構

外部客戶端
    ↓ port 16381
IstioGateway  ← helm upgrade(手動,無 Pipeline)
VirtualService ← UpdateVirtualService Pipeline 動態生成
AWS Serverless endpoint

三組件必須同時到位: 1. IstioGateway:開放 port 16381 2. VirtualService:路由規則(Python 腳本從 baseInfo_Def.pyConnectInfos 動態生成) 3. baseInfo_Def.pyOutClusterPort != 0 才觸發路由生成

VirtualService 動態生成機制

genVirtualServiceRecord.py 讀取 baseInfo_Def.pyConnectInfos,只有 OutClusterPort != 0 的條目才會產生對應 TCP 路由。修改 baseInfo_Def.py 後需重跑 UpdateVirtualService(runMode=upgrade)才生效,不需手動編輯 VirtualService yaml。

經驗教訓

  • Serverless Valkey 無固定 IP,連線工具必須使用 hostname 並啟用 TLS

  • 非 Serverless 走 Virtual Service 時,SSL Host 與連線 Host 不同是刻意設計(TLS 透通)

  • 新增外部路由後必須重跑 UpdateVirtualService pipeline,Python 腳本才會重生成 tcpValues

常見陷阱

  • SSL Host 留空在 Serverless 模式下造成 TLS SNI 驗證失敗,錯誤訊息不直接

  • 只修改 IstioGateway 而忘記重跑 UpdateVirtualService,VirtualService 路由不會自動更新

最佳實踐

  • 新增 Serverless Valkey 連線後,按順序驗證:baseInfo_Def.py → UpdateVirtualService → IstioGateway dry-run → 實際部署

  • 連線工具設定文件中明確標注 Serverless vs 非 Serverless 的 SSL Host 填法差異

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-04-08 | 4704b57e-d74e-48ab-811d-8bf398552c49 | 完整記錄 Serverless vs 非 Serverless Valkey 外部連線架構差異,以及三組件聯動(IstioGateway + VirtualService + baseInfo_Def.py)的設定邏輯 |


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

最後更新: 2026-04-08