就绪探测失败,Kubernetes 预期行为

时间:2021-06-23 21:44:32

标签: kubernetes

根据Kubernetes documentation

<块引用>

如果就绪探测失败,端点控制器会从与 Pod 匹配的所有服务的端点中删除 Pod 的 IP 地址。

所以我知道当 readiness 探测失败时 Kubernetes 不会将请求重定向到 pod。

另外,Kubernetes 会杀死 pod 吗?还是一直调用 readiness 探测器直到响应成功?

1 个答案:

答案 0 :(得分:3)

就绪探针的用途是什么?

容器可以使用就绪探测来了解被探测的容器是否准备开始接收网络流量。如果您的容器进入一种状态,它仍然处于活动状态,但无法处理传入的网络流量(启动期间的常见情况),您希望就绪探测失败。这样,Kubernetes 就不会将网络流量发送到尚未准备就绪的容器。如果 Kubernetes 确实过早地将网络流量发送到容器,则可能导致负载均衡器(或路由器)向客户端返回 502 错误并终止请求;否则客户端会收到“连接被拒绝”错误消息。

就绪探针的名称传达了语义含义。实际上,这个探测回答了“对错”的问题:“这个容器准备好接收网络流量了吗?”

失败的就绪探测不会终止或重启容器

活性探针的用途是什么?

活性探测器向 Kubernetes 发送一个信号,表明容器处于活动状态(通过)或死亡(失败)。如果容器处于活动状态,那么 Kubernetes 什么都不做,因为当前状态良好。如果容器已死,则 Kubernetes 会尝试通过重新启动应用程序来修复它。

名称​​liveness 探针也表达了语义。实际上,探针回答了对错问题:“这个容器还活着吗?”

活性探测失败将杀死/重启失败的容器

启动探测器的用途是什么?

Kubernetes 有一个更新的探针,称为启动探针。此探针对于启动缓慢的应用程序很有用。它是在就绪或活跃度探测器上增加 initialDelaySeconds 的更好选择。启动探针允许应用程序准备就绪,加入就绪和活跃度探针,它可以提高应用程序的可用性。

一旦启动探测器成功一次,活性探测器就会接管以提供对容器死锁的快速响应。如果启动探测从未成功,容器在 failureThreshold * periodSeconds(总启动超时)后被杀死,并将被杀死并重新启动,取决于 pod 的 restartPolicy。