原文地址:https://mp.weixin.qq.com/s/aNt1uI1RWf73Y3Dd6gmnLg
image
被这个问题困扰一段时间了,先后进行了各种假设,然后又一一推翻,最后找到的原因让人很意外。
这里简单记录一下问题的排查过程,然后直接抛答案,如果想了解详细的调查过程、调查过程中的所思所想和走过的弯路,点击「阅读原文」。
出现问题的集群规模不大,总共 200 多个 Node,最早是从 Kubernetes 的事件中发现这个问题的,同事反馈时不时地监听到 NodeNotReady 事件,但是登陆集群查看时 Node 的状态都是 Ready。
一开始忙其它的事情没太在意,后来这种「幽灵式」的 NodeNotReady 越来越频繁,并且持续的时间越来越长,不但触发了报警系统,而且 Node 上的 Pod 也被漂移了,开始着手调查。
线索非常少,检查 kube-controller-manager 的日志,只看到一条 NodeNotReady 的事件日志,在 kubelet 的日志里也翻不到有价值的信息。调整日志级别后,只从 kube-controller-manager 的日志里得知一个事实: