• 第 8 章 容器网络


    overlay 如何实现跨主机通信?

    在 host2 中运行容器 bbox2:

    docker run -itd --name bbox2 --network ov_net1 busybox

     

     

     

    bbox2 IP 为 10.0.0.4,可以直接 ping bbox1:

     

     可见 overlay 网络中的容器可以直接通信,同时 docker 也实现了 DNS 服务。

     


    overlay 网络的具体实现:

    docker 会为每个 overlay 网络创建一个独立的 network namespace,其中会有一个 linux bridge br0,endpoint 还是由 veth pair 实现,一端连接到容器中(即 eth0),另一端连接到 namespace 的 br0 上。

    br0 除了连接所有的 endpoint,还会连接一个 vxlan 设备,用于与其他 host 建立 vxlan tunnel。容器之间的数据就是通过这个 tunnel 通信的。逻辑网络拓扑结构如图所示:

     

     

    要查看 overlay 网络的 namespace 可以在 host1 和 host2 上执行 ip netns(请确保在此之前执行过 ln -s /var/run/docker/netns /var/run/netns),可以看到两个 host 上有一个相同的 namespace “1-9a04f53798”:

     


    这就是 ov_net1 的 namespace,查看 namespace 中的 br0 上的设备。

     

    查看 vxlan1 设备的具体配置信息可知此 overlay 使用的 VNI(VxLAN ID)为 256。

     

     

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

     https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587771&idx=1&sn=d3cabc71d9a8ff34ce7a9192b188da08&chksm=8d308122ba4708349d01a6cfa2db04aef853e1813ee2a59dbc3bb7b50f712b170ad88de90d8a&scene=21#wechat_redirect

     

  • 相关阅读:
    【漏洞】【Druid】Druid未授权访问漏洞,修复方案。springboot
    linux shell 获取java版本号
    SpringBoot 通过配置禁用swagger
    string.format()详解
    Linux 下杀毒软件 clamav 0.104.2 离线安装及测试(CentOS7)
    MySQL密码复杂度策略
    Tcpdump抓包命令
    狄尔沃斯定理(Dilworth's theorem)
    docker容器安装TensorFlow_gpu 版本遇到的坑。。。
    C++ 11 make_shared
  • 原文地址:https://www.cnblogs.com/gsophy/p/10557207.html
Copyright © 2020-2023  润新知