今天部署kubernetes集群时,发现weave-net一直在crash-off,导致节点无法ready。
进行排查:
- 首先检查节点的docker服务,尝试run一个container,确定docker正常工作。
- 查看weave-net的pod状态,发现其中的weave-npc container正常工作,只是weave-kube不断重启。
- 因为节点是arm架构机器,重新拉取了arm架构镜像,检查sha值,确定镜像无误。
- 检查weave-kube的log(kubernetes logs),发现只有一行输出:Network 10.32.0.0/12 overlaps with existing route 10.0.0.0/8 on host,确定是network的问题,而且应该是route的问题。
- 检查路由表(ip route),发现有一行10.0.0.0/8的route,确定该route无用以后,删除重启pod,恢复正常。
该问题在这篇文章中也提到了,这里也做分享:
https://tonybai.com/2016/12/30/install-kubernetes-on-ubuntu-with-kubeadm-2/
除了这几个检查思路以外,以前还遇到swap未默认关闭,导致kubelet服务起不来、无法部署pod相关container的问题,也可能是一个隐含的原因,在此记录。