weave 是 Weaveworks 開發的容器網絡解決方案。weave 建立的虛擬網絡能夠將部署在多個主機上的容器鏈接起來。對容器來講,weave 就像一個巨大的以太網交換機,全部容器都被接入這個交換機,容器能夠直接通訊,無需 NAT 和端口映射。除此以外,weave 的 DNS 模塊使容器能夠經過 hostname 訪問。git
weave 不依賴分佈式數據庫(例如 etcd 和 consul)交換網絡信息,每一個主機上只需運行 weave 組件就能創建起跨主機容器網絡。咱們會在 host1 和 host2 上部署 weave 並實踐 weave 的各項特性。
docker
weave 安裝很是簡單,在 host1 和 host2 上執行以下命令:數據庫
curl -L git.io/weave -o /usr/local/bin/weave網絡
chmod a+x /usr/local/bin/weavecurl
在 host1 中執行 weave launch
命令,啓動 weave 相關服務。weave 的全部組件都是以容器方式運行的,weave 會從 docker hub 下載最新的 image 並啓動容器。分佈式
weave 運行了三個容器:url
weave
是主程序,負責創建 weave 網絡,收發數據 ,提供 DNS 服務等。spa
weaveplugin
是 libnetwork CNM driver,實現 Docker 網絡。代理
weaveproxy
提供 Docker 命令的代理服務,當用戶運行 Docker CLI 建立容器時,它會自動將容器添加到 weave 網絡。code
weave 會建立一個新的 Docker 網絡 weave
:
driver 爲 weavemesh
,IP 範圍 10.32.0.0/12
。
docker network inspect weave
......
"Config": [
{
"Subnet": "10.32.0.0/12"
}
]
......
weave 已經安裝配置完畢,下一節咱們部署容器並分析 weave 網絡底層結構。