1. 程式人生 > >weave實現宿主機之間的容器互聯

weave實現宿主機之間的容器互聯

weave docker

weave實現宿主機之間的容器互聯

Docker Weave簡介

關於weave的原理不做細致的說明,如果想了解weave可以登陸官網:https://www.weave.works/

技術分享

技術分享

註意:防火墻一定要打開6783端口,否則無法連接

註意:開啟路由轉發

#vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

#sysctl -p

環境搭建:一共兩臺機器:兩臺機器都安裝WeaveDocker
192.168.111.128 node1
192.168.111.130 node2

一、在所有需要跨主機互通的docker宿主機安裝weave
1node1上安裝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.131route容器建立連接。這樣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實現宿主機之間的容器互聯