电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

對docker中的overlay式網(wǎng)絡(luò)詳解

瀏覽:51日期:2024-11-12 11:32:29

翻譯自docker官方文檔,原文:https://docs.docker.com/network/overlay/

overlay(覆蓋)式網(wǎng)絡(luò)會在多個(gè)docker守護(hù)進(jìn)程所在的主機(jī)之間創(chuàng)建一個(gè)分布式的網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)會覆蓋宿主機(jī)特有的網(wǎng)絡(luò),并允許容器連接它(包括集群服務(wù)中的容器)來安全通信。顯然,docker會處理docker守護(hù)進(jìn)程源容器和目標(biāo)容器之間的數(shù)據(jù)報(bào)的路由。

當(dāng)你初始化一個(gè)集群(swarm)或把一個(gè)docker宿主機(jī)加入一個(gè)已經(jīng)存在的集群時(shí),宿主機(jī)上會新建兩個(gè)網(wǎng)絡(luò):

一個(gè)叫ingress的overlay式網(wǎng)絡(luò),用來處理和集群服務(wù)相關(guān)的控制和數(shù)據(jù)傳輸。當(dāng)你創(chuàng)建一個(gè)集群服務(wù)而且沒有把它連到用戶定義的overlay式網(wǎng)絡(luò)時(shí),它默認(rèn)會連到ingress網(wǎng)絡(luò)。

一個(gè)叫docker_gwbridge的bridge式網(wǎng)絡(luò)。用來連接本docker守護(hù)進(jìn)程和集群中的其他守護(hù)進(jìn)程。

你可以用docker network create命令創(chuàng)建用戶定義的overlay式網(wǎng)絡(luò),就和你創(chuàng)建用戶定義的bridge式網(wǎng)絡(luò)一樣。服務(wù)和容器可以同時(shí)連到多個(gè)網(wǎng)絡(luò)。服務(wù)和容器只能和它所在的網(wǎng)絡(luò)中的其他對象通信。

雖然集群服務(wù)和單獨(dú)的容器都能連到overlay式網(wǎng)絡(luò),但默認(rèn)的表現(xiàn)和配置兩者都是不同的。因此,本主題后面的內(nèi)容會分成三部分:應(yīng)用于所有overlay式網(wǎng)絡(luò)的;應(yīng)用于集群服務(wù)中的網(wǎng)絡(luò)的;應(yīng)用于單獨(dú)的容器使用的overlay式網(wǎng)絡(luò)的。

適用于所有overlay網(wǎng)絡(luò)的操作

創(chuàng)建一個(gè)overlay網(wǎng)絡(luò)

✅先決條件

使用overlay網(wǎng)絡(luò)的docker守護(hù)進(jìn)程需要的防火墻規(guī)則

要讓一個(gè)overlay網(wǎng)絡(luò)中的docker主機(jī)能夠相互通信,你需要打開下面的端口:

1.TCP端口2377,用來集群管理相關(guān)的通信

2.TCP和UDP端口7946,用來進(jìn)行節(jié)點(diǎn)之間的通信

3.UDP端口4789,用來進(jìn)行進(jìn)行overlay網(wǎng)絡(luò)上的數(shù)據(jù)傳輸

在你能創(chuàng)建一個(gè)overlay網(wǎng)絡(luò)之前,你要么要通過docker swarm init把你的docker守護(hù)進(jìn)程初始化成一個(gè)集群管理者(swarm manager),要么要通過docker swarm join把它加入到一個(gè)已存在的集群中。

不管哪種方式,默認(rèn)創(chuàng)建并使用的都是叫做ingress的overlay式網(wǎng)絡(luò)。即使你不打算使用集群服務(wù),也要這么做。

以后你可以創(chuàng)建用戶定義的overlay式網(wǎng)絡(luò)。

要?jiǎng)?chuàng)建一個(gè)用在集群服務(wù)中的overlay式網(wǎng)絡(luò),用下面所示的命令:

$ docker network create -d overlay my-overlay

要?jiǎng)?chuàng)建一個(gè)既能用于集群服務(wù),又能用于單獨(dú)的容器來和其他docker守護(hù)進(jìn)程中的單獨(dú)的容器進(jìn)行通信的網(wǎng)絡(luò),加上--attachable標(biāo)記:

$ docker network create -d overlay --attachable my-attachable-overlay

你可以指定IP地址范圍,子網(wǎng),網(wǎng)關(guān)和其他選項(xiàng)。細(xì)節(jié)請查看docker network create --help。

overlay網(wǎng)絡(luò)上的加密傳輸

所有的服務(wù)管理相關(guān)的傳輸都默認(rèn)用GCM模式的AES算法加密。集群中的管理節(jié)點(diǎn)每12個(gè)小時(shí)輪換加密用的鍵(key)。

如果要加密應(yīng)用數(shù)據(jù),在創(chuàng)建網(wǎng)絡(luò)時(shí)加上--opt encrypted。這個(gè)參數(shù)支持在vxlan級別的IPSEC加密。這個(gè)操作會導(dǎo)致不可忽略的性能下降,所以在應(yīng)用到生產(chǎn)環(huán)境前要先測試。

當(dāng)你開啟overlay加密后,docker會在所有網(wǎng)絡(luò)中服務(wù)被調(diào)度到的節(jié)點(diǎn)上創(chuàng)建IPSEC 隧道。這些隧道也會使用GCM模式的AES算法加密,并且每12個(gè)小時(shí)自動輪換加密用的鍵(key)。

❌不要把Windows節(jié)點(diǎn)加入到加密通信的overlay網(wǎng)絡(luò)中。

overlay網(wǎng)絡(luò)上的加密通信不支持Windows。如果Windows節(jié)點(diǎn)試圖連接到加密通信的overlay網(wǎng)絡(luò),不會報(bào)錯(cuò),但這個(gè)節(jié)點(diǎn)會不能和其他節(jié)點(diǎn)通信。

集群模式的overlay網(wǎng)絡(luò)和單獨(dú)的容器

你可以用--opt encrypted --attachable或把沒有被管理的容器加入到網(wǎng)絡(luò)的方式來使用overlay網(wǎng)絡(luò)特性。

$ docker network create --opt encrypted --driver overlay --attachable my-attachable-multi-host-network

修改默認(rèn)的ingress網(wǎng)絡(luò)

大多數(shù)用戶不需要配置ingress網(wǎng)絡(luò)。但docker17.05以及更高版本允許你這么做。如果自動選擇的子網(wǎng)段和你網(wǎng)絡(luò)中已存在的網(wǎng)絡(luò)沖突了,或你需要修改其他底層的網(wǎng)絡(luò)設(shè)置比如MTU的時(shí)候,這個(gè)功能就很有用了。

修改ingress網(wǎng)絡(luò)需要?jiǎng)h除再創(chuàng)建它。這就要求你在集群中創(chuàng)建服務(wù)之前完成修改。如果有發(fā)布端口的服務(wù),在你刪除ingress網(wǎng)絡(luò)之前要先刪除這些服務(wù)。

在ingress網(wǎng)絡(luò)不存在的時(shí)候,已存在的沒有發(fā)布端口的服務(wù)能繼續(xù)提供服務(wù),但沒有負(fù)載均衡功能。那些發(fā)布端口的服務(wù)比如發(fā)布80端口的WordPress服務(wù)會受影響。

用docker network inspect ingress檢查ingress網(wǎng)絡(luò),然后刪除所有所在容器連到ingress的服務(wù)。這些服務(wù)是發(fā)布端口的服務(wù)比如發(fā)布80端口的WordPress服務(wù)。如果所有這些服務(wù)沒有停掉,下一步會失敗。

刪除ingress網(wǎng)絡(luò)。

$ docker network rm ingress

WARNING! Before removing the routing-mesh network, make sure all the nodes in your swarm run the same docker engine version. Otherwise, removal may not be effective and functionality of newly created ingress networks will be impaired.

Are you sure you want to continue? [y/N]

3.用ingress標(biāo)記創(chuàng)建新的overlay網(wǎng)絡(luò),加上你想要的配置。下面的例子把MTU配置成1200,把子網(wǎng)設(shè)置成10.11.0.0/16,并把網(wǎng)關(guān)設(shè)成10.11.0.2。

$ docker network create --driver overlay --ingress --subnet=10.11.0.0/16 --gateway=10.11.0.2 --opt com.docker.network.mtu=1200 my-ingress

注意:你也可以把ingerss網(wǎng)絡(luò)命名成其他名字,但只能有一個(gè)。如果你試圖創(chuàng)建第二個(gè),會失敗。

4.重啟你在第一步停掉的服務(wù)。

修改docker_gwbridge接口

docker_gwbridge是一個(gè)虛擬網(wǎng)橋,用來連接overlay網(wǎng)絡(luò)(包括ingress網(wǎng)絡(luò))和一個(gè)特定的docker守護(hù)進(jìn)程的物理網(wǎng)絡(luò)。當(dāng)你初始化一個(gè)集群或把一個(gè)docker宿主機(jī)加入到一個(gè)集群時(shí),docker會自動創(chuàng)建它,但它不是一個(gè)docker設(shè)備。它存在于docker宿主機(jī)的內(nèi)核中。如果你要修改它的配置,你必須在把宿主機(jī)加入集群前完成,或暫時(shí)把宿主機(jī)從集群中脫離。

停掉docker

刪除docker_gwbridge接口

$ sudo ip link set docker_gwbridge down

$ sudo ip link del name docker_gwbridge

3.啟動docker,不要加入或初始化集群

4.用docker network create命令手動創(chuàng)建或重新創(chuàng)建docker_gwbridge網(wǎng)橋,加上你自定義的設(shè)置。下面的例子使用10.11.0.0/16子網(wǎng)。

$ docker network create --subnet 10.11.0.0/16 --opt com.docker.network.bridge.name=docker_gwbridge --opt com.docker.network.bridge.enable_icc=false --opt com.docker.network.bridge.enable_ip_masquerade=true docker_gwbridge

5.初始化或加入集群。由于網(wǎng)橋已經(jīng)存在,docker不會再用默認(rèn)配置創(chuàng)建它了。

集群服務(wù)中的操作

在overlay網(wǎng)絡(luò)上發(fā)布端口

連到同一個(gè)overlay網(wǎng)絡(luò)的集群服務(wù)會互相暴露所有端口。如果一個(gè)端口要從服務(wù)外部可訪問到,必須在docker service create或docker service update中用-p或--publish來發(fā)布。

遺留的冒號分割的語法和新的逗號分割的語法都是支持的。

更長的語法更好,因?yàn)槟撤N意義上它是自解釋的。

參數(shù) 描述 -p 8080:80 o或-p published=8080,target=80 把服務(wù)內(nèi)的 TCP 端口 80映射到路由中的端口8080 -p 8080:80/udp 或-p published=8080,target=80,protocol=udp 把服務(wù)內(nèi)的 UDP 端口 80映射到路由中的端口8080 -p 8080:80/tcp -p 8080:80/udp 或 -p published=8080,target=80,protocol=tcp -p published=8080,target=80,protocol=udp 把服務(wù)內(nèi)的 TCP 端口 80映射到路由中的端口8080,并把服務(wù)內(nèi)的 UDP 端口 80映射到路由中的端口8080

為集群服務(wù)繞開路由網(wǎng)

默認(rèn)的,集群服務(wù)通過路由網(wǎng)來發(fā)布端口。當(dāng)你連到任一集群節(jié)點(diǎn)(不管它有沒有運(yùn)行端口所代表的服務(wù))上的被發(fā)布的端口時(shí),你都能重定向到運(yùn)行著指定服務(wù)的節(jié)點(diǎn)。docker很有效的充當(dāng)著你的集群服務(wù)的負(fù)載均衡器。使用路由網(wǎng)的服務(wù)運(yùn)行在虛擬IP模式(VIP)下。即使一個(gè)服務(wù)運(yùn)行在一個(gè)節(jié)點(diǎn)上(通過--global標(biāo)記),也會使用路由網(wǎng)。當(dāng)使用路由網(wǎng)時(shí),不能保證哪個(gè)節(jié)點(diǎn)處理客戶端的請求。

要繞開路由網(wǎng),你可以用DNS Round Robin (DNSRR)模式啟動服務(wù)。通過給dnsrr設(shè)置--endpoint-mode標(biāo)記。你必須在服務(wù)前端運(yùn)行你自己的負(fù)載均衡器。docker宿主機(jī)上的服務(wù)名的DNS查詢會返回運(yùn)行著指定服務(wù)的節(jié)點(diǎn)的IP地址集合。配置你的負(fù)載均衡器來使用這份列表并在節(jié)點(diǎn)間平衡通信。

分離控制流和數(shù)據(jù)流

默認(rèn)的,控制流和集群管理者聯(lián)系并在運(yùn)行在同一網(wǎng)絡(luò)上的應(yīng)用間傳輸,雖然控制流是加密的。你可以配置docker,讓它用不同的網(wǎng)絡(luò)接口來處理不同的流。當(dāng)你初始化或加入集群時(shí),分別指定--advertise-addr和--datapath-addr。你必須在每個(gè)要加入集群的節(jié)點(diǎn)上做這個(gè)操作。

overlay網(wǎng)絡(luò)上獨(dú)立容器能用的操作

把獨(dú)立容器連到overlay網(wǎng)絡(luò)

ingress網(wǎng)絡(luò)創(chuàng)建時(shí)沒有指定--attachable標(biāo)記,這意味著只有集群服務(wù)能使用它,獨(dú)立容器不能。你可以把獨(dú)立容器連到用戶定義的,創(chuàng)建時(shí)指定了--attachablebiaoji d overlay網(wǎng)絡(luò)。這給了運(yùn)行在不同docker上的獨(dú)立容器一種能力,即不需在特定docker宿主機(jī)上設(shè)置路由就能通信的能力。

發(fā)布端口

參數(shù) 描述 -p 8080:80 把服務(wù)內(nèi)的 TCP 端口 80映射到路由中的端口8080 -p 8080:80/udp 把服務(wù)內(nèi)的 UDP 端口 80映射到路由中的端口8080 -p 8080:80/tcp -p 8080:80/udp 把服務(wù)內(nèi)的 TCP 端口 80映射到路由中的端口8080,并把服務(wù)內(nèi)的 UDP 端口 80映射到路由中的端口8080

以上這篇對docker中的overlay式網(wǎng)絡(luò)詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 一点车讯-汽车网站,每天一点最新车讯! | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 阜阳在线-阜阳综合门户 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 安徽华耐泵阀有限公司-官方网站 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶| 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 |