zoukankan      html  css  js  c++  java
  • 第 8 章 容器网络

    flannel host-gw backend

    flannel 支持多种 backend:(1)vxlan backend;(2)host-gw;

     

    与 vxlan 不同,host-gw 不会封装数据包,而是在主机的路由表中创建到其他主机 subnet 的路由条目,从而实现容器跨主机通信。

    要使用 host-gw 首先修改 flannel 的配置 flannel-config.json:

    {

     "Network": "10.2.0.0/16",

     "SubnetLen": 24,

     "Backend": {

    "Type": "host-gw"

         }

    }

     

    Type 用 host-gw 替换原先的 vxlan。更新 etcd 数据库:

    etcdctl --endpoints=10.12.31.21:2379 set /docker-test/network/config < flannel-config.json

     

    kill 掉之前 host1 和 host2 的 flanneld 进程并重启。

    flanneld -etcd-endpoints=http://10.12.31.21:2379 -iface=ens192 -etcd-prefix=/docker-test/network &

     

    host1 上 flanneld 启动输出如下:

    与之前 vxlan backend 启动时有几点不同:

    1)flanneld 检查到原先已分配的 subnet 10.2.9.0/24,重用之。

    2)flanneld 从 etcd 数据库中检索到 host2 的 subnet 10.2.52.0/24,但因为其 type=vxlan,立即忽略。

    3)两分钟后,再次发现 subnet 10.2.52.0/24,将其加到路由表中。

         这次没有忽略 subnet 的原因是此时我们在 host2 上重启了 flanneld,根据当前 etcd 的配置使用 host-gw backend。

     

    查看 host1 的路由表,增加了一条到 10.2.52.0/24 的路由,网关为 host2 的 IP 10.12.31.23。

    类似的,host2 启动 flanneld 时会重用 subnet 10.2.52.0/24,并将 host1 的 subnet 10.2.9.0/24 添加到路由表中,网关为 host1 IP 10.12.31.22。

    从 /run/flannel/subnet.env 可以看到 host-gw 使用的 MTU 为 1500:

    这与 vxlan MTU=1450 不同,所以应该修改 docker 启动参数 --mtu=1500并重启 docker daemon。

    面对 host-gw 和 vxlan 这两种 backend 做个简单比较。

     

        1)host-gw 把每个主机都配置成网关,主机知道其他主机的 subnet 和转发地址。

             vxlan 则在主机间建立隧道,不同主机的容器都在一个大的网段内(比如 10.2.0.0/16)。

        2)虽然 vxlan 与 host-gw 使用不同的机制建立主机之间连接,但对于容器则无需任何改变,bbox1 仍然可以与 bbox2 通信。

        3)由于 vxlan 需要对数据进行额外打包和拆包,性能会稍逊于 host-gw。

     

    ------------------------------------------引用来自-----------------------------------------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587821&idx=1&sn=05a4570eaf88e80400eb99390a55b3d1&chksm=8d308174ba4708624c99c49deedcdd1527891c8802a02b6d95da4dadb9699fcbeba0afc99f9e&scene=21#wechat_redirect

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/gsophy/p/10641277.html
Copyright © 2011-2022 走看看