曾国藩:一勤天下无难事

K8s默认的services ip不通

2019.03.21

写在前边的话

今天团队的小测试集群突然挂掉,完全不能访问,紧急任务排查问题

问题现象

平台挂掉,集群内有一台master节点的容器全部down掉,其中大部分pod显示Evicted状态

排查

登录三台master节点分别get node发现其中有一台一直未返回,docker ps发现此节点的所有容器down掉,其它两台节点正常。 通过其它两台正常节点排查发现kube-dns\flanne\kube-proxy等pod全部是失败状态

  • 在有问题节点查看相关route \ ip等信息,发现也全是缺少相关路由,cni0等网卡;
  • 通过查看flannel容器日志发现:

    Failed to create SubnetManager: error retrieving pod spec for 'kube-system/kube-flannel-8hpcf': Get https://10.96.0.1:443/api/v1/namespaces/kube-system/pods/kube-flannel-8hpcf: dial tcp 10.96.0.1:443: i/o timeout

  • 通过curl 10.96.0.1:443 发现不通

  • 通过journalctl -fu kubelet也未发现有用信息

  • iptable也是正常

  • selinux也是关闭状态

此时已经暂时无思路,直接来个简单粗暴的reboot,但重启后问题依旧

解决

本想着将此节点变成NotReady状态,然后再继续查问题

  • 移动网卡文件

    mv /etc/cni/net.d/10-flannel.conflist ~/
    systemctl restart kubelet
    
  • 重启服务

    systemctl restart kubelet
    
  • 此时节点已经变成NotReady状态

    kubectl get no
    xuejian-global-01   Ready     master    73d       v1.11.6
    xuejian-global-03   Ready     master    73d       v1.11.6
    xuejian-global-02   NotReady   master    73d       v1.11.6
    xuejian-slave-01   Ready     node      10d       v1.11.6
    
  • 将文件移回

    cp ~/10-flannel.conflist /etc/cni/net.d/10-flannel.conflist
    

    此时节点竟然正常了,可以确定的是其它的什么也没有操作,它竟然恢复了

    疑问

    问题其实还是没有解决的,不清楚具体原因是为啥,等明天再来继续排查吧,或者希望看到的大神能给个讲解