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