设为首页 - 加入收藏 镇江站长网 (http://www.52zhenjiang.com)- 国内知名站长资讯亚博游戏平台,提供最新最全的站长资讯,创业经验,亚博游戏平台建设等!
热搜: 2018 如何 中国 互联网
当前位置: 首页 > 运营中心 > 亚博游戏平台设计 > 教程 > 正文

本文踩坑之k8s网络不通的问题排除

发布时间:2019-09-30 00:58 所属栏目:[教程] 来源:艺术生的运维路
导读:首先找出来保存很久的跨主机pod通信流程图。 简单解读下: 数据从源容器中发出后,经由所在主机的Docker0虚拟网卡转发到flannel0虚拟网卡,这是个P2P的虚拟网卡,flanneld服务监听在网卡的另外一端。 Flannel通过Etcd服务维护了一张节点间的路由。 源主机

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

本文踩坑之k8s网络不通的问题排除

简单解读下:

  • 数据从源容器中发出后,经由所在主机的Docker0虚拟网卡转发到flannel0虚拟网卡,这是个P2P的虚拟网卡,flanneld服务监听在网卡的另外一端。
  • Flannel通过Etcd服务维护了一张节点间的路由。
  • 源主机的flanneld服务将原本的数据内容UDP封装后根据自己的路由表投递给目的节点的flanneld服务,数据到达以后被解包,然后直 接进入目的节点的flannel0虚拟网卡,然后被转发到目的主机的Docker0虚拟网卡,最后就像本机容器通信一下的有Docker0路由到达目标容 器。

这样整个数据包的传递就完成了,

现象

kubernetes 网络不可用,测试结果是只能访问本机的podip、clusterip,访问别的机器的都过不去。

排查

查看flannel的日志,发现写入的规则都是10.244/16网段的

本文踩坑之k8s网络不通的问题排除

而我设置的pod网段都是10.20/24网段中。很明显这里的规则的意思是把10.244/16网段的流量转发到10.20/24网段了。有问题。。。

紧接着查看下加载的配置文件的文件,发现network网段在10.244.0.0/16网段,而子网在10.20.0.1/24网络,网络网段不匹配

本文踩坑之k8s网络不通的问题排除

解决

  1. kubectl?get?cm?-n?kube-system?kube-flannel-cfg?-o?yaml??
  2. net-conf.json:?|??
  3. {??
  4. "Network":?"10.20.0.0/16",??
  5. "Backend":?{??
  6. "Type":?"vxlan"??
  7. }??
  8. }?

修改这里的network网段的位置,然后清除iptables,发现网络正常了。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章