例如,假设我有一个 pods ,对它的 liveness 探针执行GET请求,其超时时间为5秒,周期为10秒。这些时间线中的哪一个代表探测的时间?
以来以来的探针模式:

0s: liveness probe initiated
5s: liveness probe times out
10s: liveness probe initiated again because 10 seconds have elapsed since the start of the last probe
或自超时模式:
0s: liveness probe initiated
5s: liveness probe times out
15s: 10 seconds have elapsed since the timeout occurred, so the probe fires again
在前者中,两次探测之间总是有10秒的间隔,而在后者中,两次探测之间可能存在10到15秒之间的任何时间,具体取决于请求返回的速度。 Kubernetes使用哪种方法?

最佳答案

Kubernetes livenessProbe的工作方式如下:

  • periodSeconds是从上次发送探测时开始计算的时间
  • 永远不会同时运行两个探针,如果探针尚未超时,则一个新探针将等待

  • 因此,在您的情况下(timeoutSeconds=5periodSeconds=10),探测将如下所示:
    0s: liveness probe initiated
    5s: liveness probe times out
    10s: liveness probe initiated again because 10 seconds have elapsed since the start of the last probe
    
    如果您有相反的要求(timeoutSeconds=10periodSeconds=5),则探测将如下所示:
    0s: liveness probe initiated
    10s: liveness probe times out
    10s: liveness probe initiated again
    

    关于kubernetes - Kubernetes探针配置中的periodSeconds是否从上次探针时间或上次响应/故障时间开始计数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64230250/

    10-12 16:55