首先,我的项目是基于 Spring Boot 2.3.5 的,并依赖 spring-boot-starter-actuator 提供的 endpoints 来实现就绪和存活探针,POM 文件如下图:
下面,再让我们来看下与该项目对应的Deployment的YAML文件,如下图:
通过实际运行的日志来看,得出以下几个结论:
- 这里的 initialDelaySeconds 参数,指定了容器启动后要等待多少秒后才启动探针(默认是 0 秒,最小值是 0)。
- 就绪探针与存活探针一样,都是循环执行的,即每隔一段时间就访问一次readinessProbe.httpGet.path 对应的地址,如下图:
- 这里 timeoutSeconds 从字面的意思来理解,是用来控制访问 httpGet.path 的超时时间(默认值是 1 秒,最小值是 1)。实际运行效果来看,TA 还控制着访问 httpGet.path 的时间间隔,如下图:
通过上边的截图,我们可以看到就绪探针和存活探针都是基本上按着间隔 10 秒(即 timeoutSeconds: 10)来循环运行的。