繁体   English   中英

Pod 生命周期和活跃度之间有什么区别?

[英]What's the difference between Pod lifecycle and liveness?

我的 pod 有时会自动重启,但我还没有活动。 我读到这可能是 pod 的生命周期,当您不指定 RestartPolicy 时,默认情况下为 Always,并且当 Container 崩溃时,它会自动重新启动。 但是,我感到困惑,因为我认为活力应该这样做。 由于生命周期已经这样做了,我应该使用活性探针做什么? 既然是两种不同的东西,那有什么区别呢?

如果您在容器中的应用程序自行崩溃,那么 k8s 将自动重新启动它。 如果您有一个活性探测,如果活性探测失败,您的 POD 可能会重新启动。 因此,在您的情况下,由于您没有活跃度探测,这可能是由于您的应用程序崩溃。

由于生命周期已经这样做了,我应该使用活性探针做什么?

假设您的应用程序能够进入不再执行请求的状态,但它没有崩溃(也就是它仍在运行)。 例如,如果您在某处的代码中出现死锁,则可能会发生这种情况。 在这种情况下,活性探针可能会很有用。 探测器可以测试应用程序是否处于这种死锁状态。 如果是这样,活性探测将失败,并且 POD 会重新启动。

既然是两种不同的东西,那有什么区别呢?

不同之处在于您的应用程序是否可以进入有效关闭(无法正确执行请求)的状态,同时在技术上仍保持正常运行(容器中的 PID 仍在运行)。 如果您的应用程序可以进入这样的状态,那么我会说活性探针是一个好主意。 如果您不知道这个问题的答案,这也可能是一个好主意。 如果通过活性探测不会造成任何伤害,那么这可能是一个好主意。 如果没有问题,您只想避免重新启动完美的 POD。

请参阅文档这也解释了答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM