一文搞懂Kubernetes的網(wǎng)絡(luò)模型:Overlay和Underlay



- Private:禁止構(gòu)建在同一物理接口上的多個(gè)MAC VLAN實(shí)例(容器接口)彼此間的通信,即便外部的物理交換機(jī)支持“發(fā)夾模式”也不行。
- VPEA:允許構(gòu)建在同一物理接口上的多個(gè)MAC VLAN實(shí)例(容器接口)彼此間的通信,但需要外部交換機(jī)啟用發(fā)夾模式,或者存在報(bào)文轉(zhuǎn)發(fā)功能的路由器設(shè)備。
- Bridge:將物理接口配置為網(wǎng)橋,從而允許同一物理接口上的多個(gè)MAC VLAN實(shí)例基于此網(wǎng)橋直接通信,而無須依賴外部的物理交換機(jī)來交換報(bào)文;此為最常用的模式,甚至還是Docker容器唯一支持的模式。
- Passthru:允許其中一個(gè)MAC VLAN實(shí)例直接連接物理接口。

- Linux主機(jī)連接到的外部交換機(jī)或路由器啟用了防止MAC地址欺騙的安全策略;
- 虛擬接口的需求數(shù)量超出物理接口能夠支撐的容量上限,并且將接口置于混雜模式會(huì)給性能帶來較大的負(fù)面影響;
-
將虛擬接口放入不受信任的網(wǎng)絡(luò)名稱空間中可能會(huì)導(dǎo)致惡意的濫用。
需要注意的是,Linux內(nèi)核自4.2版本后才支持IP VLAN網(wǎng)絡(luò)驅(qū)動(dòng),且在Linux主機(jī)上使用ip link命令創(chuàng)建的802.1q配置接口不具有持久性,因此需依賴管理員通過網(wǎng)絡(luò)啟動(dòng)腳本保持配置。 ?3.??直接路由 “直接路由”模型放棄了跨主機(jī)容器在L2的連通性,而專注于通過路由協(xié)議提供容器在L3的通信方案。這種解決方案因?yàn)楦子诩傻浆F(xiàn)在的數(shù)據(jù)中心的基礎(chǔ)設(shè)施之上,便捷地連接容器和主機(jī),并在報(bào)文過濾和隔離方面有著更好的擴(kuò)展能力及更精細(xì)的控制模型,因而成為容器化網(wǎng)絡(luò)較為流行的解決方案之一。 ? 一個(gè)常用的直接路由解決方案如圖10-12所示,每個(gè)主機(jī)上的各容器在二層通過網(wǎng)橋連通,網(wǎng)關(guān)指向當(dāng)前主機(jī)上的網(wǎng)橋接口地址??缰鳈C(jī)的容器間通信,需要依據(jù)主機(jī)上的路由表指示完成報(bào)文路由,因此每個(gè)主機(jī)的物理接口地址都有可能成為另一個(gè)主機(jī)路由報(bào)文中的“下一跳”,這就要求各主機(jī)的物理接口必須位于同一個(gè)L2網(wǎng)絡(luò)中。 ? 于是,在較大規(guī)模的主機(jī)集群中,問題的關(guān)鍵便轉(zhuǎn)向如何更好地為每個(gè)主機(jī)維護(hù)路由表信息。常見的解決方案有: ①Flannel host-gw使用存儲(chǔ)總線etcd和工作在每個(gè)節(jié)點(diǎn)上的flanneld進(jìn)程動(dòng)態(tài)維護(hù)路由; ②Calico使用BGP(Border Gateway Protocol)協(xié)議在主機(jī)集群中自動(dòng)分發(fā)和學(xué)習(xí)路由信息。與Flannel不同的是,Calico并不會(huì)為容器在主機(jī)上使用網(wǎng)橋,而是僅為每個(gè)容器生成一對(duì)veth設(shè)備,留在主機(jī)上的那一端會(huì)在主機(jī)上生成目標(biāo)地址,作為當(dāng)前容器的路由條目,如圖10-13所示。 顯然,較Overlay來說,無論是MAC VLAN、IP VLAN還是直接路由機(jī)制的Underlay網(wǎng)絡(luò)模型的實(shí)現(xiàn),它們因無須額外的報(bào)文開銷而通常有著更好的性能表現(xiàn),但對(duì)底層網(wǎng)絡(luò)有著更多的限制條件。 本文選自馬哥教育CEO馬哥(馬永亮)撰寫的《Kubernetes進(jìn)階實(shí)戰(zhàn)(第2版)》,第十章 10.1.3-10.1.4節(jié),經(jīng)出版方授權(quán)發(fā)布。 對(duì)本書感興趣的讀者朋友,歡迎掃碼進(jìn)群,與馬哥進(jìn)行技術(shù)交流。 暢銷書全新升級(jí),K8s架構(gòu)、部署、組件原理、配置實(shí)戰(zhàn)一次通關(guān)!多圖詳解流程與架構(gòu),大量示例可驗(yàn)證與實(shí)操,推薦閱讀,京東限時(shí)5折,預(yù)購從速喲,掃碼了解詳情↓ 如果想徹底學(xué)透Kubernetes,強(qiáng)烈推薦馬哥教育最新推出的Kubernetes專題課程,馬哥親授,書籍+配套視頻教程,輕松拿下運(yùn)維漲薪神器Kubernetes! Kubernetes?專題課程
今年4月份,馬哥應(yīng)華為邀請(qǐng)參加“華為云原生kubernetes進(jìn)階實(shí)操訓(xùn)練”,幫四川銀行、成都農(nóng)商銀行、四川新網(wǎng)銀行等60余家金融行業(yè)機(jī)構(gòu)及20多家四川大型企業(yè)的技術(shù)人員開展相關(guān)培訓(xùn),幫助行業(yè)客戶更好地應(yīng)對(duì)快速增長(zhǎng)的“上云”需求。
2021年5月,馬哥教育順應(yīng)技術(shù)迭代要求,重磅推出了《Kubernetes 專題課程》。便于你對(duì)kubernetes的實(shí)踐運(yùn)用,在實(shí)戰(zhàn)項(xiàng)目中掌握、吃透企業(yè)級(jí)核心工作邏輯,本課程幾乎涵蓋了Kubernetes所有沖擊大廠必備知識(shí)點(diǎn),精準(zhǔn)提升“薪”動(dòng)力。
Kubernetes專題課程大綱
本課程致力于幫助容器編排技術(shù)的初級(jí)和中級(jí)用戶循序漸進(jìn)地理解與使用Kubernetes系統(tǒng),因此課程充分考慮到初學(xué)者進(jìn)入新知識(shí)領(lǐng)域時(shí)的茫然,采用由淺入深、提綱挈領(lǐng)、再由點(diǎn)到面的方式講解每一個(gè)知識(shí)細(xì)節(jié)。 對(duì)于每個(gè)知識(shí)點(diǎn),不僅介紹了其概念和用法,還分析了為什么有這個(gè)概念,實(shí)現(xiàn)的方式是什么,背后的邏輯為何,等等,使學(xué)員不僅能知其然,還能知其所以然 掃碼解鎖 高清完整版課程大綱 課程特色 馬哥教育講課貼合實(shí)際應(yīng)用,采用“理論+實(shí)戰(zhàn)”的方式,秉承“良心精神,匠心教育”的理念,勢(shì)必教好每一位學(xué)員,傳授真實(shí)有效的知識(shí)和經(jīng)驗(yàn),不斷優(yōu)化的授課方式和內(nèi)容也得到了一眾學(xué)員的好評(píng)。
參考互聯(lián)網(wǎng)大廠的實(shí)戰(zhàn)經(jīng)驗(yàn)和崗位需求,為運(yùn)維和開發(fā)人員設(shè)計(jì)的Kubernetes提升專題課程,更加實(shí)用。
Q&A
Q :課程時(shí)長(zhǎng)多少?多久可以學(xué)完? A:本課程時(shí)長(zhǎng)約70+課時(shí),如果是全天學(xué)習(xí),13天就可以學(xué)完。 Q :課程學(xué)習(xí)形式是什么? A:該課程為加密視頻授權(quán)觀看(授權(quán)期限1年,1年內(nèi)僅授權(quán)2次,超過時(shí)間及次數(shù)不再授權(quán)),支持Windows電腦、iPad、iPhone、MAC設(shè)備。 Q :學(xué)不會(huì),聽不懂怎么辦? A:看視頻比看文檔好很多,有群里同學(xué)的討論可以形成一個(gè)一起學(xué)習(xí)的氛圍。這些可以提高你的學(xué)習(xí)效果。
