4.5. 启动探测
启动探测验证服务是否已成功启动,有助于降低启动进程的容器的冷启动时间。启动探测仅在容器初始化阶段运行,且不会定期执行。如果启动探测失败,则容器遵循定义的 restartPolicy
。
4.5.1. 进度期限 复制链接链接已复制到粘贴板!
默认情况下,服务有一个进度期限,用于定义服务的时间限制,以完成其初始启动。使用启动探测时,请确保将进度截止时间设置为超过启动探测所需的最长时间。如果进度截止时间设置得太低,启动探测可能无法在达到截止时间前完成,这可能会阻止服务启动。
如果您在部署中遇到这些条件,请考虑增加进度期限:
- 服务镜像的大小需要很长时间才能拉取。
-
由于初始缓存 priming,该服务需要很长时间才能变为
READY
。 - 集群依赖于自动扩展来为新 pod 分配资源。
4.5.2. 配置启动探测 复制链接链接已复制到粘贴板!
对于 OpenShift Serverless Serving,默认情况下不定义启动探测。您可以在部署配置中为容器定义启动探测。
4.5.3. 配置进度期限 复制链接链接已复制到粘贴板!
您可以配置进度截止时间设置,以指定在系统报告 Knative Revision 失败前部署的最长时间。此时间限制可以以秒为单位或分钟为单位。
要有效地配置进度期限,请考虑以下参数:
-
initialDelaySeconds
-
failureThreshold
-
periodSeconds
-
timeoutSeconds
如果没有在指定的时间限制内实现初始扩展,Knative Autoscaler 组件会将修订版本扩展到 0,
Knative 服务会进入终端 Failed
状态。
默认情况下,进度期限设置为 600 秒。这个值被指定为 Golang time.Duration
字符串,且必须舍入到最接近的秒。
流程
要配置 progress deadline 设置,请在部署配置中使用注解。
进程截止时间设置为 60 秒的示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow