- 作者:XuChao
- 链接:https://xuchao918.github.io/2020/03/18/Kubernetes%E8%8A%82%E7%82%B9%E9%A2%91%E7%B9%81NotReady/
一.环境概述
- Kubernetes版本:1.12.6
- Docker版本:17.06.2-ce-3
- 操作系统版本:CentOS 7.4.1708
二.问题现象
1.钉钉收到Pod容器运行状态异常和服务接口超时监控告警,查看到K8s Worker节点频繁处于NotReady状态,如重启Kubelet和节点恢复正常一会后又变成NotReady。
2.容器大部分处于Exit状态,Pod大部分处于Pending、Unknown等状态。这里说一下,Pod处于Pending、Unknown等状态代表什么含义,前者基本上是scheduler失败的问题如节点资源不足等,后者则是Pod所在的节点有问题如kublet和其他K8s组件通信异常等。
三.问题排查
定位问题的思路
A. 查看notReady节点状态信息,提示无法连接到docker,实际上该节点的docker服务是处于Active运行状态的,这就说明k8s的某个组件和docker daemon交互有问题。不用想,K8s组件中和docker daemon交互最紧密的服务当然是Kubelet。
$ kubectl describe node $NODE_NAME