22、《每天5分钟玩转Docker容器技术》学习--Flannel Network内部结构
一、環(huán)境介紹
二、環(huán)境搭建
????????環(huán)境搭建這里就不再重復(fù)了,請(qǐng)大家參考上一篇文章!
????????https://blog.51cto.com/hostman/2103503
????????這里我們從配置flannel信息到數(shù)據(jù)庫(kù)中開(kāi)始
????????創(chuàng)建一個(gè)文件flannel-config.json,寫入如下內(nèi)容
cat?>>flannel-config.json<<EOF
{
??"Network":?"10.10.0.0/16",
??"SubnetLen":?24,
??"Backend":?{
????"Type":?"vxlan"
??}
}
EOF
Network?定義該網(wǎng)絡(luò)的?IP?池為?10.10.0.0/16。
SubnetLen?指定每個(gè)主機(jī)分配到的?subnet?大小為?24?位,即10.10.X.0/24。
Backend?為通信類型。?vxlan,即主機(jī)間通過(guò)?vxlan?通信,后面還會(huì)討論host-gw。
etcdctl --endpoints=192.168.56.131:2379 set /docker-test/network/config < flannel-config.json
docker01和docker02主機(jī)上啟動(dòng)flannel網(wǎng)絡(luò)
flanneld?-etcd-endpoints=http://192.168.56.131:2379?-iface=ens33?-etcd-prefix=/docker-test/network
這里的終端窗口不要關(guān)閉
三、當(dāng)前網(wǎng)絡(luò)環(huán)境
1、安裝完成之后的網(wǎng)絡(luò)結(jié)構(gòu)
docker01主機(jī)新增一個(gè)10.10.10.0網(wǎng)段的網(wǎng)卡flannel.1
docker02主機(jī)新增一個(gè)10.10.58.0網(wǎng)段的網(wǎng)卡flannel.1
可以看到?jīng)]有netns,由以上信息可以得到,flannel目前是虛擬網(wǎng)卡
可以看到我們現(xiàn)在只是做到了【安裝etcd--安裝flannel--flannel關(guān)聯(lián)etcd】,但是docker主機(jī)并沒(méi)有關(guān)聯(lián)flannel網(wǎng)絡(luò),那么進(jìn)行如下操作:
在docker daemon中指定flannel_subnet網(wǎng)段和flannel_mtu最大傳輸單元(使用flannel網(wǎng)絡(luò)的docker主機(jī)都需要配置)
--bip????????????--mtu
docker01主機(jī)
docker02主機(jī)
查看docker主機(jī)當(dāng)前網(wǎng)絡(luò)情況
可以看到,docker0默認(rèn)的橋接網(wǎng)卡的地址是我們?cè)赿ocker daemon中配置的bip的地址
當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu)如下:
四、創(chuàng)建flannel驅(qū)動(dòng)的網(wǎng)絡(luò)在容器中,容器排版如下:
docker run -itd --name xbox1 busybox
docker run -itd --name xbox2 busybox
docker run -itd --name xbox3 busybox
docker run -itd --name xbox4 busybox
五、網(wǎng)絡(luò)分析(container--host)以docker01為例
1、container info
????docker exec xbox1 ip link show
????docker exec xbox1 ip addr show
????docker exec xbox1 ip route show
可以發(fā)現(xiàn)我們的容器中有l(wèi)o口和另一個(gè)網(wǎng)絡(luò)端口,flannel網(wǎng)絡(luò)只會(huì)生成一個(gè)網(wǎng)卡
2、host info
容器中:5: eth0@if6????主機(jī)中:6: vetha71e807@if5????是一對(duì)vnet_pair,并且橋接到了docker0網(wǎng)橋
可以和外網(wǎng)通信,traceroute可以看到10.10.10.1跳轉(zhuǎn)到192.168.56.2
同主機(jī)通信,直接訪問(wèn)
通訊結(jié)構(gòu)如下
跨主機(jī)通信,大家動(dòng)手測(cè)試!
轉(zhuǎn)載于:https://blog.51cto.com/hostman/2103592
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的22、《每天5分钟玩转Docker容器技术》学习--Flannel Network内部结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RaySync 传输协议的有效带宽利用率
- 下一篇: logback 配置文件编写