【发布时间】:2021-03-09 09:35:09
【问题描述】:
我正在使用 Kubernetes terminationGracePeriodSeconds 字段测试 Spring Boot 2.3(server.shutdown=graceful和 Tomcat Web 服务器)中的新功能正常关闭。
当正常关闭阶段开始时,新的 HTTP 请求会按预期被拒绝,此时应详细说明当前请求,直到可配置的超时 (spring.lifecycle.timeout-per-shutdown-phase)。
奇怪的行为是 Spring boot actuator liveness 结果,因为在这种情况下,liveness 端点是不可达的。
因此,kubelet 无法知道微服务在关闭期间是否仍然存在或因其他原因而卡住。由于K8s liveness probe不依赖terminationGracePeriodSeconds字段,POD会根据自己的K8s liveness配置重启,Spring boot微服务由于野蛮重启无法优雅关闭。
我错过了什么吗?我该如何应对这种情况?
【问题讨论】:
标签: java spring-boot shutdown livenessprobe graceful-shutdown