项目地址:https://github.com/weaveworks/weave
注:weave公司与2024年关门
weaves说明
Weave是由weaveworks公司开发的解决Docker跨主机网络的解决方案,它能够创建一个虚拟网络,用于连接部署在多台主机上的Docker容器,这样容器就像被接入了同一个网络交换机,那些使用网络的应用程序不必去配置端口映射和链接等信息。
外部设备能够访问Weave网络上的应用程序容器所提供的服务,同时已有的内部系统也能够暴露到应用程序容器上。Weave能够穿透防火墙并运行在部分连接的网络上,另外,Weave的通信支持加密,所以用户可以从一个不受信任的网络连接到主机。
weaves实现原理
weave launch
初始化时会自动下载三个docker容器来辅助运行,并且创建linux网桥与docker网络
weave 运行了三个容器:
- weave 是主程序,负责建立
weave
网络,收发数据,提供 DNS 服务等。 - weavevolumes容器提供卷存储
- weavedb容器提供数据存储
|
|
自动创建网桥
|
|
- datapath:是一个openvswitch
- vethwe-datapath@vethwe-bridge:是veth pair
- vethwe-datapath:父设备是datapath
- vxlan-6784:是vxlan interface,其maste也是datapath,weave主机之间通过Vxlan节能型通信
|
|
|
|
自动创建docker网络weave
|
|
查看weave
网络的信息dirver为"Driver": "weavemesh"
|
|
Weave网络会在每个宿主机上创建一个网桥,每个容器通过veth pair连接到这个Weave 网桥。容器里面的veth网卡会获取到Weave网络分配给的IP地址和子网掩码。每当容器启动时,会创建两个网络接口。eth0if51
与docker_gwbridge
同属于一个网段。
|
|
其中ethwe0@if49
,从名称上看出与weave相关,其对应的编号是48。我们从宿主机上面ip link进行查看,ethwe0@if49
与vethwle9c9e24ce@if48
是一对veth pair,而且被挂在了weave网桥上
|
|
|
|
weave安装配置
项目地址:https://github.com/weaveworks/weave
环境准备
环境要求:
- linux内核版本为3.8以上
- dockers版本为1.10.0或更高
主机名 | IP地址 | 软件环境 |
---|---|---|
node01 | 10.0.0.15 | docker-1806 weare |
node02 | 10.0.0.16 | docker-1806 weare |
下载安装weave
Weave不需要集中式的key-value存储,所以安装和运行都很简单。直接把Weave二进制文件下载到系统中就可以了。主从节点都需要安装。
|
|
Reference
1 Docker网络 Weave - Bigberg - 博客园
2 End of an Era: Weaveworks Closes Shop Amid Cloud Native Turbulence