Openshift 容器运行状况探测连接被拒绝
Openshift container health probe connection refused
嗨,openshift 社区,
我目前正在将一个应用程序迁移到 Openshift,并且由于连接被拒绝而遇到失败的运行状况探测。我觉得奇怪的是,如果我 ssh 进入 pod 并使用
卷曲 localhost:10080/xxx-service/info
它 returns HTTP 200 但如果我使用 IP 地址然后它失败
这是详细信息:
- POD 状态
- Openshift 中的日志显示 Spring 启动成功
- Openshift 事件说探测由于连接被拒绝而失败
- 尝试通过 SSH 连接到 pod 以检查使用本地主机是否有效
不确定为什么 IP 地址未在 POD 级别解析...。有人知道答案或遇到过吗?
很难说你的情况到底是什么问题,因为它是特定于环境的。
一般来说,您应该避免在使用 Kubernetes 时使用 IP 地址,因为这些会在 Pod 重新启动时发生变化(这可能是您遇到的问题的根本原因)看到).
在为您的容器定义就绪性和活性探测时,我建议您始终使用以下语法来定义您的检查(请注意它不指定主机):
...
readinessProbe:
httpGet:
path: /xxx-service/info
port: 10080
initialDelaySeconds: 15
timeoutSeconds: 1
...
另请参阅 Kubernetes 或 OpenShift 文档以获取更多信息:
我找到了根本原因,原来是 Spring 相关。
这是一个 Spring 启动应用程序,被打包为 WAR 文件并部署到 Tomcat 服务器。在 application.properties 中,它有这个字段:
server.address=127.0.0.1
删除它已解决此问题。
嗨,openshift 社区,
我目前正在将一个应用程序迁移到 Openshift,并且由于连接被拒绝而遇到失败的运行状况探测。我觉得奇怪的是,如果我 ssh 进入 pod 并使用 卷曲 localhost:10080/xxx-service/info 它 returns HTTP 200 但如果我使用 IP 地址然后它失败
这是详细信息:
- POD 状态
- Openshift 中的日志显示 Spring 启动成功
- Openshift 事件说探测由于连接被拒绝而失败
- 尝试通过 SSH 连接到 pod 以检查使用本地主机是否有效
不确定为什么 IP 地址未在 POD 级别解析...。有人知道答案或遇到过吗?
很难说你的情况到底是什么问题,因为它是特定于环境的。
一般来说,您应该避免在使用 Kubernetes 时使用 IP 地址,因为这些会在 Pod 重新启动时发生变化(这可能是您遇到的问题的根本原因)看到).
在为您的容器定义就绪性和活性探测时,我建议您始终使用以下语法来定义您的检查(请注意它不指定主机):
...
readinessProbe:
httpGet:
path: /xxx-service/info
port: 10080
initialDelaySeconds: 15
timeoutSeconds: 1
...
另请参阅 Kubernetes 或 OpenShift 文档以获取更多信息:
我找到了根本原因,原来是 Spring 相关。
这是一个 Spring 启动应用程序,被打包为 WAR 文件并部署到 Tomcat 服务器。在 application.properties 中,它有这个字段:
server.address=127.0.0.1
删除它已解决此问题。