Kubernetes 为什么我们使用startup probe而不是带有initialDelaySeconds参数的livenes probe

Kubernetes 为什么我们使用startup probe而不是带有initialDelaySeconds参数的livenes probe,kubernetes,startup,probe,Kubernetes,Startup,Probe,我有一个关于状态调查的问题。当我阅读文档时,我了解到它主要是为需要很长时间启动的应用程序(如遗留应用程序)开发的。因此,为了不杀死应用程序(运行它的容器),我们设置了一个启动探测,例如5分钟,以便应用程序有所有的时间来启动。我的问题是:为什么我们不能设置一个活性探针?我们可以使用initialDelaySeconds参数并将其值设置为大约300秒 感谢您的回答请注意以下示例: 这里两个探针之间的关键区别不是延迟,而是容错性。对于StartupProbe,预计应用程序启动缓慢。。。有时候。但大多数

我有一个关于状态调查的问题。当我阅读文档时,我了解到它主要是为需要很长时间启动的应用程序(如遗留应用程序)开发的。因此,为了不杀死应用程序(运行它的容器),我们设置了一个启动探测,例如5分钟,以便应用程序有所有的时间来启动。我的问题是:为什么我们不能设置一个活性探针?我们可以使用initialDelaySeconds参数并将其值设置为大约300秒

感谢您的回答

请注意以下示例:

这里两个探针之间的关键区别不是延迟,而是容错性。对于StartupProbe,预计应用程序启动缓慢。。。有时候。但大多数时候,它实际上可能已经足够快了

因此,startup probe尝试30次,每次尝试之间等待10秒,并认为第一次成功时其作业已完成,之后立即将令牌传递给liveness probe

使用您的方法,即使应用程序已经启动,第一个活跃度探测器也不会在300秒后启动,无论应用程序是否实际启动约300秒

当然,对于总是需要大量启动时间的应用程序,这种方法可能是有意义的。

请注意以下示例:

这里两个探针之间的关键区别不是延迟,而是容错性。对于StartupProbe,预计应用程序启动缓慢。。。有时候。但大多数时候,它实际上可能已经足够快了

因此,startup probe尝试30次,每次尝试之间等待10秒,并认为第一次成功时其作业已完成,之后立即将令牌传递给liveness probe

使用您的方法,即使应用程序已经启动,第一个活跃度探测器也不会在300秒后启动,无论应用程序是否实际启动约300秒


当然,对于总是需要大量启动时间的应用程序,这种方法可能是有意义的。

你好,雷娜,谢谢你的提问。这对我理解有很大帮助,因为我无法通过文档理解:)你好,雷娜,谢谢你的问题。这对我理解有很大帮助,因为我无法通过文档理解:)
livenessProbe:
  httpGet:
    path: /healthz
    port: liveness-port
  failureThreshold: 1
  periodSeconds: 10

startupProbe:
  httpGet:
    path: /healthz
    port: liveness-port
  failureThreshold: 30
  periodSeconds: 10