Spring Boot2.6+升级后Config Server健康检查重复打日志致K8s Pod崩溃
Spring Cloud Config Server升级后健康检查日志泛滥问题解决
问题原因
升级至Spring Boot 2.6.6(对应Spring Cloud 2021.0.x版本)后,Spring Cloud Config Server的健康检查逻辑发生变更:默认情况下,/actuator/health端点的健康检查会触发配置仓库的刷新操作,进而调用NativeEnvironmentRepository加载属性源。kube-probe的高频调用会不断生成INFO级别的日志,最终因日志量过大导致K8s Pod崩溃重启。
可行解决方案
调整日志级别:直接降低
NativeEnvironmentRepository的日志输出级别,避免INFO日志泛滥
在配置文件中添加以下配置:logging: level: org.springframework.cloud.config.server.environment.NativeEnvironmentRepository: WARN或者使用properties格式:
logging.level.org.springframework.cloud.config.server.environment.NativeEnvironmentRepository=WARN禁用配置仓库健康校验:关闭健康检查对配置仓库的状态校验,从根源上避免触发属性源加载
management: health: configserver: enabled: false若需要保留部分健康检查能力,可自定义健康指示器,跳过配置仓库的刷新逻辑。
自定义EnvironmentController(侵入性方案):如果确认问题源于
EnvironmentController,可以自定义该控制器并重写相关方法,避免健康检查时加载属性源。但此方案侵入性强,仅建议在前两种方案无效时使用。
内容的提问来源于stack exchange,提问作者夢のの夢
相关产品推荐
相关产品推荐

