共計 1125 個字符,預計需要花費 3 分鐘才能閱讀完成。
本篇內(nèi)容介紹了“docker 下 flannel 的 overlay 網(wǎng)絡舉例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
###1. 網(wǎng)絡拓撲 ###
拓撲如下:(點開看大圖)
容器網(wǎng)卡通過 docker0 橋接到 flannel0 網(wǎng)卡,而每個 host 對應的 flannel0 網(wǎng)段為 10.1.x.[1-255]/24,而 flannel 所組成的一個跨 host 的網(wǎng)段為 10.1.x.x/16,而 flannel0 則為 flanneld 進程虛擬出來的網(wǎng)卡。
docker0 的地址是由 /run/flannel/subnet.env 的 FLANNEL_SUBNET 參數(shù)決定的。
###2.HostA 的 Container1 和 HostB 的 Container2 如何通信 ### host A 的 container1 請求 host B 的 container2 的的數(shù)據(jù)時,流程如下:
根據(jù) host A 的路由規(guī)則 10.1.15.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0“數(shù)據(jù)交給 docker0 處理。
docker0 會收到數(shù)據(jù),然后根據(jù)路由規(guī)則”10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel0 數(shù)據(jù)被交由給 flannel0 網(wǎng)卡處理。flanneld 會把數(shù)據(jù)封包然后送給 eth0,用 udp 協(xié)議發(fā)送到對方 host 的 eth0 網(wǎng)卡。
host B 的 eth0 網(wǎng)卡收到后,根據(jù)路由規(guī)則 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel0 則交給 flannel0 網(wǎng)卡處理。
flanneld 會把數(shù)據(jù)解包,根據(jù)路由規(guī)則“10.1.20.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0 交給 docker0 處理。
則 host B 的 container 2 將會收到數(shù)據(jù)。
至此網(wǎng)路通信解釋完畢。
###3. 自動部署程序中添加物理機需要注意的地方 ### 基于上,故而:
網(wǎng)卡 docker0、flannel0 網(wǎng)卡的正確建立。
路由被正確配置!10.1.x.[1-255]/24 和 10.1.x.x/16 兩個網(wǎng)段的正確路由配置。
我們的網(wǎng)絡環(huán)境檢查都基于此。通常情況下,以上兩者可以自動正確建立成功,但有時候會出現(xiàn)異常。
添加物理機時候檢查網(wǎng)絡環(huán)境 ifconfig docker0 和 flannel0 并且需要正確配置路由規(guī)則。
flanneld 的 udp 端口 2375 需要添加到 iptables 例外。
“docker 下 flannel 的 overlay 網(wǎng)絡舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!