首页 新闻 会员 周边

TimeoutSeconds 含义

0
[已关闭问题] 关闭于 2026-06-15 19:18

k8s 就绪探针、存活探针是每个节点上的 kubelet 负责执行探针,由本节点的 kubelet 向 Pod 内发起请求,和你说的 collect 组件无关。kubelet 常驻在每个节点,直接发起 HTTP‑GET / exec / TCP‑Socket 检测。

含义:kubelet 发出这次探测之后,等待 Pod 返回结果的最长时间,超过该值直接判定本次探针失败。

• 默认1s,最小值强制1,无法设置0。

1. 理想情况(1秒够用)
探针只做轻量化检查,比如访问一个内存级健康接口、简单端口连通,没有外部IO。Pod 跟本机 kubelet 通信,走本机网络,正常几十毫秒就返回,1秒余量充足。一旦1秒超时,基本代表进程僵死、线程耗尽,本身就属于异常,1秒阈值没问题。

2. 现实业务场景(1秒偏小,极易误判)
如果健康检查接口内部逻辑较重:查询数据库、调用下游服务、磁盘IO、频繁GC、Pod CPU打满,接口返回耗时很容易超过1s。
后果:单次直接超时,连续失败达到 failureThreshold,K8s 就会判定容器未就绪,不会接入流量,严重时被重启,属于典型误杀。

四、标准优化方案

1. 调高 TimeoutSeconds,例如改成 3‑5s(下限依旧只能是1)

2. 搭配配套参数一起修改,不要只改超时

◦ periodSeconds:探测间隔,默认10s,不用频繁探测

◦ failureThreshold:连续失败多少次才算异常,默认3,可以适当放大,抵御瞬时抖动

◦ initialDelaySeconds:容器启动缓冲时间,应对启动慢的应用

 

kubelet 运行在节点,请求目标是 Pod 的容器网络,依旧属于本机范围,没有跨节点网络延迟,但应用自身逻辑耗时不受网络影响,这就是很多业务必须把超时大于1秒的根本原因。

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1762
提问于:2026-06-15 19:17
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册