Docker Weave Networkdocker
Weave Network:属于第三方网络项目。服务器
Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也能够加密传输。网络
Weave Net建立一个链接多个Docker主机的虚拟网络,相似于一个以太网交换机,全部的容器都链接到这上面,互相通讯。架构
Weave Net由多个peer组成,Weave路由器运行不一样Docker主机上,是一个用户空间的进程;每一个peer都有一个名称,重启保持不变。它们经过TCP链接彼此,创建后交换拓扑信息。负载均衡
Weave Net能够在具备编号拓扑的部分链接的网络中路由数据包。学习
例如:在下面网络中,peer1直接链接2和3,可是若是1须要发送数据包到4和5,则必须先将其发送到peer3。加密
Weave Net中的”fast data path”使用Linux内核的OpenvSwich datapath模块。该模块使Weave Net路由器可以告知内核如何处理数据包。spa
OpenvSwich datapath和VXLAN功能在Linux内核版本3.12+才支持,若是内核不支持,则Weave Net使用”user mode”数据包路径。Weave Net会自动选择两台主机之间最快的路径传输数据,提供近原生吞吐量和延迟。code
特色:blog
# IP地址管理(IPAM) Weave自动为容器分配惟一的IP地址。可经过weave ps查看 # 命名和发现 命名的容器自动会注册到Weave DNS中,并能够经过容器名称访问。 注:weave本身维护了一个微型的dns服务器。能够实现主机名通讯。 # 负载均衡 容许注册多个相同名称的容器,Weave DNS随机为每一个请求返回地址,提供基本的负载均衡功能。 注:若是访问容器名相同,则会自动轮询访问该容器,实现负载均衡。 # 手动指定IP地址 docker run –it –e WEAVE_CIDR=10.32.0.100/24 busybox # 动态拓扑 能够在不中止或从新配置剩余Docker主机的状况下添加主机到Weave网络中或从Weave网络中删除 # 容错 weave peer不断交换拓扑信息,监视和创建与其余peer的网络链接。若是有主机或网络出现故障,Weave会绕过这个主机,保证两边容器能够继续通讯,当恢复时,恢复彻底链接
Docker Weave 工做原理
Contailner ethwe 发送数据包到对端容器通讯
一、ethwe 会将数据包发送给vethwe-bridge网桥。
二、vethwe-bridge接收到数据包后由weave去处理这个数据,经过UDP6783数据端口依照weave的路由表转发到下一路由节点。
三、若是该节点就是目的地,本地weave会把信息转发到内核的TCP协议站,再转发到目的节点。