weave官网 https://www.weave.works

1. 下载安装

  1. sudo curl -L git.io/weave -o /usr/local/bin/weave
  2. sudo chmod a+x /usr/local/bin/weave

2. 部署weave网络

(1) 在第一台机器上运行,如果使用默认的 10.0.*.* 网段则如下

  1. weave launch

本次测试使用自定义的网段,所以启动指令有所不同:

  1. weave launch --ipalloc-range 168.108.0.0/

启动成功后,会有3个weave的容器运行中

  1. # docker ps -a
  2. c9ed14e97dfd weaveworks/weave:2.0. "/home/weave/weave..." days ago Up days weave
  3. 7db070b5f54e weaveworks/weaveexec:2.0. "/bin/false" days ago Created weavevolumes-2.0.
  4. b6d603c8c7a8 weaveworks/weavedb "data-only" days ago Created weavedb

可看到增加了虚拟网卡 weave

  1. # ifconfig
  2. datapath: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  3. ether a6::9d:b6:5f: txqueuelen (Ethernet)
  4. RX packets bytes (84.0 B)
  5. RX errors dropped overruns frame
  6. TX packets bytes (0.0 B)
  7. TX errors dropped overruns carrier collisions
  8.  
  9. docker0: flags=<UP,BROADCAST,MULTICAST> mtu
  10. inet 192.168.0.1 netmask 255.255.240.0 broadcast 0.0.0.0
  11. ether :::9e::4b txqueuelen (Ethernet)
  12. RX packets bytes (0.0 B)
  13. RX errors dropped overruns frame
  14. TX packets bytes (0.0 B)
  15. TX errors dropped overruns carrier collisions
  16.  
  17. docker_gwbridge: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  18. inet 192.168.16.1 netmask 255.255.240.0 broadcast 0.0.0.0
  19. ether ::b9::2f:b8 txqueuelen (Ethernet)
  20. RX packets bytes (28.1 MiB)
  21. RX errors dropped overruns frame
  22. TX packets bytes (28.1 MiB)
  23. TX errors dropped overruns carrier collisions
  24.  
  25. eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  26. inet 10.28.148.61 netmask 255.255.252.0 broadcast 10.28.151.255
  27. ether ::3e:0e::7a txqueuelen (Ethernet)
  28. RX packets bytes (11.5 GiB)
  29. RX errors dropped overruns frame
  30. TX packets bytes (7.9 GiB)
  31. TX errors dropped overruns carrier collisions
  32.  
  33. eth1: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  34. inet 101.37.162.152 netmask 255.255.252.0 broadcast 101.37.163.255
  35. ether ::3e:0e::ce txqueuelen (Ethernet)
  36. RX packets bytes (513.3 MiB)
  37. RX errors dropped overruns frame
  38. TX packets bytes (4.3 GiB)
  39. TX errors dropped overruns carrier collisions
  40.  
  41. lo: flags=<UP,LOOPBACK,RUNNING> mtu
  42. inet 127.0.0.1 netmask 255.0.0.0
  43. loop txqueuelen (Local Loopback)
  44. RX packets bytes (28.1 MiB)
  45. RX errors dropped overruns frame
  46. TX packets bytes (28.1 MiB)
  47. TX errors dropped overruns carrier collisions
  48.  
  49. veth7720327: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  50. ether 7e::f5::6d:9e txqueuelen (Ethernet)
  51. RX packets bytes (372.0 B)
  52. RX errors dropped overruns frame
  53. TX packets bytes (798.0 B)
  54. TX errors dropped overruns carrier collisions
  55.  
  56. weave: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  57. ether c2:a6::::0a txqueuelen (Ethernet)
  58. RX packets bytes (84.0 B)
  59. RX errors dropped overruns frame
  60. TX packets bytes (0.0 B)
  61. TX errors dropped overruns carrier collisions

(2) 其他的节点加入加入上面已经创建的weave网络

  1. weave launch 10.28.148.61 --ipalloc-range 168.108.0.0/

(3) 创建网络成功的话,在每个节点上都可以用docker命令查看到weave网络

  1. # docker network ls
  2. NETWORK ID NAME DRIVER SCOPE
  3. 7c19813ffbff bridge bridge local
  4. a7a2188380ba docker_gwbridge bridge local
  5. 7f97ac1cfe6e host host local
  6. z08xcdlswkbk ingress overlay swarm
  7. dfa68b3918b3 none null local
  8. 42f695c8c061 weave weavemesh local

3. docker启动测试

(1) 启动相当简单,仅需正常的docker命令中指定network为weave就行了

  1. docker run -ti --network weave mytest

(2) 在2个节点上启动容器

在容器内部ifconfig可以看到容器使用的是weave的子网段,2个节点分别是168.108.0.1和168.108.192.0

  1. [root@f451f6736785 /]# ifconfig
  2. ethwe0 Link encap:Ethernet HWaddr :6E:BF:E4::A7
  3. inet addr:168.108.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
  4. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  5. RX packets: errors: dropped: overruns: frame:
  6. TX packets: errors: dropped: overruns: carrier:
  7. collisions: txqueuelen:
  8. RX bytes: (42.0 b) TX bytes: (42.0 b)
  9.  
  10. eth0 Link encap:Ethernet HWaddr ::C0:A8::
  11. inet addr:192.168.16.6 Bcast:0.0.0.0 Mask:255.255.240.0
  12. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  13. RX packets: errors: dropped: overruns: frame:
  14. TX packets: errors: dropped: overruns: carrier:
  15. collisions: txqueuelen:
  16. RX bytes: (0.0 b) TX bytes: (0.0 b)
  17.  
  18. lo Link encap:Local Loopback
  19. inet addr:127.0.0.1 Mask:255.0.0.0
  20. UP LOOPBACK RUNNING MTU: Metric:
  21. RX packets: errors: dropped: overruns: frame:
  22. TX packets: errors: dropped: overruns: carrier:
  23. collisions: txqueuelen:
  24. RX bytes: (0.0 b) TX bytes: (0.0 b)
  1. [root@7c202270ff9f /]# ifconfig
  2. ethwe0 Link encap:Ethernet HWaddr F6:8D:A2:CB:EF:F5
  3. inet addr:168.108.192.0 Bcast:0.0.0.0 Mask:255.255.0.0
  4. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  5. RX packets: errors: dropped: overruns: frame:
  6. TX packets: errors: dropped: overruns: carrier:
  7. collisions: txqueuelen:
  8. RX bytes: (0.0 b) TX bytes: (42.0 b)
  9.  
  10. eth0 Link encap:Ethernet HWaddr ::C0:A8::
  11. inet addr:192.168.16.3 Bcast:0.0.0.0 Mask:255.255.240.0
  12. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  13. RX packets: errors: dropped: overruns: frame:
  14. TX packets: errors: dropped: overruns: carrier:
  15. collisions: txqueuelen:
  16. RX bytes: (0.0 b) TX bytes: (0.0 b)
  17.  
  18. lo Link encap:Local Loopback
  19. inet addr:127.0.0.1 Mask:255.0.0.0
  20. UP LOOPBACK RUNNING MTU: Metric:
  21. RX packets: errors: dropped: overruns: frame:
  22. TX packets: errors: dropped: overruns: carrier:
  23. collisions: txqueuelen:
  24. RX bytes: (0.0 b) TX bytes: (0.0 b)

在容器里可以互相ping通

  1. [root@f451f6736785 /]# ping 168.108.192.0
  2. PING 168.108.192.0 (168.108.192.0) () bytes of data.
  3. bytes from 168.108.192.0: icmp_seq= ttl= time=0.935 ms
  4. bytes from 168.108.192.0: icmp_seq= ttl= time=0.334 ms
  5. bytes from 168.108.192.0: icmp_seq= ttl= time=0.257 ms
  6. bytes from 168.108.192.0: icmp_seq= ttl= time=0.386 ms
  7. ^C
  8. --- 168.108.192.0 ping statistics ---
  9. packets transmitted, received, % packet loss, time 3845ms
  10. rtt min/avg/max/mdev = 0.257/0.478/0.935/0.267 ms
  1. [root@7c202270ff9f /]# ping 168.108.0.1
  2. PING 168.108.0.1 (168.108.0.1) () bytes of data.
  3. bytes from 168.108.0.1: icmp_seq= ttl= time=0.428 ms
  4. bytes from 168.108.0.1: icmp_seq= ttl= time=0.274 ms
  5. bytes from 168.108.0.1: icmp_seq= ttl= time=0.344 ms
  6. bytes from 168.108.0.1: icmp_seq= ttl= time=0.341 ms
  7. ^C
  8. --- 168.108.0.1 ping statistics ---
  9. packets transmitted, received, % packet loss, time 8592ms
  10. rtt min/avg/max/mdev = 0.235/0.301/0.428/0.056 ms

(3) 网速测试:

本次测试的环境是阿里云上的ECS,内网带宽为 1Gbits。

先安装iperf3(网速测试工具)

  1. curl "http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz" -o iperf-3.0..tar.gz
  2. tar xzvf iperf-3.0..tar.gz
  3. cd iperf-3.0.
  4. ./configure
  5. make
  6. make install

在节点2上启动iperf服务

  1. # iperf3 -s
  2. -----------------------------------------------------------
  3. Server listening on
  4. -----------------------------------------------------------

在节点1上启动网速测试

  1. # iperf3 -c 168.108.192.0
  2. Connecting to host 168.108.192.0, port
  3. [ ] local 168.108.0.1 port connected to 168.108.192.0 port
  4. [ ID] Interval Transfer Bandwidth Retr Cwnd
  5. [ ] 0.00-1.00 sec MBytes 1.42 Gbits/sec KBytes
  6. [ ] 1.00-2.00 sec 95.2 MBytes Mbits/sec KBytes
  7. [ ] 2.00-3.00 sec 95.0 MBytes Mbits/sec KBytes
  8. [ ] 3.00-4.00 sec 96.2 MBytes Mbits/sec KBytes
  9. [ ] 4.00-5.00 sec 93.8 MBytes Mbits/sec KBytes
  10. [ ] 5.00-6.00 sec 95.0 MBytes Mbits/sec KBytes
  11. [ ] 6.00-7.00 sec 95.0 MBytes Mbits/sec KBytes
  12. [ ] 7.00-8.00 sec 95.0 MBytes Mbits/sec KBytes
  13. [ ] 8.00-9.00 sec 93.8 MBytes Mbits/sec KBytes
  14. [ ] 9.00-10.00 sec 95.0 MBytes Mbits/sec KBytes
  15. - - - - - - - - - - - - - - - - - - - - - - - - -
  16. [ ID] Interval Transfer Bandwidth Retr
  17. [ ] 0.00-10.00 sec MBytes Mbits/sec sender
  18. [ ] 0.00-10.00 sec MBytes Mbits/sec receiver
  19.  
  20. iperf Done.

测试下来平均网速:发送速度 859 Mbits/sec ,收取速度 856 Mbits/sec。网速还是让人比较满意的。

docker (centOS 7) 使用笔记5 - weave网络的更多相关文章

  1. docker (centOS 7) 使用笔记3 - docker swarm mode

    1. 什么是docker swarm mode docker engine自带的 容器管理 工具.功能比较早的 docker swarm 更多,且集成在docker engine里. (docker ...

  2. docker (centOS 7) 使用笔记2 - 使用nfs作为volume

    本次测试的服务器2台,服务器#1(centos7)最为docker容器所在的host,服务器#2(centos6)提供NFS服务 1. #2上配置NFS服务 (1) 安装nfs软件包 yum -y i ...

  3. docker (centOS 7) 使用笔记1

    1. docker配置 初次在安装完docker后,初始化配置 copy默认的docker.service后,重启服务,会在/etc/systemd/system/multi-user.target. ...

  4. docker (centOS 7) 使用笔记3 - 修改docker默认的虚拟网址

    近日在使用VPN时发现和docker的虚拟网址发生了冲突,都是172.17.0.1,故需要修改docker的默认网址. 1. 当前状态 # ifconfig docker0: flags=<UP ...

  5. docker (centOS 7) 使用笔记4 - etcd服务

    本次测试的系统包含centos 7.2 64 bit,centos 7.3 64 bit 1. 安装 yum -y install etcd 2. 配置 此处一共准备了3台机器(10.10.10.10 ...

  6. docker (centOS 7) 使用笔记6 - skydns

    skydns被用于kubenets作为DNS服务.本次测试是单独使用skydns作为DNS服务器,且作为loadbalance使用. 前提:需要先安装配置etcd服务 (在前面的文章里,已经安装部署了 ...

  7. 如何使用 Weave 网络?- 每天5分钟玩转 Docker 容器技术(63)

    weave 是 Weaveworks 开发的容器网络解决方案.weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来.对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交 ...

  8. Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)

    上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构.在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 - ...

  9. Docker Weave网络部署

    Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也可以加密传输.Weave Net创建一个连接多个Docker主机的虚拟网络,类似于一个以太网交换机 ...

随机推荐

  1. vue-cli npm run build 打包问题 webpack@3.6

    1, vue-router 路由 有两个模式 (mode) hash (默认模式) 使用URL来模拟一个完整的URL 但是没个URL都会带上 "#/'' 支持所有浏览器 这个模式使用 red ...

  2. 【CodeBase】PHP转换编码,读写文件/网页内容的防乱码方法

    核心代码: //检查字符串的编码 $charset=mb_detect_encoding($doc,['ASCII','GB2312','GBK','BIG5','UTF8'],TRUE); //字符 ...

  3. 第48课 thinkphp5添加商品库

    目录 思路: 1. html页面里属性下拉框里的值是从goods_attr联attr里的查出来传到模板里的.在属性的下拉栏里展示出来 2. html页面里用二维数组的结构goods_attr[{$k} ...

  4. Python知识点入门笔记——Python文件操作、异常处理及random模块使用

    文件是存储在外部介质的数据集合,通常可以长久保存,前提是介质不易损坏 Python的绝对路径写法: E:\\编程学习资料\\爬取某社区高清无码大图.py E:/编程学习资料/爬取某社区高清无码大图.p ...

  5. python3调取百度地图API输出某地点的经纬度信息

    1. 查看API接口说明 地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding 注:callback ...

  6. Paul Zindel【保罗·金代尔】

    Paul Zindel Paul Zindel's death on March 27, 2003 ended the brilliant life of a famous write. 2003年3 ...

  7. 洛谷 P3740 [HAOI2014]贴海报

    题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...

  8. 【Todo】 cygwin下emacs中M-x shell 中出现乱码

  9. Java面向对象---类与对象的关系

    类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new ...

  10. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...