zoukankan      html  css  js  c++  java
  • 容器网络(八)如何使用 flannel host-gw【57】

    (十五)如何使用 flannel host-gw

    flannel 支持多种 backend,前面我们讨论的是 vxlan backend,host-gw 是 flannel 的另一个 backend,本节会将前面的 vxlan backend 切换成 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.0.0.20:2379 set /docker-test/network/config < flannel-config.json
    
    

    Ctrl+C 掉之前 host1 和 host2 的 flanneld 进程并重启。

    flanneld -etcd-endpoints=http://10.0.0.20:2379 -iface=ens33 -etcd-prefix=/docker-test/network
    
    

    查看host1 上 flanneld 启动输出:

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

    ① flanneld 检查到原先已分配的 subnet 10.2.40.0/24,重用之。

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

    ③ 两分钟后,再次发现 subnet 10.2.17.0/24,将其加到路由表中。这次没有忽略 subnet 的原因是此时我们在 host2 上重启了 flanneld,根据当前 etcd 的配置使用 host-gw backend。

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

    host1#ip route
    
    

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

    从 /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。
  • 相关阅读:
    jQuery之.on()方法
    18款 非常实用 jquery幻灯片图片切换
    jquery 处理字符串
    JS中document.createElement()用法及注意事项
    jquery 创建 SVG DOM 的处理方法
    jQuery append xmlNode 修改 xml 内容
    jQuery与XML
    浏览器中的XML与JavaScript
    DOM(文本对象模型)简介
    用jQuery 处理XML-- jQuery与XML
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/14140136.html
Copyright © 2011-2022 走看看