【问题标题】:Kubernetes Readiness probe failed errorKubernetes 就绪探测失败错误
【发布时间】:2018-07-10 11:45:46
【问题描述】:

使用 helm upgrade 命令在 kubernetes 上运行我的容器时,我收到此错误:

'就绪探测失败:获取http://172.17.0.6:3003/:拨号tcp 172.17.0.6:3003:getsockopt:连接被拒绝'。

我的 docker 映像用于 node.js 应用程序,我正在尝试通过 minikube 管理它。

【问题讨论】:

    标签: docker minikube kubernetes-helm


    【解决方案1】:

    对于这里的其他人,如果使用 helm 管理部署,则需要在 livenessProbe 下的 /templates 文件夹中的 deployments.yaml 模板中设置 initialDelaySeconds。如果探针无法连接,livenessProbe 将强制重启您的 pod,就像我的一样。它没有给我的应用程序足够的时间来构建。

    【讨论】:

    • 要设置的initialDelaySeconds的值是多少?
    【解决方案2】:

    这可以通过增加就绪检查的初始延迟来解决。实际上,由于与 DB 的连接所花费的时间超过了导致就绪探测失败的初始延迟。

    【讨论】:

    • 我从 15 秒增加到 60 秒,但仍然失败。请分享您的意见?
    • 你是怎么摆脱这个的?
    【解决方案3】:

    头盔:

    我建议在values.yaml 文件中设置initialDelaySeconds 值 并使用操作{{ .Values.initialDelaySeconds }} 将值插入deployment.yaml 模板。

    kubectl:

    如果您想要 5 秒到您的(部署、pod、复制集等)清单并应用您的更改,只需添加 initialDelaySeconds: 5

    如果失败,请喝杯咖啡并开始查看容器中的日志

    kubectl logs -h 获取更多帮助

    【讨论】:

      【解决方案4】:

      我也有这个问题。通过使用我的 dockerfile 中设置的命令指定我的 docker 映像在主机 0.0.0.0 上侦听来修复它:ENV HOST '0.0.0.0'

      在部署到 Docker 以及可能的其他容器时,建议在 0.0.0.0 上进行侦听,因为它们不会默认将映射的端口暴露给 localhost。

      【讨论】:

        【解决方案5】:

        将 coredns 镜像从 v1.5.0 更新到当前版本 v1.6.9,然后错误得到修复。

        【讨论】:

          【解决方案6】:

          Helm 和 NodeJ:

          对于我的 Node.js 应用程序,initialDelaySeconds 的 5s 不是确切的解决方案。

          我通过使用来自@cloudnative 的health-connect library 解决了这个问题。

          只需按照说明 (README) 将一些代码导入包并设置应用程序以响应 livenessreadiness 检查请求。

          并确保在/templates - deployment.yaml 中为livenessProbereadinessProbe 编写正确的pathport

            livenessProbe:
               initialDelaySeconds: {{ .Values.initialDelaySeconds }}
               httpGet:
                 path: /live
                 port: 3000
            readinessProbe:
               initialDelaySeconds: {{ .Values.initialDelaySeconds }}
               httpGet:
                 path: /ready
                 port: 3000
          

          参考:https://developer.ibm.com/tutorials/health-checking-kubernetes-nodejs-application/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-12-05
            • 1970-01-01
            • 2021-02-06
            • 2023-03-11
            • 1970-01-01
            • 2021-01-01
            • 2022-09-26
            • 2020-11-25
            相关资源
            最近更新 更多