摘要:查看一下當(dāng)前容器的網(wǎng)絡(luò)配置有兩個(gè)網(wǎng)絡(luò)接口和,其中連接的是默認(rèn)網(wǎng)絡(luò),即與時(shí)一對(duì)。網(wǎng)絡(luò)詳細(xì)講解可看鏈接網(wǎng)絡(luò)包含兩個(gè)虛擬交換機(jī)和,和將二者連接在一起。和分工不同,負(fù)責(zé)將容器接入網(wǎng)絡(luò),負(fù)責(zé)在主機(jī)間隧道中并收發(fā)數(shù)據(jù)。
主要參考每天5分鐘玩轉(zhuǎn)docker容器技術(shù)博客。 記錄下自己的實(shí)驗(yàn)過(guò)程。 如果想學(xué)習(xí),請(qǐng)直接參考該博客http://www.cnblogs.com/CloudMan6/概述
Weave創(chuàng)建的虛擬網(wǎng)絡(luò)將部署在多個(gè)主機(jī)上的容器連接起來(lái)。
對(duì)容器而言,weave就像一個(gè)巨大的以太網(wǎng)交換機(jī),所有容器都被接入這個(gè)交換機(jī),容器可以直接通信,無(wú)需nat和端口映射。
weave的dns模塊使容器可以通過(guò)hostname訪問(wèn)
weave不依賴分布是數(shù)據(jù)庫(kù)交換網(wǎng)絡(luò)信息,每個(gè)主機(jī)上只需運(yùn)行weave組件就能建立起跨主機(jī)的容器網(wǎng)絡(luò)。
搭建實(shí)驗(yàn)環(huán)境 安裝部署weave在實(shí)驗(yàn)機(jī)器上執(zhí)行如下命令
curl -L git.io/weave -o /usr/local/bin/weave chmod a+x /usr/local/bin/weave在host1中啟動(dòng)weave
host1中執(zhí)行weave launch,啟動(dòng)weave相關(guān)服務(wù)。
weave的所有組件以容器運(yùn)行
root@host1:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e6c28480e461 weaveworks/weave:2.3.0 "/home/weave/weaver ?? 4 seconds ago Up 4 seconds weave
weave會(huì)創(chuàng)建一個(gè)新的docker網(wǎng)絡(luò)weave
root@host1:~# docker network ls NETWORK ID NAME DRIVER SCOPE 810c1c359ba2 bridge bridge local 1085e045479e host host local 8a7c9f8a4f9f none null local 5cdb070956f9 weave weavemesh local
該網(wǎng)絡(luò)的詳情
root@host1:~# docker network inspect 5cdb070956f9|more [ { "Name": "weave", "Id": "5cdb070956f9ce7ef2cdc29fc62cfe55c4128de3283b385de63074276956ff33", "Created": "2018-05-22T22:21:54.904364416+08:00", "Scope": "local", "Driver": "weavemesh", "EnableIPv6": false, "IPAM": { "Driver": "weavemesh", "Options": null, "Config": [ { "Subnet": "10.32.0.0/12" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": { "works.weave.multicast": "true" }, "Labels": {} } ]
在host1中運(yùn)行容器bbox1
root@host1:~# eval $(weave env) root@host1:~# docker run --name bbox1 -itd busybox
首先執(zhí)行 eval $(weave env) 很重要,其作用是將后續(xù)的 docker 命令發(fā)給 weave proxy 處理。如果要恢復(fù)之前的環(huán)境,可執(zhí)行 eval $(weave env --restore)。
查看一下當(dāng)前容器bbox1的網(wǎng)絡(luò)配置
root@host1:~# docker exec -it bbox1 ip a 1: lo:mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 12: eth0@if13: mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever 14: ethwe@if15: mtu 1376 qdisc noqueue link/ether 16:8c:eb:85:98:2c brd ff:ff:ff:ff:ff:ff inet 10.32.0.1/12 brd 10.47.255.255 scope global ethwe valid_lft forever preferred_lft forever
bbox1有兩個(gè)網(wǎng)絡(luò)接口eth0和ethwe,其中eth0連接的是默認(rèn)bridge網(wǎng)絡(luò),即docker0.
vethwe與vethwepl2516時(shí)一對(duì)veth pair。
root@host1:~# brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242d3efdb74 no veth7fb85fa weave 8000.cebc0b34efc6 no vethwe-bridge vethwepl2516
網(wǎng)絡(luò)詳細(xì)講解可看鏈接
weave 網(wǎng)絡(luò)包含兩個(gè)虛擬交換機(jī):Linux bridge weave 和 Open vSwitch datapath,veth pair vethwe-bridge 和 vethwe-datapath 將二者連接在一起。weave 和 datapath 分工不同,weave 負(fù)責(zé)將容器接入 weave 網(wǎng)絡(luò),datapath 負(fù)責(zé)在主機(jī)間 VxLAN 隧道中并收發(fā)數(shù)據(jù)。
跨主機(jī)容器連接在host2上執(zhí)行如下命令:
weave launch host1_ip
*必須指定host1的ip,這樣host1和host2才能加入到同一個(gè)weave網(wǎng)絡(luò)
root@host2:~# eval $(weave env) root@host2:~# docker run --name bbox3 -itd busyboxweave網(wǎng)絡(luò)連通性
bbox3 可以ping通bbox1
root@host2:~# docker exec bbox3 ping bbox1 PING bbox1 (10.32.0.1): 56 data bytes 64 bytes from 10.32.0.1: seq=0 ttl=64 time=1.867 ms 64 bytes from 10.32.0.1: seq=1 ttl=64 time=1.345 ms
鏈接
如果要實(shí)現(xiàn)網(wǎng)絡(luò)隔離,可以通過(guò)環(huán)境變量 WEAVE_CIDR 為容器分配不同 subnet 的 IP
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/27300.html
摘要:找到規(guī)則的編號(hào)將它刪除打開本地和對(duì)的端口會(huì)自動(dòng)進(jìn)行檢測(cè),把它關(guān)掉啟動(dòng)啟動(dòng)并連接主機(jī),注意主機(jī)不要去連接主機(jī)等待下載剩下的支持容器啟動(dòng)容器,使用網(wǎng)橋給容器分配溝通地址容器測(cè)試容器跨主機(jī)通信成功 Docker容器利用weave實(shí)現(xiàn)跨主機(jī)互聯(lián) 環(huán)境:showImg(https://segmentfault.com/img/bV7WcZ?w=429&h=179); 實(shí)現(xiàn)目的:實(shí)現(xiàn)主機(jī)A中容器1...
摘要:容器管理網(wǎng)絡(luò)連接單機(jī)網(wǎng)絡(luò)配置虛擬網(wǎng)橋的特點(diǎn)可以設(shè)置地址相當(dāng)于擁有一個(gè)隱藏的虛擬網(wǎng)卡的地址自動(dòng)劃分分配地址分配地址子網(wǎng)掩碼每一個(gè)主機(jī)都對(duì)應(yīng)一個(gè)容器網(wǎng)卡自定義地址自定義虛擬網(wǎng)橋添加虛擬網(wǎng)橋更改守護(hù)進(jìn)程的啟動(dòng)配置容器互聯(lián)默認(rèn)允許所有容器間互聯(lián) Docker容器管理 Docker網(wǎng)絡(luò)連接 單機(jī)Docker網(wǎng)絡(luò)配置 linux虛擬網(wǎng)橋的特點(diǎn): 可以設(shè)置IP地址 相當(dāng)于擁有一個(gè)隱藏的虛擬網(wǎng)卡...
摘要:第層網(wǎng)絡(luò)的一個(gè)值得注意的示例是以太網(wǎng),其中表示為子層。與其他方案相比,相對(duì)容易安裝和配置。與不同,不使用網(wǎng)絡(luò)。網(wǎng)絡(luò)策略是其最受追捧的功能之一。 本文將在介紹技術(shù)原理和相應(yīng)術(shù)語(yǔ)的基礎(chǔ)上,再集中探索與詳細(xì)對(duì)比目前最流行的CNI插件:Flannel、Calico、Weave和Canal,對(duì)比介紹它們的原理、使用方法、適用場(chǎng)景和優(yōu)缺點(diǎn)等。 showImg(https://segmentfaul...
摘要:第層網(wǎng)絡(luò)的一個(gè)值得注意的示例是以太網(wǎng),其中表示為子層。與其他方案相比,相對(duì)容易安裝和配置。與不同,不使用網(wǎng)絡(luò)。網(wǎng)絡(luò)策略是其最受追捧的功能之一。 本文將在介紹技術(shù)原理和相應(yīng)術(shù)語(yǔ)的基礎(chǔ)上,再集中探索與詳細(xì)對(duì)比目前最流行的CNI插件:Flannel、Calico、Weave和Canal,對(duì)比介紹它們的原理、使用方法、適用場(chǎng)景和優(yōu)缺點(diǎn)等。 showImg(https://segmentfaul...
閱讀 3196·2021-09-22 15:52
閱讀 2964·2019-08-30 15:55
閱讀 2760·2019-08-30 15:53
閱讀 2511·2019-08-30 13:21
閱讀 1699·2019-08-30 13:10
閱讀 2545·2019-08-26 12:09
閱讀 2633·2019-08-26 10:33
閱讀 1882·2019-08-23 18:06