K8S探针分享

发布于:2024-04-27 ⋅ 阅读:(20) ⋅ 点赞:(0)

一,探针介绍

1 探针类型

livenessProbe:存活探针,用于判断容器是不是健康;如果探测失败,Kubernetes就会重启容器。

readinessProbe:就绪探针,用于判断是否可以将容器加入到Service负载均衡池中,对外提供服务。

startupProbe:启动探针,判断容器内的应用程序是否已启动。

区别:如果提供了启动探测,其他两个探针将会被暂时禁用,直到满足配置,启动探针满足一次探测后,后续不再进行探测。

使用场景:启动探针使用避免容器重启陷入死循环

上图中的配置如果容器启动时间超过20s,就会启动重启策略。如果调高失败次数,服务挂了以后不能及时重启服务。

2 配置参数

initialDelaySeconds

探针初始等待时间,默认是 0 秒

periodSeconds

探测的时间间隔。默认是 10 秒。

timeoutSeconds

探测的超时时间。默认值是 1 秒。

successThreshold

探测的成功数。默认值是 1。

failureThreshold

探测的失败数。默认值是3。

3 探针方式

httpGet

请求接口,类似于curl -I HTTP://podIP:8080/health/liveness接口,返回数值在>=200且<=400代表成功

tcpSocket

连接容器的 80 端口,类似于telnet 80端口

exec

执行 shell 命令

tcpSocket方式:

httpGet方式:

exec方式:

二,spring-boot-starter-actuator

1 K8s探针和spring-boot-starter-actuator联系

2 使用配置

引入依赖:

开启配置:

3 应用测试

存活探针接口:

就绪探针接口:

4 原理分析

健康指标:

org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration

org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator#doDataSourceHealthCheck

org.springframework.boot.actuate.redis.RedisHealthIndicator

5 自定义健康指标

实现healthIndicator接口:

状态映射:

参考来源:Spring Boot Actuator: Production-ready Features

https://spring.io/blog/2020/03/25/liveness-and-readiness-probes-with-spring-boot


网站公告

今日签到

点亮在社区的每一天
去签到