Docker Weave网络部署
Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也可以加密传输。
Weave Net创建一个连接多个Docker主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到这上面,互相通信。
Weave Net由多个peer组成,Weave路由器运行不同Docker主机上,是一个用户空间的进程;每个peer都有一个名称,重启保持不变。它们通过TCP连接彼此,建立后交换拓扑信息。
Weave Net可以在具有编号拓扑的部分连接的网络中路由数据包。例如,在下面网络中,peer1直接连接2和3,但是如果1需要发送数据包到4和5,则必须先将其发送到peer3。

WeaveNet中的”fastdatapath”使用Linux内核的OpenvSwichdatapath模块。该模块使WeaveNet路由器能够告知内核如何处理数据包。OpenvSwichdatapath和VXLAN功能在Linux内核版本3.12+才支持,如果内核不支持,则WeaveNet使用”usermode”数据包路径。WeaveNet会自动选择两台主机之间最快的路径传输数据,提供近原生吞吐量和延迟。
部署
使用前提:
1.确保Linux内核版本3.8+,Docker1.10+。
2.节点之间如果有防火墙时,必须彼此放行TCP 6783和UDP 6783/6784端口,这是Weave控制和数据端口。
3.主机名不能相同,通过主机名标识子网。
安装Weave(两个节点均执行)
curl -L git.io/Weave -o /usr/local/bin/Weave
chmod +x /usr/local/bin/Weave
mv weave /usr/bin/
chmod +x /usr/bin/weave
以上安装方法不行使用以下方式安装
cd /usr/local
git clone https://github.com/weaveworks/weave
cd /usr/local/weave/
cp weave /usr/local/bin/
启动并于其他主机连接
weave launch
会启动并下载镜像
连接
weave launch 192.168.56.129
#另外一台主机输入
weave launch 192.168.56.128

查看路由进程

节点2连接节点1 连接完就会相互交换本地节点信息
查看状态
weave status
Version: 2.0.4 (version 2.5.0 available - please upgrade!)
Service: router
Protocol: weave 1..2
Name: fe:c2:c3:62:e5:79(docker)
Encryption: disabled
PeerDiscovery: enabled
Targets: 1
Connections: 1 (1 established)
Peers: 2 (with 2 established connections)
TrustedSubnets: none
Service: ipam
Status: idle
Range: 10.32.0.0/12
DefaultSubnet: 10.32.0.0/12
Service: dns
Domain: weave.local.
Upstream: 127.0.0.53
TTL: 1
Entries: 0
Service: proxy
Address: unix:///var/run/weave/weave.sock
Service: plugin (legacy)
DriverName: weave
查看连接信息
weave status connections
测试互通(本次测试不通)
docker run -it --net=weave busybox
查看weave分配的网络
weave ps
weave工作流程

其他功能
IP地址管理(IPAM)
Weave自动为容器分配唯一的IP地址。可通过weave ps查看
命名和发现
命名的容器自动会注册到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网络部署的更多相关文章
- Docker Weave 应用部署
Docker Weave 应用条件 官方文档:https://www.weave.works/docs/net/latest/install/installing-weave 使用前提: 1. 确保L ...
- docker flannel网络部署和路由走向分析
1.flannel介绍 flannel是coreos开发的容器网络解决方案.flannel为每个host分配一个subnet,容器从此subnet中分配ip.这些ip可以在host间路由,容器间无需n ...
- Docker Macvlan网络部署
Macvlan Bridge模式 节点1创建 docker network create -d macvlan --subnet=172.100.1.0/24 --gateway=172.100.1. ...
- 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)
weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...
- Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)
上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构.在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 - ...
- docker (centOS 7) 使用笔记5 - weave网络
weave官网 https://www.weave.works 1. 下载安装 sudo curl -L git.io/weave -o /usr/local/bin/weave sudo chmod ...
- 第 8 章 容器网络 - 063 - 如何使用 Weave 网络?
如何使用 Weave 网络? weave 是 Weaveworks 开发的容器网络解决方案. weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来. 对容器来说,weave 就像一个巨大的以 ...
- Docker源码分析(六):Docker Daemon网络
1. 前言 Docker作为一个开源的轻量级虚拟化容器引擎技术,已然给云计算领域带来了新的发展模式.Docker借助容器技术彻底释放了轻量级虚拟化技术的威力,让容器的伸缩.应用的运行都变得前所未有的方 ...
- 61-如何使用 Weave 网络?
weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...
随机推荐
- MDX Cookbook 10 - 计算 Year To Date 的 Running Total(YTD 与 PeriodsToDate 的区别)
在这个小节中我们将计算度量值的 Year To Date 的值,也就是计算从年开始到当前时间成员为止的度量值的累加结果. 下面的这个查询显示了所有以周为单位的 Reseller Sales Amoun ...
- 在mysql中如何写注释语句
//在mysql中如何写注释语句 mysql; # 这个注释直到该行结束 mysql; -- 这个注释直到该行结束 mysql ; mysql+ /* 这是一个 多行注释的形式 */ ;
- Junit学习笔记之五:MockMVC
原文:https://blog.csdn.net/xiao_xuwen/article/details/52890730 随着RESTful Web Service的流行,测试对外的Service是否 ...
- C++11 右值引用和转移语义
新特性的目的 右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和 ...
- 每日英语:Don't Call Us Bossy
[Confident girls are often called the other B-word, and it can keep them from reaching their full po ...
- 【Android】开源项目UniversalImageLoader及开源框架ImageLoader
UniversalImageLoader 简单来说就是用于加载图片的一个开源项目,在其项目介绍中是这么写的 支持多线程图片加载 提供丰富的细节配置,比如线程池大小,HTPP请求项,内存和磁盘缓存,图片 ...
- Hadoop 2.x 安装常见问题FAQ(一) NodeManager 无法启动问题解决
一.问题描述 在搭建 Hadoop hadoop-2.4.1 集群的最后一步启动集群,在命令窗口并没有报任何错误,但是Slave 节点的 NodeManager进程始终启动不起来.随后查看了后台启动日 ...
- SQL group BY 合并字段用逗号隔开
1.关联多表后 根据某个字段作为分组条件,其他合并到新列中,效果如下图 --------> 代码: ),KOrderID) , , '') from VOrder2 tb group by KU ...
- session一直报错Session store not set on request
Route::group(['middleware' => ['web']], function () { //});仍然报错,看了 session是使用默认file,没问题:app/stora ...
- python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10
说明: 在实际的应用过程中,有的时候可能会遇到字符串的10,需要将字符串的10转换为数字的10 在此记录下,通过int函数转换的过程. 操作过程: 1.将字符串转换为整型的10 >>> ...