首先找出来保存很久的跨主机pod通信流程图。

简单解读下:
这样整个数据包的传递就完成了,
现象
kubernetes 网络不可用,测试结果是只能访问本机的podip、clusterip,访问别的机器的都过不去。
排查
查看flannel的日志,发现写入的规则都是10.244/16网段的

而我设置的pod网段都是10.20/24网段中。很明显这里的规则的意思是把10.244/16网段的流量转发到10.20/24网段了。有问题。。。
紧接着查看下加载的配置文件的文件,发现network网段在10.244.0.0/16网段,而子网在10.20.0.1/24网络,网络网段不匹配

解决
- kubectl get cm -n kube-system kube-flannel-cfg -o yaml
- net-conf.json: |
- {
- "Network": "10.20.0.0/16",
- "Backend": {
- "Type": "vxlan"
- }
- }
修改这里的network网段的位置,然后清除iptables,发现网络正常了。
上一篇:物联网的安全要点分析
下一篇:运维之三大监控对比