即使使用不正确的 http url,Openshift 就绪性和活性探测也永远不会失败
Openshift readiness and liveness probe never failing even with incorrect http url
我是 运行 OpenShift Pod 中的 Spring Boot 2.0.0 应用程序。为了执行就绪和活跃度探测,我依赖 spring 启动执行器健康检查。我的应用程序属性文件具有以下属性:
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
下面是readiness和liveness probe的相关配置。
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。
我是 运行 OpenShift Pod 中的 Spring Boot 2.0.0 应用程序。为了执行就绪和活跃度探测,我依赖 spring 启动执行器健康检查。我的应用程序属性文件具有以下属性:
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
下面是readiness和liveness probe的相关配置。
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。