4.5. 启动探测


启动探测验证服务是否已成功启动,有助于降低启动进程的容器的冷启动时间。启动探测仅在容器初始化阶段运行,且不会定期执行。如果启动探测失败,则容器遵循定义的 restartPolicy

4.5.1. 进度期限

默认情况下,服务有一个进度期限,用于定义服务的时间限制,以完成其初始启动。使用启动探测时,请确保将进度截止时间设置为超过启动探测所需的最长时间。如果进度截止时间设置得太低,启动探测可能无法在达到截止时间前完成,这可能会阻止服务启动。

如果您在部署中遇到这些条件,请考虑增加进度期限:

  • 服务镜像的大小需要很长时间才能拉取。
  • 由于初始缓存 priming,该服务需要很长时间才能变为 READY
  • 集群依赖于自动扩展来为新 pod 分配资源。

4.5.2. 配置启动探测

对于 OpenShift Serverless Serving,默认情况下不定义启动探测。您可以在部署配置中为容器定义启动探测。

流程

  • 通过修改部署配置,为您的服务定义启动探测。以下示例显示了有两个容器的配置:

    定义的星号探测示例

    apiVersion: serving.knative.dev/v1
    kind: Service
    # ...
    spec:
      template:
        spec:
           containers:
            - name: first-container
              image: <image>
              ports:
                - containerPort: 8080
              # ...
              startupProbe: 1
              httpGet:
                port: 8080
                path: "/"
            - name: second-container
              image: <image>
              # ...
              startupProbe: 2
              httpGet:
                port: 8081
                path: "/"

    1
    启动 第一容器 的 探测.
    2
    第二容器 启动探测.

4.5.3. 配置进度期限

您可以配置进度截止时间设置,以指定在系统报告 Knative Revision 失败前部署的最长时间。此时间限制可以以秒为单位或分钟为单位。

要有效地配置进度期限,请考虑以下参数:

  • initialDelaySeconds
  • failureThreshold
  • periodSeconds
  • timeoutSeconds

如果没有在指定的时间限制内实现初始扩展,Knative Autoscaler 组件会将修订版本扩展到 0, Knative 服务会进入终端 Failed 状态。

默认情况下,进度期限设置为 600 秒。这个值被指定为 Golang time.Duration 字符串,且必须舍入到最接近的秒。

流程

  • 要配置 progress deadline 设置,请在部署配置中使用注解。

    进程截止时间设置为 60 秒的示例

    apiVersion: serving.knative.dev/v1
    kind: Service
    ...
    spec:
      template:
        metadata:
           annotations:
                serving.knative.dev/progress-deadline: "60s"
        spec:
            containers:
                - image: ghcr.io/knative/helloworld-go:latest

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.