weave實現宿主機之間的容器互聯
weave實現宿主機之間的容器互聯
Docker Weave簡介
關於weave的原理不做細致的說明,如果想了解weave可以登陸官網:https://www.weave.works/
註意:防火墻一定要打開6783端口,否則無法連接
註意:開啟路由轉發
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl -p
環境搭建:一共兩臺機器:兩臺機器都安裝Weave和Docker
192.168.111.128 node1
192.168.111.130 node2
一、在所有需要跨主機互通的docker宿主機安裝weave。
1、在node1上安裝weave,並啟動weave。
#curl -L git.io/weave -o /usr/local/bin/weave
#chmod a+x /usr/local/bin/weave
weave version 默認不會下載對應容器,初次運行時會提示容器不存在。你可在運行 weave launch 後在來驗證一下
初始化Weave網絡
在 dev-master-01 上初始化Weave網絡非常的簡單,只需運行 weave launch 命令就行了。這條命令是在容器中運行一個 weave router ,需要在每臺主機上都啟用這個服務。該服務需要三個docker容器來輔助運行,首次運行時會自動下載相關鏡像。另外執行 weave launch 之前要保證有 bridge-utils 網橋工具包
#yum install -y bridge-utils
#weave launch
等命令運行結束後,網絡就初始化好了。
另外還會生成一個名字叫weave的網橋,另一個是Docker默認生成的。
docker中也會生成一個使用weave的網橋的自定義網絡。
weave的這些數據是保存在每臺機器上分配的名為 weavedb 的容器上的,它是一個 data volume 容器,只負責數據的持久化。
連接不同主機
node主機需要連接到master主機,只需要在 weave launch 後面跟上master主機的ip或者hostname就行了。兩臺機器就會自動建立集群,並同步所有需要的信息。
主機 node02 連接到主機 node01 :
在 node02 的主機上執行
#weave launch 192.168.111.128
#weave connect 192.168.111.128
#weave version
這個命令相當於在本地啟動了 weave route ,再通過 weave connect 192.168.111.128來和192.168.111.131的route容器建立連接。這樣weave route就能相互找到remote主機。
運行 weave status ,可以查看 weave 的狀態信息:
Weave有三種方式和Docker進行集成,以便運行的容器跑在Weave網絡中。
· 使用 weave run 命令直接運行容器。
· 使用 weave env 命令修改 DOKCER_HOST 環境變量的值,使 docker client 和 weave 交互, weave 和 docker daemon 交互,自動為容器配置網絡,對用戶透明。
· 使用 weave plugin ,在運行容器的時候使用 --net=weave 參數。
使用 weave run 命令直接運行容器
我們在node01主機上運行一臺容器,命名為b1:
#docker run --net=weave --name b1 -it centos:node01 /bin/bash
#docker run --net=weave --name b2 -it centos:node02 /bin/bash
使用 weave env 命令運行容器
#eval $(weave env)
#docker run --name d1 -it centos:node01 /bin/bash
#eval $(weave env)
#docker run --name d2 -it centos:node02 /bin/bash
到此,如果沒有出現任何問題,跨主機的docker容器已經能夠互聯。
使用weave實現跨主機docker容器互聯
本文出自 “IT大本營” 博客,轉載請與作者聯系!
weave實現宿主機之間的容器互聯