做可靠性测试的时候,将其中一个物理机节点重启后,该节点状态变成了notready,describe查看详细信息,如下;
虽仍然显示calico在线,但是还是将该节点上的calico重启了,重启了之后calico的状态一直为pending,查看详细信息,显示已经调度成功;但是迟迟没有创建volume、拉取镜像、启动容器;说明master的功能没啥问题,可能是kubelet不正常;(因为还没有到创建容器那一步,所以应该和docker没关系)
于是将kubelet重启,但是结果依旧;
查看/var/log/daemon.log日志(如果日志被journalctl管理的话,也可以使用journalctl -f -u kubelet来查看),有效的报错日志如下:
原因是缺少一个master ip,如下是 kube-controller-manager的启动参数;
查看kubelet的启动参数
打开/etc/k8s/cfg/bootstrap.kubeconfig和/etc/k8s/cfg/kubelet.kubeconfig文件
然后把master的ip填进去,重启kubelet,问题解决