【问题标题】:Why do we use startup probe and not the livenes probe with initialDelaySeconds parameter为什么我们使用启动探针而不是带有 initialDelaySeconds 参数的 livenes 探针
【发布时间】:2021-05-23 15:04:04
【问题描述】:

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

感谢您的回答

【问题讨论】:

    标签: kubernetes startup probe


    【解决方案1】:

    注意kubernetes docs中给出的例子:

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

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

    因此启动探测器尝试 30 次,每次尝试之间等待 10 秒,并认为其工作在第一次成功时完成,然后将令牌传递给活性探测器立即

    使用您的方法,即使应用程序已经启动,在该应用程序上的第一个活跃度探测直到 300 秒过去后才会被触发 - 无论应用程序是否实际花费了大约 300 秒开始。

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

    【讨论】:

    • 你好raina,谢谢你的提问。这对我理解有很大帮助,因为我无法通过文档理解:)
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    相关资源
    最近更新 更多