容器在Weave 中如何通信和隔离

64次阅读
没有评论

共计 926 个字符,预计需要花费 3 分钟才能阅读完成。

容器在 Weave 中如何通信和隔离,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

今天讨论 Weave 的连通和隔离特性。

首先在 host2 执行如下命令:

weave launch 192.168.56.104

这里必须指定 host1 的 IP 192.168.56.104,这样 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 的数据流向如下图所示:

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

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

③ 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.2。由于 10.32.0.0/12 与 10.32.2.0/24 位于不同的 subnet,所以无法 ping 到 bbox1。除了 subnet,我们还可以直接为容器分配特定的 IP。

看完上述内容,你们掌握容器在 Weave 中如何通信和隔离的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计926字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)