文档章节

overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)

CloudMAN
 CloudMAN
发布于 2017/08/09 08:51
字数 383
阅读 92
收藏 0

上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理。

在 host2 中运行容器 bbox2:

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

249.png

可见 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-f4af9b33c0”:

ip netns

......

1-f4af9b33c0

......


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

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

理解了 overlay 网络的连通性,下一节我们继续讨论 overlay 的网络隔离特性。

二维码+指纹.png

© 著作权归作者所有

CloudMAN
粉丝 541
博文 360
码字总数 221704
作品 0
海淀
私信 提问
加载中

评论(0)

17、《每天5分钟玩转Docker容器技术》学习--Multi-host网络

------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习,是个人学习过程记录,与原版不同! 原版请参考cloudman《每天5...

hostman6
2018/04/12
0
0
18、《每天5分钟玩转Docker容器技术》学习--Overlay Network

------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习,是个人学习过程记录,与原版不同! 原版请参考cloudman《每天5...

hostman6
2018/04/12
0
0
神奇的 routing mesh - 每天5分钟玩转 Docker 容器技术(100)

接上一节案例,当我们访问任何节点的 8080 端口时,swarm 内部的 load balancer 会将请求转发给 web_server 其中的一个副本。 这就是 routing mesh 的作用。 所以,无论访问哪个节点,即使该...

CloudMan6
2017/12/01
0
0
20、《每天5分钟玩转Docker容器技术》学习--macvlan Network

------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习,是个人学习过程记录,与原版不同! 原版请参考cloudman《每天5...

hostman6
2018/04/14
0
0
21、《每天5分钟玩转Docker容器技术》学习--Flannel Network

------------------------------------重要说明------------------------------------ 本文内容都是参考Cloudman系列进行学习,是个人学习过程记录,与原版不同! 原版请参考cloudman《每天5...

hostman6
2018/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一言难尽,Jpa这个功能差点让我丢了工作

故事背景 前阵子,有位朋友在微信上问我数据被删了能不能恢复,我问了下原因,居然是因为一个配置项惹的祸。 故事细节 在 Spring Boot 中使用 jpa 来操作数据库,jpa 就不做详细的介绍了,相...

osc_axe50nd6
5分钟前
6
0
Link Cut Tree

//知识点 : LCT /*By:Luckyblock*/#include <cstdio>#include <ctype.h>#include <algorithm>#define ls (t[x].son[0])#define rs (t[x].son[1])const int kMaxn = 1e5 + 10;//===......

osc_q5urtsdm
6分钟前
11
0
【问题】Could not locate PropertySource and the fail fast property is set, failing

这是我遇到的问题 Could not locate PropertySource and the fail fast property is set, failing springcloud的其他服务读取不了配置中心得配置文件出错,原因是配置中心的一个配置文件有s...

osc_z9jr2tjo
8分钟前
5
0
Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(四)

在上一讲中,我们已经完成了一个完整的案例,在这个案例中,我们可以通过Angular单页面应用(SPA)进行登录,然后通过后端的Ocelot API网关整合IdentityServer4完成身份认证。在本讲中,我们...

osc_doeya1ck
8分钟前
11
0
[推荐]大量 Blazor 学习资源(一)

前言 / Introduction Blazor 是什么? Blazor 允许您使用 C# 而不是 JavaScript 构建交互式 Web UI。 Blazor 应用由使用 C#、HTML 和 CSS 实现的可重用 Web UI 组件组成。客户端和服务器代码...

osc_3r4js8qy
9分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部