第 8 章 容器网络 - 064 - Weave 网络结构分析
Weave 网络结构分析
在 host1 中运行容器 bbox1:
eval $(weave env)
docker run --name bbox1 -itd busybox
首先执行 eval $(weave env) 很重要,其作用是将后续的 docker 命令发给 weave proxy 处理。
如果要恢复之前的环境,可执行 eval $(weave env --restore)。
查看一下当前容器 bbox1 的网络配置:
bbox1 有两个网络接口 eth0 和 ethwe,其中 eth0 连接的是默认 bridge 网络,即网桥 docker0。
现在我们重点分析 ethwe。从命名和分配的 IP 10.32.0.1/12 可以猜测 ethwe 与 weave 相关,ethwe@if16 告诉我们与 ethwe 对应的是编号 16 的 interface。
从 host1 的 ip link 命令输出中找到该 interface:
vethwepl3086 与 ethwe 是一对 veth pair,而且 vethwepl3086 挂在 host1 的 Linux bridge weave 上。
除了 vethwepl3086,weave 上还挂了一个 vethwe-bridge,这是什么?让我们更深入的分析一下
查看 ip -d link 输出:
这里出现了多个新 interface:
1) vethwe-bridge 与 vethwe-datapath 是 veth pair。
2) vethwe-datapath 的父设备(master)是 datapath。
3) datapath 是一个 openvswitch。
4) vxlan-6784 是 vxlan interface,其 master 也是 datapath,weave 主机间是通过 VxLAN 通信的。
host1 的网络结构如下图所示:
weave 网络包含两个虚拟交换机:Linux bridge weave 和 Open vSwitch datapath,veth pair vethwe-bridge 和 vethwe-datapath 将二者连接在一起。
weave 和 datapath 分工不同,weave 负责将容器接入 weave 网络,datapath 负责在主机间 VxLAN 隧道中并收发数据。
再运行一个容器 bbox2。
docker run --name bbox2 -itd busybox
当前 host1 网络结构为:
----------------------------------------------引用来自------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587832&idx=1&sn=710f49b1d27700dd1027ef1799870e24&chksm=8d308161ba470877ed8283423553eb478129ce042ccb9eb13efbaacb5f9a883876982715a38d&scene=21#wechat_redirect
第 8 章 容器网络 - 064 - Weave 网络结构分析的更多相关文章
- 第 10 章 容器监控 - 080 - Weave Scope 容器地图
Weave Scope 容器地图 Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解.监控和控制容器. 安装 执行如下脚本安装运行 Weave Scope ...
- 第 10 章 容器监控 - 081 - Weave Scope 多主机监控
除了监控容器,Weave Scope 还可以监控 Docker Host 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息 host 当前的资 ...
- 第 8 章 容器网络 - 063 - 如何使用 Weave 网络?
如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以 ...
- 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)
weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...
- Docker网络解决方案 - Weave部署记录
前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...
- 61-如何使用 Weave 网络?
weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...
- [经验分享] Docker网络解决方案-Weave部署记录
前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...
- 第 8 章 容器网络 - 066 - Weave 如何与外网通信?
Weave 与外网通信 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离. 外部网络如果要访问到 weave 中的容器:1.首先将主机加入到 weave 网络.2.然后把主机当作访问 w ...
- 第 8 章 容器网络 - 065 - 容器在 Weave 中如何通信和隔离?
首先在host2 执行如下命令: weave launch 10.12.31.22 这里必须指定 host1 的 IP 10.12.31.22,这样 host1 和 host2 才能加入到同一个 we ...
随机推荐
- MySQL 大表优化方案(长文)
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- poj3278
#include<iostream> #define MAX 100001 int john,cow; int queue[MAX]; int vis[MAX]; int ans; voi ...
- EasyUI实现分页、搜索、行按钮功能
1.html+js代码: <html> <head> <meta name="viewport" content="width=device ...
- python获取一年所有的日期
python获取一年所有的日期 自动识别闰年. import arrow def isLeapYear(years): ''' 通过判断闰年,获取年份years下一年的总天数 :param years ...
- Python时间、日期、时间戳之间的转换
一.字符串与为时间字符串之间的互相转换 方法:time模块下的strptime方法 a = "2012-11-11 23:40:00" # 字符串转换为时间字符串 import t ...
- 使用maven搭建springMVC开发环境
1.引入框架所需的包,pom.xml文件中添加如下配置: <dependency> <groupId>org.springframework</groupId> & ...
- 判断是否滚动加载结束 用一个公共变量isScroll来控制
如果还没达到最大页数,isScroll就一直是不变,ajax正常进行.如果达到最大页数,就不执行ajax操作了...
- spring boot + vue + element-ui全栈开发入门——集成element-ui
一.IDE开发工具 常用的开发工具有webstorm和sublime. 我个人喜好用Atom+插件的形式 打开Atom,在file --> settings --> packages中收 ...
- C# 杀掉Windows中所有Excel进程
Process[] procs = Process.GetProcessesByName("excel"); foreach (Process pro in procs) { pr ...
- Python手势识别
这是借鉴了github上的一个源程序,参考源:https://github.com/lzane/Fingers-Detection-using-OpenCV-and-Python 自己在这个基础上做了 ...