首页 > 解决方案 > Kubernetes:readinessProbes 失败,但 livelinessProbe 使用相同的设置成功

问题描述

我为我的 pod 配置了一个 livelinessProbe,它在同一个 pod 和特定端口上的路径上执行 http-get。它完美地工作。但是,如果我使用相同的设置并配置 readinessProbe 它将失败并出现以下错误。

Readiness probe failed: wsarecv: read tcp :50578->:80: 远程主机强行关闭了现有连接

实际上,在某个点之后,我什至看到活力探测失败了。不知道为什么。活跃度探测成功应该表明 kube-dns 工作正常,我们能够从节点访问 pod。这是我的 pod 规格的 readinessProbe

readinessProbe:  
        httpGet:  
          path: /<path> # -> this works for livelinessProbe  
          port: 80  
        initialDelaySeconds: 30  
        periodSeconds: 10  
        timeoutSeconds: 10  

有谁知道这里可能发生了什么。

标签: kuberneteskubernetes-helm

解决方案


我认为它与kube-dnsor没有任何关系coredns。最可能的原因是您的 pod/容器/应用程序崩溃或停止服务请求。

好像是这样的时间线:

  • Pod/容器出现。
  • 活力探测通过了。
  • 一段时间过去了。
  • 可能是应用程序崩溃或错误。
  • 准备失败。
  • 活力探测也失败了。

有关该错误含义 的更多信息:远程主机强制关闭现有连接


推荐阅读