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