kubernetes跨网段pod网络不通问题

kubernetes跨网段问题

k8s的master是10.10.10.0网段,新加了一些node,网段是172.16.100.0网段,造成容器直接网络不能相互访问。

部署k8s的时候也部署了flannel,它提供容器的跨主机通信支持的。部署参考flannel中vxlan原理参考flannel上。

> etcdctl ls -r         #列出键值存储的目录
> etcdctl get /flannel/network/config       #查看键值存储
{"Network":"10.233.0.0/16","SubnetLen":25,"Backend":{"Type":"host-gw","VNI":1}}     #host-gw介绍如下

在数据层面,flannel支持基于路由的互联方案如host-gw、AliVPC、AWS VPC、GCE和基于封装的路由方案如UDP封装、vxlan封装、IPIP和IPSec等

1、host-gw 模式通过建立主机IP到主机上对应flannel子网的mapping,以直接路由的方式联通flannel的各个子网。这种互联方式没有vxlan等封装方式带来的负担,通过路由机制,实现flannel网络数据包在主机之间的转发。但是这种方式也有不足,那就是所有节点之间都要相互有点对点的路由覆盖,并且所有加入flannel网络的主机需要在同一个LAN里面

2、VXLAN 是一个在已有的3层物理网络上构建2层逻辑网络的协议。参考了如下资料。

> etcdctl set /flannel/network/config '{"Network":"10.233.0.0/16","SubnetLen":25,"Backend":{"Type":"vxlan","VNI":1}}'   #修改成vxlan

> route     # 重启flannel后 查看路由
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    300    0        0 bond0
10.233.20.128   0.0.0.0         255.255.255.128 U     0      0        0 docker0
10.233.21.0     10.233.21.0     255.255.255.128 UG    0      0        0 flannel.1
10.233.27.0     10.233.27.0     255.255.255.128 UG    0      0        0 flannel.1

猜你喜欢

转载自www.cnblogs.com/fan-gx/p/11797033.html