启动探针是在Kubernetes 1.18版本中引入的,用于在容器启动时检查应用程序是否启动。与就绪探针和存活探针不同,启动探针是在“容器启动时”进行的,而不是在“容器运行时”进行的。
以下是启动探针的使用场景。
避免不必要的重启:由于某种原因(如节点负载高)导致应用程序启动较慢,使得“initialDelaySeconds”字段的值小于应用程序启动时间,那么初次存活探针必然是失败的。这种情况如果持续存在,则将导致Pod频繁的重启。通过配置启动探针,你可以延迟开始执行存活探针的时间,等待启动探针成功后,再由存活探针继续监控。
依赖其他服务的应用:如果应用程序依赖于其他服务(如数据库、消息队列),则需要等待这些服务准备就绪后才能启动应用程序。通过配置启动探针,你可以检查依赖服务是否准备就绪。
启动探针配置示例如下:
在上述配置中,“startupProbe”部分定义了启动探针,它通过发送HTTP请求来判定应用程序是否启动。其中,“failureThreshold”字段用于设置探针失败的次数,“periodSeconds”字段用于设置探针执行的间隔时间。这两个字段表示应用程序将有5 min(30×10 = 300 s)的时间来完成启动过程。如果在这段时间内探针成功,则启动探针将不再继续执行,存活探针将接管以进行持续监控;否则,容器会被重新启动。