• 小宇宙
    2018-08-27
    flannel的backend除了UDP和vxlan还有一种模式就是host-gw,通过主机路由的方式,将请求发送到容器外部的应用,但是有个约束就是宿主机要和其他物理机在同一个vlan或者局域网中,这种模式不需要封包和解包,因此更加高效。

    作者回复: 对的

    
     12
  • jacy
    2019-03-14
    回答自己提的udp丢包的问题,希望老师帮忙看看是否正确。
    flannel实际上是将docker出来的包再加udp封装,以支持二层网络在三层网络中传输。udp确实可能丢包,丢包是发生在flannel层上,丢包后内层的docker(如果被封装的是tcp)无ack,源docker的虚拟网卡还会按tcp协议进行重发。无非是按flannel原理多来几次。

    作者回复: udp会丢的

    
     4
  • 刘工的一号马由
    2018-07-26
    1默认路由发到容器网络的网关
    2underlay网络
    
     4
  • 小宇
    2019-01-23
    老师好,我这里有一个疑问,第28讲的VXLAN,虚拟机通信时包的结构, VTEP的设备ip为什么在VXLAN头之外,我的理解VTEP设备的ip应该和flannel的VXLAN模式一样,在VXLAN头里面。

    作者回复: vxlan的格式都是一样的

    
     3
  • Jay
    2018-08-03
    “例如物理机 A 是网段 172.17.8.0/24,物理机 B 是网段 172.17.9.0/24”,这里应该是指物理机A给docker分配的网段吧?老师,这个容易造成误解哦……
    
     3
  • 天王
    2019-07-30
    1 快速迭代,单体应用不能满足快速迭代和高并发的要求,所以需要拆成微服务,容器作为集装箱,可以保证应用在不同的环境快速迁移,还需要一个容器的调度平台,可以将容器快速的调度到任意服务器,这个调度平台就是k8s。2 微服务之间存在服务调用的问题,就像集团军作战,需要解决各个部队位置和部队之间通讯的问题,2.1 位置问题用注册中心,但是可能会有ip端口冲突,Flannel是为了解决这种问题的技术,给每个物理机分配一小段网络段,每个物理机的容器只使用属于自己的网络段,2.2 部队之间通讯 容器网络互相访问,Flannel使用UDP实现Overlay网络,每台物理机上都跑一个flannelid进程,打开dev/net/tun设备的时候,就会有这个网卡,所有发到flannel.1的网络包,都会被flannelid进程截获,会讲网络包封装进udp包,发到b的flannel.1,b的flannelid收到网络包以后,解开,由flannel.1发出去,通过dock0给到容器b。通讯比较慢,Flannel使用VXLAN技术,建立一个VXLAN的VTEP,通过netlink通知内核建立一个VTEP的网卡flannel.1,A物理机上的flannel.1就是vxlan的vtep,将网络包封装,通过vxlan将包转到另一台服务器上,b的flannel.1接收到,解包,变成内部的网络包,通过物理机上的路由转发到docker0,然后转发到容器B里面,通信成功。
    展开
    
     2
  • 王子瑞Aliloke有事电...
    2019-03-14
    老刘讲的太好了!!!这个专栏超值,开眼界了,而且讲的通俗易懂-虽然还有很多知识我没有懂,但开眼界了。
    
     1
  • 大星星
    2019-02-22
    想问下老师,后一种使用VTEP,为什么flannel.id里面内部源地址配置的是flannel.id的mac地址,而不是使用第一种打开dev/net/tun时候源地址写的是容器A的源地址。
    为什么两种情况下不一样了,谢谢

    作者回复: 这是flannel的一个问题,会造成很多困扰

    
     1
  • ⊙▽⊙
    2018-12-29
    老师我想问下,如何知道容器宿主机的地址,这样才可以在对数据包进行二次封装的时候把目的地址填写进去
    
     1
  • 饭粒
    2019-12-07
    VXLAN 模式的 VTEP 相较于 /dev/net/tun 字符设备网卡,性能改善是在 VTEP 通信比字符设备网卡通信少了内核态用户态间的数据拷贝?
    
    
  • 饭粒
    2019-12-07
    # tcpdump -i eth0 dst 192.168.1.7 -w dst.pcap
    抓了下 vxlan 类型的 flannel 容器间的包,确实是 udp 的封包,但是没有看到 vxlan 的信息,不知道这要怎么看?
    Frame 3: 201 bytes on wire (1608 bits), 201 bytes captured (1608 bits)
    Ethernet II, Src: fa:16:3e:08:a8:46 (fa:16:3e:08:a8:46), Dst: fa:16:3e:5a:de:91 (fa:16:3e:5a:de:91)
    Internet Protocol Version 4, Src: 192.168.1.4, Dst: 192.168.1.7
    User Datagram Protocol, Src Port: 54228, Dst Port: 8472
    Data (159 bytes)
    展开
    
    
  • ╯梦深处゛
    2019-04-23
    对于 IP 冲突的问题,如果每一个物理机都是网段 172.17.0.0/16,肯定会冲突啊,但是这个网段实在太大了,一台物理机上根本启动不了这么多的容器,所以能不能每台物理机在这个大网段里面,抠出一个小的网段,每个物理机网段都不同,自己看好自己的一亩三分地,谁也不和谁冲突。
    -----------------------------------------------------------------------------------------------------
    老师,不同节点之间不一定都是不同网段的,相反很多时候,一个K8S集群的所有节点都是在一个网段,请问在这种场景下,如果避免这种冲突的问题呢?

    作者回复: 一个K8S集群的所有节点都是在一个大网段里面,但是不同的主机分了小网段。

    
    
  • allwmh
    2019-04-23
    flannel怎么做容器的IP保持呢?

    作者回复: 不保持

    
    
  • 超超
    2019-04-08
    回答问题1:是不是在dockerX网卡上做NAT?

    作者回复: 是的

    
    
  • jacy
    2019-03-13
    udp丢包能接受吗
    
    
  • 峻铭
    2018-10-11
    如物理机A坏了,docker要迁移到C上去,物理机B内容器中的应用如何和C中的通信

    作者回复: 会重新配置

    
    
  • donson
    2018-09-03
    flannel网络的地址段是10.242.0.0/16,默认每个Node上的子网划分是10.242.x.0/24,请问这个子网划分在哪里可以配置,比如我想划分成/21
    
    
  • selboo
    2018-08-07
    物理机A和物理机B是以access模式连接到交换机。此时flannel.1 在加上 VXLAN 头可以通信吗???求老师解答。
    
    
  • _CountingStars
    2018-07-25
    1.容器访问外面还是应该用nat
    2.使用bgp协议的其他实现 calico kube-router
    
    
我们在线,来聊聊吧