一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法

docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法

2021-06-10 17:52李奇峰1998 服務器知識

這篇文章主要介紹了docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

overlay網(wǎng)絡解析

內(nèi)置跨主機的網(wǎng)絡通信一直是Docker備受期待的功能,在1.9版本之前,社區(qū)中就已經(jīng)有許多第三方的工具或方法嘗試解決這個問題,例如Macvlan、Pipework、Flannel、Weave等。

雖然這些方案在實現(xiàn)細節(jié)上存在很多差異,但其思路無非分為兩種: 二層VLAN網(wǎng)絡和Overlay網(wǎng)絡

簡單來說,二層VLAN網(wǎng)絡解決跨主機通信的思路是把原先的網(wǎng)絡架構改造為互通的大二層網(wǎng)絡,通過特定網(wǎng)絡設備直接路由,實現(xiàn)容器點到點的之間通信。這種方案在傳輸效率上比Overlay網(wǎng)絡占優(yōu),然而它也存在一些固有的問題。

這種方法需要二層網(wǎng)絡設備支持,通用性和靈活性不如后者。

由于通常交換機可用的VLAN數(shù)量都在4000個左右,這會對容器集群規(guī)模造成限制,遠遠不能滿足公有云或大型私有云的部署需求; 大型數(shù)據(jù)中心部署VLAN,會導致任何一個VLAN的廣播數(shù)據(jù)會在整個數(shù)據(jù)中心內(nèi)泛濫,大量消耗網(wǎng)絡帶寬,帶來維護的困難。

相比之下,Overlay網(wǎng)絡是指在不改變現(xiàn)有網(wǎng)絡基礎設施的前提下,通過某種約定通信協(xié)議,把二層報文封裝在IP報文之上的新的數(shù)據(jù)格式。這樣不但能夠充分利用成熟的IP路由協(xié)議進程數(shù)據(jù)分發(fā);而且在Overlay技術中采用擴展的隔離標識位數(shù),能夠突破VLAN的4000數(shù)量限制支持高達16M的用戶,并在必要時可將廣播流量轉化為組播流量,避免廣播數(shù)據(jù)泛濫。

因此,Overlay網(wǎng)絡實際上是目前最主流的容器跨節(jié)點數(shù)據(jù)傳輸和路由方案。

容器在兩個跨主機進行通信的時候,是使用overlay network這個網(wǎng)絡模式進行通信;如果使用host也可以實現(xiàn)跨主機進行通信,直接使用這個物理的ip地址就可以進行通信。overlay它會虛擬出一個網(wǎng)絡比如10.0.2.3這個ip地址。在這個overlay網(wǎng)絡模式里面,有類似于服務網(wǎng)關的地址,然后把這個包轉發(fā)到物理服務器這個地址,最終通過路由和交換,到達另一個服務器的ip地址。

docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法

環(huán)境介紹

 

hostname ip 系統(tǒng)版本
cdh1 10.30.10.111 centos7
cdh2 10.30.10.112 centos7

 

consul安裝配置

要實現(xiàn)overlay網(wǎng)絡,我們會有一個服務發(fā)現(xiàn)。比如說consul,會定義一個ip地址池,比如10.0.2.0/24之類的。上面會有容器,容器的ip地址會從上面去獲取。獲取完了后,會通過ens33來進行通信,這樣就可以實現(xiàn)跨主機的通信。

docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法

consul通過docker部署在cdh1,首先需要修改cdh1中的docker配置并重啟

?
1
2
3
4
[root@cdh1 /]# vim /etc/docker/daemon.json
//添加以下配置
"live-restore":true
[root@cdh1 /]# systemctl restart docker

“live-restore”:true 此配置的作用為在docker守護程序停止或重啟的時候,容器依然可以保持運行

在cdh1下載consul鏡像并啟動

?
1
2
[root@cdh1 /]# docker pull consul
[root@cdh1 /]# docker run -d -p 8500:8500 -h consul --name consul consul

修改cdh1中的docker配置并重啟

?
1
2
3
4
5
[root@cdh1 /]# vim /etc/docker/daemon.json
# 添加以下兩行配置
"cluster-store": "consul://10.30.10.111:8500"
"cluster-advertise": "10.30.10.111:2375"
[root@cdh1 /]# systemctl restart docker

修改cdh2中的docker配置并重啟

?
1
2
3
4
5
[root@cdh2 /]# vim /etc/docker/daemon.json
# 添加以下兩行配置
"cluster-store": "consul://10.30.10.111:8500"
"cluster-advertise": "10.30.10.112:2375"
[root@cdh2 /]# systemctl restart docker

cluster-store指定的是consul服務地址,因為consul服務運行在cdh1的8500端口,所以兩臺機器的cluster-store值均為consul://10.30.10.111:8500
cluster-advertise指定本機與consul的通信端口,所以指定為本機的2375端口

此時可以通過http://10.30.10.111:8500/訪問consul地址
Key/Value菜單中的docker-nodes目錄中可以看到cdh1和cdh2兩個docker節(jié)點,代表consul配置成功。

docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法

創(chuàng)建overlay網(wǎng)絡

此時我們可以創(chuàng)建overlay網(wǎng)絡,首先查看目前節(jié)點中已有的網(wǎng)絡類型

?
1
2
3
4
5
[root@cdh1 /]# docker network ls
NETWORK ID   NAME    DRIVER    SCOPE
ab0f335423a1  bridge    bridge    local
b12e70a8c4e3  host    host    local
0dd357f3ecae  none    null    local

然后在cdh1的docker節(jié)點創(chuàng)建overlay網(wǎng)絡,因為此時consul服務發(fā)現(xiàn)已經(jīng)正常運行,且cdh1和cdh2的docker服務已經(jīng)接入,所以此時overlay網(wǎng)絡是全局創(chuàng)建的,在任何一臺宿主機創(chuàng)建一次即可。

?
1
2
3
4
5
6
7
8
[root@cdh1 /]# docker network create -d overlay my_overlay
cafa97c5cf9d30dd6cef08a5e9710074c828cea3fdd72edb45315fb4b1bfd84c
[root@cdh1 /]# docker network ls
NETWORK ID   NAME    DRIVER    SCOPE
ab0f335423a1  bridge    bridge    local
b12e70a8c4e3  host    host    local
cafa97c5cf9d  my_overlay   overlay    global
0dd357f3ecae  none    null    local

此時可以看到,創(chuàng)建的overlay網(wǎng)絡,標識為golbal。我們可以查看cdh2的網(wǎng)絡,可以發(fā)現(xiàn)overlay網(wǎng)絡也已經(jīng)創(chuàng)建完畢。

?
1
2
3
4
5
6
[root@cdh2 ~]# docker network ls
NETWORK ID   NAME    DRIVER    SCOPE
90d99658ee8f  bridge    bridge    local
19f844200737  host    host    local
cafa97c5cf9d  my_overlay   overlay    global
3986fe51b271  none    null    local

網(wǎng)絡測試

創(chuàng)建完成后,我們可以在cdh1和cdh2中指定overlay網(wǎng)絡創(chuàng)建docker容器,并進行測試,查看是否可以跨宿主機通信。

在cdh1中創(chuàng)建名稱為master的容器,并查看其IP

?
1
2
3
[root@cdh1 /]# docker run -itd -h master --name master --network my_overlay centos7_update /bin/bash
[root@cdh1 /]# docker inspect -f "{{ .NetworkSettings.Networks.my_overlay.IPAddress}}" master
10.0.0.2

在cdh1中創(chuàng)建名稱為slaver的容器,并查看其IP

?
1
2
3
[root@cdh2 ~]# docker run -itd -h slaver --name slaver --network my_overlay centos7_update /bin/bash
[root@cdh2 ~]# docker inspect -f "{{ .NetworkSettings.Networks.my_overlay.IPAddress}}" slaver
10.0.0.3

此時進入兩臺容器中,互相ping對方的IP,查看是否成功通信

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@cdh1 ~]# docker exec -it master /bin/bash
[root@master /]# ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.587 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.511 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.431 ms
64 bytes from 10.0.0.3: icmp_seq=4 ttl=64 time=0.551 ms
64 bytes from 10.0.0.3: icmp_seq=5 ttl=64 time=0.424 ms
^C
--- 10.0.0.3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.424/0.500/0.587/0.070 ms
?
1
2
3
4
5
6
7
8
9
10
11
[root@cdh2 ~]# docker exec -it slaver /bin/bash
[root@slaver /]# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.499 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.500 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.410 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.370 ms
^C
--- 10.0.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.370/0.444/0.500/0.062 ms

成功通信!

到此這篇關于docker容器間跨宿主機通信-基于overlay的實現(xiàn)方法的文章就介紹到這了,更多相關docker容器間跨宿主機通信內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/mrliqifeng/article/details/113833523

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂伊人| 国产精品1024永久免费视频 | 亚洲成a人片777777久久 | 国产精品成人亚洲 | 99精品在线视频 | 国产精品视频自拍 | 亚洲国产精品自在现线让你爽 | 亚洲精品视频久久 | 韩日理论片 | 无人影院在线播放视频 | 校花被老头夺去第一次动图 | 精品亚洲欧美中文字幕在线看 | 国内偷拍第一页 | 国内久久精品视频 | 成人150p | 好男人在线观看hd中字 | 九九九九九热 | 亚洲精品www久久久久久久软件 | 强波多野结衣女教师 | 极品主播的慰在线播放 | 二次元美女挤奶漫画 | 亚洲乱人伦在线 | 午夜dj影院在线视频观看完整 | 欧美日韩成人在线视频 | 免费观看日本人成影片 | 99精品国产高清自在线看超 | 欧美日韩人成在线观看 | 国产成人精品曰本亚洲77美色 | 亚洲国产精品无码中文字幕 | 日韩无砖专区2020在线 | 亚洲AV无码乱码国产麻豆穿越 | 五月性| chinese国产打屁股 | 欧美精品超清在线播放 | 国产成人福利免费观看 | 无人在线观看免费高清视频播放 | 国产性色视频 | 亚洲午夜精品久久久久久抢 | 美女把小内内脱个精光打屁屁 | 色男人网 | 成人在线一区二区三区 |