Kubernetes Openshift就绪性和活动性探测即使在http url不正确的情况下也不会失败
我正在OpenShift Pod中运行Spring Boot 2.0.0应用程序。为了执行就绪性和活动性探测,我依赖于spring boot执行器健康检查。我的应用程序属性文件具有以下属性:Kubernetes Openshift就绪性和活动性探测即使在http url不正确的情况下也不会失败,kubernetes,openshift,spring-boot-actuator,readinessprobe,livenessprobe,Kubernetes,Openshift,Spring Boot Actuator,Readinessprobe,Livenessprobe,我正在OpenShift Pod中运行Spring Boot 2.0.0应用程序。为了执行就绪性和活动性探测,我依赖于spring boot执行器健康检查。我的应用程序属性文件具有以下属性: server.address=127.0.0.1 management.server.address=0.0.0.0 server.port=8080 management.server.port=8081 management.endpoints.enabled-by-default=false mana
server.address=127.0.0.1
management.server.address=0.0.0.0
server.port=8080
management.server.port=8081
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true
management.endpoint.health.enabled=true
management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=always
management.security.enabled=false
遵循准备就绪和活动性探测器的相关配置
livenessProbe:
failureThreshold: 3
httpGet:
path: /mmcc
port: 8081
scheme: HTTP
initialDelaySeconds: 35
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 15
readinessProbe:
failureThreshold: 3
httpGet:
path: /jjkjk
port: 8081
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 15
我的期望是,对于这些随机URL,我的就绪性和活跃性探测应该会失败,但它们正在成功。
不知道我在这里错过了什么。请帮忙。Simon的回答给了我一个起点,我寻找了
curl-vvv localhost:8081/jjkjk
输出。
URL将我重定向到登录URL,所以我想这是因为我的类路径中有spring安全性。
因此,我在我的属性文件中添加了:
management.endpoints.web.exposure.include=health,info
并补充说
@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
.anyRequest().permitAll()
}
}
这就解决了我的问题,允许在没有凭据的情况下访问url。当返回HTTP错误代码(通常是HTTP 5XX/HTTP 4XX)时,探测将失败。您能否将容器内部的
curl-vvv localhost:8081/jjkjk
输出添加到您的问题中?