zoukankan      html  css  js  c++  java
  • kubernetes跨网段pod网络不通问题

    kubernetes跨网段问题

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

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

    二个网段不能互通,首先想到的被防火墙禁止了;尝试清理iptables防火墙,结果还是不行。iptables -P OUTPUT ACCEPT && iptables -P FORWARD ACCEPT && iptables -F && IPtables -L -n 一定要注意下清理防火墙一定要iptables -P OUTPUT ACCEPT,否则连不上就悲剧了。

    然后查了etcd的Pod网段信息。发现了问题。解决如下:

    > 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
    
  • 相关阅读:
    LCPhash求解
    BSGS
    洛谷—— P1849 [USACO12MAR]拖拉机Tractor
    BZOJ——2101: [Usaco2010 Dec]Treasure Chest 藏宝箱
    洛谷—— P1561 [USACO12JAN]爬山Mountain Climbing
    BZOJ——1601: [Usaco2008 Oct]灌水
    洛谷—— P1342 请柬
    [SDOI2009]Elaxia的路线 SPFA+Topo
    1737 配对
    51Nod 1378 夹克老爷的愤怒
  • 原文地址:https://www.cnblogs.com/fan-gx/p/11797033.html
Copyright © 2011-2022 走看看