首页 > 解决方案 > Openshift 容器运行状况探测连接被拒绝

问题描述

嗨 openshift 社区,

我目前正在将应用程序迁移到 Openshift,并且由于连接被拒绝而遇到失败的运行状况探测。我觉得奇怪的是,如果我 ssh 进入 pod 并使用 curl localhost:10080/xxx-service/info 它返回 HTTP 200 但如果我使用 IP 地址则失败

这是细节:

  1. POD 状态

在此处输入图像描述

  1. 登录 Openshift 说 Spring boot 成功启动

在此处输入图像描述

  1. Openshift 事件表明由于连接被拒绝而导致探测失败

在此处输入图像描述

  1. 尝试 SSH 到 pod 以使用 localhost 检查是否有效

在此处输入图像描述

不知道为什么IP地址没有在POD级别解析......有谁知道答案或遇到过答案?

标签: spring-bootopenshift

解决方案


在您的情况下,很难说到底是什么问题,因为它是特定于环境的。

一般来说,在使用 Kubernetes 时,您应该避免使用 IP 地址,因为这些地址会在 Pod 重新启动时发生变化(这可能是您所看到问题的根本原因)。

在为您的容器定义就绪和活跃度探测时,我建议您始终使用以下语法来定义您的检查(请注意,它没有指定主机):

...
readinessProbe:
  httpGet:
    path: /xxx-service/info
    port: 10080
  initialDelaySeconds: 15
  timeoutSeconds: 1
...

另请参阅 Kubernetes 或 OpenShift 文档以获取更多信息:


推荐阅读