(十六)如何使用 Weave 網路?
? weave 是 Weaveworks 開發的容器網路解決方案,weave 創建的虛擬網路可以將部署在多個主機上的容器連接起來,對容器來說,weave 就像一個巨大的以太網交換機,所有容器都被接入這個交換機,容器可以直接通信,無需 NAT 和埠映射,除此之外,weave 的 DNS 模塊使容器可以通過 hostname 訪問,
(1)實驗環境描述
? weave 不依賴分布式資料庫(例如 etcd 和 consul)交換網路資訊,每個主機上只需運行 weave 組件就能建立起跨主機容器網路,我們會在 host1 和 host2 上部署 weave 并實踐 weave 的各項特性, (部署在host1和host2)
(2)安裝部署 weave
weave 安裝非常簡單,在 host1 和 host2 上執行如下命令:
curl -L git.io/weave -o /usr/local/bin/weave
chmod a+x /usr/local/bin/weave
(3)在 host1 中啟動 weave
在 host1 中執行 weave launch 命令,啟動 weave 相關服務,weave 的所有組件都是以容器方式運行的,weave 會從 docker hub 下載最新的 image 并啟動容器,
root@host1:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57cd0862223a weaveworks/weave:2.7.0 "/home/weave/weaver …" About a minute ago Up About a minute weave
c9e8ae0a84c5 weaveworks/weaveexec:2.7.0 "data-only" About a minute ago Created weavevolumes-2.7.0
16f3acb5ac48 weaveworks/weavedb:latest "data-only" About a minute ago Created weavedb
weave 運行了三個容器:
weave 是主程式,負責建立 weave 網路,收發資料 ,提供 DNS 服務等,
weaveplugin 是 libnetwork CNM driver,實作 Docker 網路,
weaveproxy 提供 Docker 命令的代理服務,當用戶運行 Docker CLI 創建容器時,它會自動將容器添加到 weave 網路,
weave 會創建一個新的 Docker 網路 weave:
root@host2:~# docker network ls | grep weave
238a4450cfaf weave weavemesh local
root@host2:~#
driver 為 weavemesh,IP 范圍 10.32.0.0/12,
root@host2:~# docker network inspect weave
[
{
"Name": "weave",
"Id": "238a4450cfaffded7602aa646d39c09035ce3a383844cfd4cfe5cc98fcaca7e2",
"Created": "2020-11-11T02:57:15.631745554Z",
"Scope": "local",
"Driver": "weavemesh",
"EnableIPv6": false,
"IPAM": {
"Driver": "weavemesh",
"Options": null,
"Config": [
{
"Subnet": "10.32.0.0/12"
}
]
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/235685.html
標籤:其他
