Kubernetes环境下SpringBoot应用程序健康检查

生产环境下,对应用运行的状态需要进行健康检查。本文提供了一种健康检查集成方法。用于检查Kubernetes环境下SpringBoot应用程序运行状态。

一、目标

应用部署到K8S环境下,通过K8S的健康检查探针,对SpringBoot应用进行运行健康监控。

二、实施步骤

2.1 SpringBoot应用程序关键配置

考虑到SpringBoot本身已经提供了一组健康指标器可以去使用,通过引入下述依赖就可以获取观察到程序的运行状态。

2.1.1 集成应用监控依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.1.2 Actuator中应用就绪和存活探针配置

在SpringBoot版本大于2.3时,可以通过以下配置开启应用探针功能:

management:
  server:
    port: 9000
  health:
    readinessstate:
      enabled: true
    livenessstate:
      enabled: true

2.2 Kubernetes 健康检查配置

2.2.1 就绪检查探针配置

initialDelaySeconds:初始延迟,在检查其运行状况之前,容器启动后需要等待多长时间
httpGet:使用Http请求的方式进行检查,k8s也支持TCP连接和命令行。
periodSeconds:执行探测频率(秒),执行探测的频率(以秒为单位)。默认为10秒。最小值为1
timeoutSeconds:超时时间(秒),等待探针完成多长时间。如果超过时间,则认为探测失败。默认为1秒。最小值为1
successThreshold:健康阈值,探测失败后,连续最小成功探测为成功。默认值为1。最小值为1。存活探针和启动探针内,健康阈值必须为1
failureThreshold:不健康阈值,探针进入失败状态时需要连续探测失败的最小次数

在K8S中配置示例:

# deployment等
...
readinessProbe:
  failureThreshold: 3
  httpGet:
    path: /actuator/health/readiness
    port: 9000
    scheme: HTTP
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 3
...

2.2.2 存活检查探针配置

在K8S中配置示例:

# deployment等
...
livenessProbe:
  failureThreshold: 3
  httpGet:
    path: /actuator/health/liveness
    port: 9000
    scheme: HTTP
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 1
...

更多

SpringBoot探针返回结果中,status 如果不是UP下的处理?


参考

https://www.baeldung.com/spring-boot-kubernetes-self-healing-apps
https://www.baeldung.com/spring-liveness-readiness-probes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值