08月20, 2019

记一次Kubernetes故障排查

记一次由于客户更换机器地址导致的集群故障排查记录

问题起因

集群所在公司因为业务需求需要更换机器的IP地址,在没有关闭集群的情况下直接修改了网络相关参数,集群故障

问题表现

无法跨节点访问服务,在不同机器上的容器内互相Ping不通

排查过程

  • 重新部署集群后,首先检查所有kube-system命名空间下的容器与业务命名空间下的容器,发现业务空间下的网关提示无法访问其他服务,unknown host,dns服务可能异常
  • 检查coredns容器的状态和日志,未发现问题
  • 使用iptables -L -n -t nat检查iptables规则, 未发现异常
  • 发现在主节点上可以访问主节点内的服务,使用对应节点的真实IP+端口可访问对应节点上的Node Port服务,怀疑是跨机器通信中的问题
  • 检查Flannel组件和日志,运行正常
  • 在不同机器内的容器之间ping,并使用tcpdump -i flannel.1命令查看网卡数据,发现ping包发出机器的flannel网卡已经发出了数据,但是在接受机器上没有收到
  • 由于检查过组件运行正常,检查容器地址空间也正常,使用ifconfig和route -n命令检查网卡以及路由表,发现了遗留的旧网卡enp4s...,使用的还是旧地址,路由表中还有旧地址的路由信息,检查/etc/hosts,发现主节点上还是在用旧地址作为本机解析地址,怀疑是flannel使用了这些信息导致节点间路由异常
  • 联系对方清掉旧的网卡信息与路由信息,修改hosts文件,重新部署,集群恢复正常

本文链接:https://blog.magichc7.com/post/kubernetes-network-problem-fix.html

-- EOF --

相关评论