首页 / 技术指南 / 当前文章

Kubernetes Pod 无法调用 API:DNS、egress、证书与 timeout 排查

最后验证:2026-08-31 · FXXT技术栈编辑部

Pod 超时需在 Pod 内验证 DNS、路由、证书与代理,并检查 NetworkPolicy 或 egress 网关;节点能访问不代表 Pod 能访问。

Quick diagnosis

在变更前记录脱敏后的 URL、状态码、时间和错误阶段。用最小可复现请求分别验证应用、容器或 Pod 与网络边界。

kubectl exec -it YOUR_POD -- getent hosts YOUR_API_HOST

Why it happens

网络请求可能在解析、连接、TLS、代理、上游处理或流式读取阶段失败。先定位阶段再修复,避免用全局 timeout 或重试遮蔽根因。

Fix

只调整确有证据的 DNS、CA、代理、timeout 或代理 location 配置;将变更限定到目标服务,保留原值用于回滚。

Verification

修复后重新运行最小请求,并确认错误率、首字节时间和流式事件行为。不要记录 API Key、Authorization、Token 或完整用户日志。

Rollback

验证失败时恢复原环境变量、配置或部署清单,再重新测试。Nginx 变更必须先通过 nginx -t

FAQ

可以直接无限重试吗?

不可以。应设置有限次数和退避,并优先修复 DNS、证书、代理或上游问题。

Related Runbooks

Python APITimeoutError · Node.js baseURL · Nginx SSE buffering