记一次k8s线上容器网络问题

文章描述了一个线上系统出现页面无法访问的问题,经过排查确定为容器间的跨宿主机通信故障。虽然物理节点间通信正常,防火墙关闭,但容器网络组件Flannel重启无效。最终通过重启所有pod恢复服务,但未能找到根本原因,怀疑可能涉及宿主机默认路由配置。希望有专家能提供进一步的指导。
摘要由CSDN通过智能技术生成

现象

线上突然报出系统页面无法访问

初步排查

  1. 查看集群是否正常
kubectl get nodes
# 结果集群正常
  1. 查看服务是否正常
kubectl get pod -n xxx|grep 'your pod'

进入容器看服务是否可以curl通

kubectl exec -it -n xxx xxx -- /bin/bash
curl -v localhost:xxx
#可以正常访问

定位为网络问题,继续排查

首先,物理节点可以正常互相ping通。
查看物理节点防火墙等配置:

systemctl status firewalld
# 已关闭

故问题可以确认在容器网络。

找运维同学排查

网络组件我们这使用的flannel,但是重启相关组件仍无法解决问题。
使用route等命令查看默认路由,没有改动。
检查容器间跨宿主机是否正常访问:

kubectl get pods -n xxx -owide
# 得到两个不同节点上的pod,其中一个容器需要有curl命令
# 进入那个pod,使用curl -v ip:port,测试是否能正常访问另一个物理节点上的pod

结论:不行,但是同一个宿主机下的pod是可以正常访问的。
至此基本了解到是容器间跨宿主机无法正常访问,但是由于我们会定时清理容器日志,现场都丢失了,故未能找到具体问题。经运维同学搜索解决方案,发现pod重启后即可恢复,故最后通过重启所有pod解决。

后记

最后还是未能找到具体问题,运维同学说这种情况一种可能是宿主机默认路由配置有误,但是route命令未发现明显问题。最后是硬通过重启所有pod恢复的。本人水平有限,对于容器网络这块不是很懂,这里也希望有大神可以在评论中指点下,多谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值