我的 pod 有时会出现自动重启,但我还没有活跃度。我读到它可以是 pod 的生命周期,当你不指定 RestartPolicy 时,默认情况下是 Always,当容器崩溃时,它会自动重启。但是,我感到困惑,因为我认为 liveness 应该这样做。并且由于生命周期已经这样做了,我应该使用活性探针做什么?既然是两个不同的东西,那有什么区别呢?
问问题
80 次
2 回答
1
如果你在容器中的应用自己崩溃了,那么 k8s 会自动重启它。如果您有 liveness probe,如果 liveness probe 失败,您的 POD 可能会重新启动。因此,在您的情况下,由于您没有活性探针,因此可能是由于您的应用程序崩溃造成的。
并且由于生命周期已经这样做了,我应该使用活性探针做什么?
假设您的应用程序能够进入不再执行请求的状态,但它没有崩溃(也就是它仍然启动并运行)。例如,如果您在某处的代码中出现死锁,则可能会发生这种情况。在这种情况下,活性探针可能会很有用。探针可以测试应用程序是否处于这种死锁状态。如果是这样,则活性探测将失败,并且 POD 重新启动。
既然是两个不同的东西,那有什么区别呢?
区别在于您的应用程序是否可以进入有效关闭的状态(无法正确执行请求),同时在技术上仍保持正常运行(容器中的 PID 仍在运行)。如果您的应用程序可以进入这种状态,那么我会说活性探测是个好主意。如果您不知道这个问题的答案,这也是一个好主意。如果进行活性探测不会造成任何伤害,那么这可能是一个好主意。如果没有问题,您只想避免重新启动一个完美的 POD。
于 2020-10-21T15:50:37.413 回答
0
请参阅解释答案的本文档。
于 2020-10-21T15:44:18.040 回答