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

    首先在host2 执行如下命令:

    weave launch 10.12.31.22

    这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 weave 网络。

     

    运行容器 bbox3:

    eval $(weave env)

    docker run --name bbox3 -itd busybox

    weave 网络连通性

    bbox3 能够直接 ping bbox1 和 bbox2。

    bbox1、bbox2 和 bbox3 的 IP 分别为 10.32.0.1/12、10.32.0.2/12 和 10.44.0.0/12,注意掩码为 12 位,实际上这三个 IP 位于同一个 subnet 10.32.0.0/12。

    通过 host1 和 host2 之间的 VxLAN 隧道,三个容器逻辑上是在同一个 LAN 中的,当然能直接通信了。

    bbox3 ping bbox1 的数据流向如下图所示:

    1) 数据包目的地址为 10.32.0.1,根据 bbox3 的路由表,数据从 ethwe 发送出去。

    2) host2 weave 查询到目的地主机,将数据通过 VxLAN 发送给 host1。

    3) host1 weave 接受到数据,根据目的 IP 将数据转发给 bbox1。

     

    weave 网络隔离

    默认配置下,weave 使用一个大 subnet(例如 10.32.0.0/12),所有主机的容器都从这个地址空间中分配 IP,因为同属一个 subnet,容器可以直接通信。

    如果要实现网络隔离,可以通过环境变量 WEAVE_CIDR 为容器分配不同 subnet 的 IP,举例如下:

    这里 WEAVE_CIDR=net:10.32.2.0/24 的作用是使容器分配到 IP 10.32.2.1。由于 10.32.0.0/12 与 10.32.2.0/24 位于不同的 subnet,所以无法 ping 到 bbox1。

    除了 subnet,我们还可以直接为容器分配特定的 IP:

     

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

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587837&idx=1&sn=0c21e8647b9fb10f6cc2c513157495fa&chksm=8d308164ba470872fe8d47f192c347f9e65d67105b11bb31a90d02029f8ff62bdc4c713ffb3e&scene=21#wechat_redirect

  • 相关阅读:
    Java HttpClient使用小结
    【剑指offer】Q18:树的子结构
    poj3041-Asteroids , 二分图的最小顶点覆盖数 = 最大匹配数
    jquery.validate+jquery.form提交的三种方式
    "undefined reference to" 问题解决方法
    [Oracle]
    Effective_java之二:慎用重载函数
    C99规范
    迭代、递归替代循环
    1)Linux程序设计入门--基础知识
  • 原文地址:https://www.cnblogs.com/gsophy/p/10654837.html
Copyright © 2011-2022 走看看