0

我已经在 openshift 中部署了在 spring boot 上运行的服务。spring boot 服务初始化良好,我们看到下面的日志很好。

2020-05-06 19:32:33.930  INFO 1 --- [           main] c.a.r.l.MyApplication   : Started MyApplication in 44.227 seconds (JVM running for 67.578)
2020-05-06 19:32:38.706  INFO 1 --- [nio-8198-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-05-06 19:32:38.709  INFO 1 --- [nio-8198-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-05-06 19:32:38.802  INFO 1 --- [nio-8198-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 93 ms

但是容器就绪状态显示 0/1,5 分钟后我看到此警告并且 pod 重新启动。

The container has been running for more than five minutes and has not passed its readiness check

我明白了

Readiness probe failed: HTTP probe failed with statuscode: 404

有什么问题?

4

1 回答 1

0
Readiness probe failed: HTTP probe failed with statuscode: 404

这表明您为您指定的 URLreadinessProbe不存在 ( HTTP 404)。因此,请检查您readinessProbe的定义方式(调用哪个 URI)并确保有有效的响应。

对于 Spring Boot,有一个可用于 Health 端点的执行器,请参阅以下文档:https ://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html

这是一个例子:

[..]
spec:
  containers:
  - args:
    image: k8s.gcr.io/readiness 
    readinessProbe: 
    httpGet:
      path: /healthz

在上面的示例中,请确保/healthz端点存在。

您可以在OpenShift 文档中找到有关如何配置 Readiness Probes 的更多信息。

于 2020-05-07T08:00:26.163 回答