【问题标题】:Spring Boot custom Kubernetes readiness probeSpring Boot 自定义 Kubernetes 就绪探针
【发布时间】:2021-12-03 05:31:35
【问题描述】:
【问题讨论】:
标签:
spring-boot
kubernetes
kubernetes-health-check
【解决方案1】:
customCheck 是您的自定义 HealthIndicator 的键。给定 HealthIndicator 的键是不带 HealthIndicator 后缀的 bean 的名称
您可以阅读:
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.health.writing-custom-health-indicators
您正在定义 readinessProbe,因此可能点击 /actuator/health/readiness 是更好的选择。
public class CustomCheckHealthIndicator extends AvailabilityStateHealthIndicator {
private final YourService yourService;
public CustomCheckHealthIndicator(ApplicationAvailability availability, YourService yourService) {
super(availability, ReadinessState.class, (statusMappings) -> {
statusMappings.add(ReadinessState.ACCEPTING_TRAFFIC, Status.UP);
statusMappings.add(ReadinessState.REFUSING_TRAFFIC, Status.OUT_OF_SERVICE);
});
this.yourService = yourService;
}
@Override
protected AvailabilityState getState(ApplicationAvailability applicationAvailability) {
if (yourService.isInitCompleted()) {
return ReadinessState.ACCEPTING_TRAFFIC;
} else {
return ReadinessState.REFUSING_TRAFFIC;
}
}
}