【问题标题】:What is the role of timeoutSeconds in kubernetes liveness/readiness probes?timeoutSeconds 在 kubernetes liveness/readiness 探测中的作用是什么?
【发布时间】:2020-08-07 20:24:57
【问题描述】:

我想知道timeoutSeconds 在活跃度或就绪度探测中实际上做了什么?

documentation 声明:

timeoutSeconds:探测超时的秒数。默认为 1 秒。最小值为 1。

不再解释或演示如何使用它以及它的实际作用。

那么这个参数的作用是什么,和periodSeconds有什么区别呢?

我很幸运能找到这个answer,但它对我来说仍然很模糊。特别是在我看到here的这张图之后:

我还尝试使用这些值来了解事情是如何工作的以及这个参数的效果是什么,但没有运气,因为事件似乎不会立即发生。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    periodSeconds 指定在 pod 中运行的容器多久会被探测(测试)一次,timeoutSeconds 指定容器需要多快响应探测。

    假设您已将 periodSeconds 设置为 3,timeoutSeconds 设置为 1。在此设置中,容器将每 3 秒探测一次,每次探测时,它有 1 秒的响应时间,否则将失败一个探针(即使它稍后响应该探针,比如 2 秒)。

    图表非常精确。它告诉您在initialDelaySeconds 期间没有发生任何事情,这是容器在开始被探测之前的时间(因此它有足够的时间来启动所有必要的进程)。在此时间到期后,它开始被探测。

    它成功响应timeoutSeconds 内的第一个探测,然后在再次探测之前有一个延迟periodSeconds。这次它无法在timeoutSeconds 内响应,并且还有另一个periodSeconds 延迟,它一次又一次地失败,然后重新启动 pod,因为在这种情况下它就是这样配置的(在 3 次连续失败的探测后重新启动,由failureThreshold提供)

    【讨论】:

    • 好的。但是如果timeoutSeconds > periodSeconds 呢?测试永远不会失败和/或请求会累积?
    • periodSeconds 仅告诉您发送探测的频率。您可以拥有比failure/successThreshold 的计数更多的处于“待定”状态的探测器。阈值将在探测解决时进行评估(如果这意味着您同时有超过 1 个未解决的探测,您可以说它们会累积)。图片中没有提到它只是因为几乎没有任何合理的理由进行这样的配置。如果您需要在同一时间间隔内评估更多探针,则只需降低阈值即可达到相同的效果。
    • 假设我给 liveness 配置这样的东西:timeout=60s period=30s 那么这是否意味着即使在此之后解决了探测,它仍然会显示失败阈值?
    【解决方案2】:

    这是允许(假设您使用 HTTP 就绪探测)网络服务器响应请求的最大秒数。

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 2023-01-30
      • 2018-02-11
      • 2019-05-18
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2020-04-22
      • 2021-11-12
      相关资源
      最近更新 更多