我在我们的集群中追踪一个未知的超时问题,并发现了一些有趣的东西。
我们目前有 30 个 Pod 用于服务。当我运行时,kubectl get event
这 30 个 pod 都没有准备好。他们所有人的“LASTSEEN”都不到 10 分钟,而且他们一直在失败。
但是,我仍然可以毫无问题地访问该服务。
我认为 Kube 会删除那些无法访问的 pod。
为什么我仍然可以访问该服务?我已经加倍检查了它们中的每一个仍然每 10 分钟左右失败一次。
我在我们的集群中追踪一个未知的超时问题,并发现了一些有趣的东西。
我们目前有 30 个 Pod 用于服务。当我运行时,kubectl get event
这 30 个 pod 都没有准备好。他们所有人的“LASTSEEN”都不到 10 分钟,而且他们一直在失败。
但是,我仍然可以毫无问题地访问该服务。
我认为 Kube 会删除那些无法访问的 pod。
为什么我仍然可以访问该服务?我已经加倍检查了它们中的每一个仍然每 10 分钟左右失败一次。
首先回答标题中的主要问题。
引用官方文档关于就绪探测概念
或在博客文章之后,它很好地解释了活跃度或就绪度探测之间的主要区别
现在谈谈您仍然可以访问您的服务的原因。我假设您有一些部署对象,它控制您的应用程序实例的生命周期。请注意,更新部署时,旧副本也会继续运行,直到新副本上的探测成功。这意味着如果您的新 pod 以某种方式损坏,它们将永远不会看到流量,您的旧 pod 将继续为部署提供所有流量。