关于weave的原理不做细致的说明,如果想了解weave可以登陆官网:https://www.weave.works/


In this post,使用阿里云3台ECS服务器进行weave搭建,并测试搭建weave后,跨主机docker容器的连通性。
场景:
10.162.204.252 node1
10.171.31.181 node2
10.171.19.139 node3
##一、在所有需要跨主机互通的docker宿主机安装weave。
###1.在node1上安装weave,并启动weave。
1 | $ wget -O /usr/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave |
*注释:在阿里云ECS执行weave launch启动会报错,请在启动的时候加–ipalloc-range 172.16.0.0/12,由于默认ip地址为10段。
*关于 172.16.0.1/12 如何查看

容器启动命令
docker run –name bambou-weixin –net=weave -d -p 8900:8900 bambou-weixin
Apollo配置(也可在yml配置文件中指定)
eureka.instance.preferIpAddress = true (已ip 的形式注册到eureka)
Linux 在demo.sh ( -Deureka.instance.ip-address) 指定eureka地址,避免其他主机服务无法获取不到配置文件 原因如下

解决方式 :
JAVA OPTS
1 | BASE_JAVA_OPTS="-Denv=dev" |
2.在node2上安装weave,并启动weave,并连接node1,如果有多个,可以在连接的时候指定多个。
1 | $ wget -O /usr/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave |
###3.在node3上安装weave,并启动weave,并连接node1,如果有多个,可以在连接的时候指定多个。
1
2
3
4$ wget -O /usr/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
$ chmod +x /usr/bin/weave
$ weave launch 10.162.204.252 10.171.31.181 --ipalloc-range 172.16.0.0/12
$ weave launch 10.162.204.252 --ipalloc-range 172.16.0.0/12
##二、在所有需要跨主机互通的docker宿主机启动docker测试容器。
###1.在node1上,启动一个测试容器,centos或者ubuntu都可以。
1
$ weave run 192.168.4.1/24 -it --name node1 ubuntu /bin/bash
###2.在node2上,启动一个测试容器,centos或者ubuntu都可以。
1
$ weave run 192.168.4.2/24 -it --name node2 centos /bin/bash
###3.在node1上,启动一个测试容器,centos或者ubuntu都可以。
1
$ weave run 192.168.4.3/24 -it --name node3 centos /bin/bash
三、测试容器的互通性。
1.登陆node1上启动的测试容器,测试与node2和node3上docker容器的连通性。

2.登陆node2上启动的测试容器,测试与node1和node3上docker容器的连通性。

3.登陆node3上启动的测试容器,测试与node1和node2上docker容器的连通性。

到此,如果没有出现任何问题,跨主机的docker容器已经能够互联。
最后更新: 2020年02月03日 14:49
原始链接: http://yoursite.com/2019/0505/use-weave-to-achieve-crosshost-docker-container-interconnection.html