Engineering · 3 min read
KEDA 壓測方法論:「Ready」不等於「能用」
四步壓測流程驗證 KEDA ScaledObject,加上 Ready 狀態不可靠背後的初始化延遲問題。
四步壓測法
一個可重複的測試流程,在上線前驗證 KEDA ScaledObject 的行為。
Cold vs Warm 對照
同一個 burst 量跑兩次:
- Cold: Pod 正在擴展中,KEDA 剛觸發。
- Warm: 所有 Pod 都 Ready。
比較結果。Cold 失敗但 Warm 成功,代表問題是啟動時間,不是 Pod 容量。
每次 Burst 後,檢查四件事
- HTTP 狀態分佈(200 vs 502/503)
- 延遲範圍(p1 到 p99)
- 錯誤計數器(
chrome_errors_total) - Pod 數量和 ScaledObject ACTIVE 狀態
「Ready」不等於「能用」
Resource 的 status 欄位是一個組件的自我回報。其他組件可能還沒跟上。
「Ready」到真正能用之間的落差,叫做初始化延遲。
年齡檢查規則
Resource 失敗時,看它的年齡來決定怎麼處理。
GPU node 顯示 Ready 的時候,GPU 還不能用。我當時以為遇到硬體故障。兩分鐘後,三個 Chrome Pod 全跑起來了。那台 node 一直都在初始化。
參考來源: