Docker Weave網路部署
阿新 • • 發佈:2018-12-22
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
啟動並於其他主機連線
weave launch
會啟動並下載映象
連線
weave launch 192.168.56.129
檢視路由程序
節點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會繞過這個主機,保證兩邊容器可以繼續通訊,當恢復時,恢復完全連線。