多数 Kubernetes 架构建立在一个舒服的假设上:请求到达、在 200 毫秒内跑完无状态逻辑、返回响应。多轮代理工作流把这个画像整个倒过来:一次用户请求可能开启三分钟的双向流式会话,代理在里面规划、调用外部工具、把几兆字节的文档读进上下文,并把中间推理一步步流回客户端。作者列出用默认 Web 服务配置部署这类运行时几乎立刻出现的三个故障:启动期 CPU 被限流导致就绪探针失败或扩容卡住;滚动发布时默认 30 秒的负载均衡超时与直接的 SIGTERM 会在回合中途切断 SSE 或 WebSocket;把多轮推理历史只放在 Pod 内存里,任何重启都要重新喂一遍昂贵的上下文。解法是三件套:VPA 启动加速(过就绪探针后用原地调整把 CPU 降回基线)、用 GCPBackendPolicy 做长连接排空、以及把会话状态外置成检查点。
🔑 核心要点
画像被反转:一次请求可能开出三分钟的双向流式会话。
故障一:启动期初始化 AI SDK 与分词器把 CPU 打满,就绪探针失败、扩容卡住。
故障二:默认 30 秒超时加直接 SIGTERM,会在回合中途切断活动连接。
故障三:历史只在 Pod 内存里,重启就得重放一遍昂贵的上下文。
解法是三件套:VPA 启动加速、长连接排空、会话状态外置检查点。
💡 金句
Most Kubernetes architectures are built around a comfortable assumption: HTTP requests arrive, execute stateless logic in under 200 milliseconds, and return a response. 译:多数 Kubernetes 架构都建立在一个舒服的假设上——请求到达,在 200 毫秒内跑完无状态逻辑,然后返回响应。