You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes配置Liveness/Readiness探针时出现TLS握手EOF错误问题

问题根因

你当前配置的tcpSocket探针仅会在传输层完成TCP三次握手,不会在应用层发起任何协议交互流程。由于你的容器端口实际承载的是仅支持HTTPS的服务,探针完成TCP连接建立后会立即主动断开,服务端在等待客户端发起TLS握手的阶段收到连接中断信号,就会输出对应的TLS handshake error: EOF日志。这类报错属于无效连接产生的日志噪音,和你观察到的“移除探针后报错消失”的现象完全吻合。

适配当前场景的探针配置方案
  • 优先使用支持HTTPS的httpGet探针替换原有TCP探针
    这是最直接、对业务侵入性最低的方案。Kubernetes原生的httpGet探针支持显式指定HTTPS协议,会完整走完TLS握手、HTTP请求响应的全流程,从根本上避免因为无应用层交互导致的服务端报错。
    调整后的配置片段参考:
livenessProbe:
  httpGet:
    path: /healthz # 替换为业务服务实际可访问的健康检查路径,避免因路径不存在触发探针失败
    port: http
    scheme: HTTPS # 核心配置,指定探针使用HTTPS协议发起请求
readinessProbe:
  httpGet:
    path: /healthz
    port: http
    scheme: HTTPS

补充注意:如果你的HTTPS服务使用自签名证书,需要在探针配置中增加跳过证书校验的参数,避免探针因证书信任问题判定为服务不可用,对应配置为:

readinessProbe:
  httpGet:
    path: /healthz
    port: http
    scheme: HTTPS
    tlsConfig:
      insecureSkipTLSVerify: true
  • 非推荐备选方案:调整服务日志规则过滤噪音
    如果你因特殊场景必须保留原有tcpSocket探针,可以在业务服务的TLS配置中对这类无应用层交互的短连接异常做捕获,降低对应日志的输出级别,仅保留日志输出不会影响实际探针的判断逻辑。但这类方案会残留无效连接的隐性开销,且容易遗漏其他真实的TLS报错,不建议作为长期落地方案。

内容的提问来源于stack exchange,提问作者AnjK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 18:06:03