【问题标题】:Kubernetes: readinessProbes failing but the livelinessProbe is succeeding with the same settingsKubernetes:readinessProbes 失败,但 livelinessProbe 使用相同的设置成功
【发布时间】:2019-03-13 15:36:00
【问题描述】:

我为我的 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  

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

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    我认为这与kube-dnscoredns 无关。最可能的原因是您的 pod/容器/应用程序崩溃或停止服务请求。

    好像是这样的时间线:

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

    有关该错误含义的更多信息: An existing connection was forcibly closed by the remote host

    【讨论】:

    • 感谢您的快速回复 :) 但是,如果没有准备就绪探测,livelinessprobe 永远不会失败。只有当我添加了 readinessProbe 时,事情才开始失败。
    • 您是否检查过您的 pod 中的一切都运行良好?
    • 如果我不在 pod 中设置 readinessProbe,一切运行正常。我可以调用我部署的服务,livelinessProbes 也成功了。但是一旦我设置了 readinessProbe,我也无法在该 pod 上运行我的服务。当我运行 wget 时,它一直在失败。
    • 实际上,我的 readinessprobe 第一次大约需要 2-3 分钟。所以,我的超时时间是 180。但是,过了一会儿(大约 2 分钟),它失败并出现错误“wsarecv:现有连接被远程主机强行关闭”
    • 这可能是您的应用程序的问题。我建议您进入 pod 并检查日志文件,或使用 kubectl logs &lt;pod-name&gt; 检查标准输出日志
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多