三大公有云廠商 Kubernetes 的網(wǎng)絡(luò)模型

自建 Kubernetes 集群

自建時(shí)一般選用 Flannel CNI 網(wǎng)絡(luò)插件,需要給 Pod 和 Service 分配虛擬網(wǎng)段诵盼;節(jié)點(diǎn)內(nèi)的 Pod 互訪九昧,直接通過(guò) CNI 網(wǎng)橋在二層進(jìn)行交互擅腰;跨節(jié)點(diǎn)之間的 Pod 互訪莹弊,在 Flannel VxLAN 模式下涤久,通過(guò)隧道封裝技術(shù)來(lái)進(jìn)行網(wǎng)絡(luò)傳輸;在 host-gw 模式下忍弛,可以直接基于路由的方式响迂,無(wú)需封包解包,由于直接將目標(biāo) Node 作為下一跳地址细疚,充當(dāng)網(wǎng)關(guān)蔗彤,所以此模式下要求集群節(jié)點(diǎn)必須是二層聯(lián)通的,不能跨網(wǎng)段疯兼。

非集群節(jié)點(diǎn)是不能訪問(wèn)集群內(nèi)部網(wǎng)絡(luò)然遏,即 Pod 容器網(wǎng)絡(luò)和 Service 服務(wù)網(wǎng)絡(luò)。一般開(kāi)發(fā)環(huán)境為了本地調(diào)試镇防,要將本地網(wǎng)絡(luò)與 Kubernetes 的集群網(wǎng)絡(luò)打通啦鸣,可以通過(guò)架設(shè) VPN 的方式。

Service 的網(wǎng)絡(luò)實(shí)際就是 kube-proxy 維護(hù)的 iptables 規(guī)則来氧, 這些規(guī)則存在于集群所有節(jié)點(diǎn)上,所以從任何一個(gè)節(jié)點(diǎn)訪問(wèn) 都可以定位到其代理的 Endpoints 列表。ClusterIP 的存在也只是為了找出其代理的 endpoint 地址做 DNAT 目標(biāo)地址轉(zhuǎn)換啦扬。

如果是 NodePort 類(lèi)型的 Service中狂,流入請(qǐng)求的目標(biāo) Pod 地址可能不在當(dāng)前節(jié)點(diǎn),這時(shí)就會(huì)做 SNAT 替換數(shù)據(jù)包的源 IP 地址扑毡,當(dāng)然這里也能通過(guò)配置來(lái)控制 NodePort 僅將流量轉(zhuǎn)發(fā)到當(dāng)前節(jié)點(diǎn)的 Pod胃榕,具體可以參看 Service 的外部流量控制文檔:https://kubernetes.io/zh-cn/docs/tutorials/services/source-ip/


阿里容器服務(wù) ACK

  1. Flannel

Flannel 是 ACK 的網(wǎng)絡(luò)插件,使用獨(dú)立于 VPC 網(wǎng)段的 Pod 的網(wǎng)段分配給 Pod瞄摊。在 ACK 中勋又,F(xiàn)lannel 插件采用的是阿里云 VPC ,報(bào)文經(jīng)過(guò)阿里云 VPC 的路由表直接轉(zhuǎn)發(fā)换帜,不需要 Vxlan 等隧道封裝技術(shù)封裝報(bào)文楔壤,所以比 Flannel 默認(rèn)的 Vxlan 模式具有更高的通信性能。

差異很清晰惯驼,如果選用 ACK Flannel 插件蹲嚣,跨節(jié)點(diǎn)通信并沒(méi)有使用 vxlan 技術(shù),而是通過(guò)云上基礎(chǔ)產(chǎn)品 VPC 的全局路由來(lái)實(shí)現(xiàn)祟牲。

他通過(guò)一個(gè) CCM(Cloud Controller Manager)組件維護(hù) VPC 上 Pod 網(wǎng)段的路由表隙畜,來(lái)實(shí)現(xiàn) Pod 的跨節(jié)點(diǎn)通信。

當(dāng)集群網(wǎng)絡(luò)組件為 Flannel 時(shí)说贝,CCM 組件負(fù)責(zé)打通容器與節(jié)點(diǎn)間網(wǎng)絡(luò)议惰,實(shí)現(xiàn)容器跨節(jié)點(diǎn)通信。CCM 會(huì)將節(jié)點(diǎn)的 Pod 網(wǎng)段信息寫(xiě)入 VPC 的路由表中乡恕,從而實(shí)現(xiàn)跨節(jié)點(diǎn)的容器通信换淆。該功能無(wú)需配置,安裝即可使用几颜。

這時(shí) VPC 路由如果收到目的地址是某一個(gè)節(jié)點(diǎn) pod 網(wǎng)段的 IP 地址倍试,就會(huì)把這個(gè)網(wǎng)絡(luò)包轉(zhuǎn)發(fā)到對(duì)應(yīng)的節(jié)點(diǎn)上,然后再根據(jù)主機(jī)的路由表蛋哭,將其轉(zhuǎn)發(fā)到 CNI 網(wǎng)橋上县习。

筆者公司生產(chǎn)兩套集群,一套自建谆趾,一套買(mǎi)的阿里云 ACK 托管版本躁愿,都是選用的 Flannel CNI 插件。兩套集群在同一個(gè) VPC 下沪蓬,有一天在自建的集群 Pod 中可以直接 ping 通托管集群的 Pod IP彤钟,而且在非集群 Node 上(同 VPC)也可以直接 ping 通托管集群的 pod ip,這時(shí)去仔細(xì)翻了翻 ACK 的文檔跷叉,才發(fā)現(xiàn) ACK 下的 Flannel 插件沒(méi)有使用 vxlan 技術(shù)逸雹,而是基于 VPC 路由轉(zhuǎn)發(fā)营搅。

  1. Terway

Terway是阿里云開(kāi)源的基于專(zhuān)有網(wǎng)絡(luò)VPC的容器網(wǎng)絡(luò)接口CNI(Container Network Interface)插件,基于阿里云的彈性網(wǎng)卡(ENI)構(gòu)建網(wǎng)絡(luò)梆砸,將原生的彈性網(wǎng)卡(ENI)分配給 Pod 實(shí)現(xiàn) Pod 網(wǎng)絡(luò)转质。

支持多種模式:

  • VPC:Pod 網(wǎng)段不同于節(jié)點(diǎn)的網(wǎng)絡(luò)的網(wǎng)段,通過(guò) Aliyun VPC 路由表打通不同節(jié)點(diǎn)間的容器網(wǎng)絡(luò)帖世。
  • ENI:容器的網(wǎng)卡是 Aliyun 彈性網(wǎng)卡休蟹,Pod 的網(wǎng)段和宿主機(jī)的網(wǎng)段是一致的。

在 ENI 模式下日矫,ENI 網(wǎng)絡(luò)就是從阿里云的 VPC 網(wǎng)絡(luò)中創(chuàng)建和綁定一個(gè)彈性網(wǎng)卡到節(jié)點(diǎn)上赂弓, 然后 Pod 利用這個(gè)彈性網(wǎng)卡和別的網(wǎng)絡(luò)互通。

Pod 與 Node 都在一個(gè) VPC 網(wǎng)絡(luò)中哪轿,共享相同的 CIDR 網(wǎng)段盈魁,Pod 會(huì)通過(guò)彈性網(wǎng)卡資源直接分配 VPC 中的 IP 地址,不需要額外指定虛擬 Pod 網(wǎng)段缔逛,而且集群中所有的 Pod 在同一個(gè) VPC 子網(wǎng)中备埃。

詳情可參看 Terway 的設(shè)計(jì)文檔:https://github.com/AliyunContainerService/terway/blob/main/docs/design.md

華為云容器引擎 CCE

  1. 容器隧道網(wǎng)絡(luò)模型

這種與自建時(shí) Flannel 網(wǎng)絡(luò)插件 vxlan 模式一樣,在節(jié)點(diǎn)網(wǎng)絡(luò)基礎(chǔ)上通過(guò)隧道封裝褐奴,構(gòu)建的獨(dú)立于節(jié)點(diǎn)網(wǎng)絡(luò)平面的容器網(wǎng)絡(luò)平面按脚,CCE 集群容器隧道網(wǎng)絡(luò)使用的封裝協(xié)議也是 VXLAN。

  1. VPC 網(wǎng)絡(luò)

此模式與 ACK 下的 Flannel 插件類(lèi)似敦冬,都是利用 VPC 的路由轉(zhuǎn)發(fā)能力來(lái)實(shí)現(xiàn)跨節(jié)點(diǎn)通信辅搬。

VPC 網(wǎng)絡(luò)采用 VPC 路由方式與底層網(wǎng)絡(luò)深度整合,由于沒(méi)有隧道封裝的消耗脖旱,容器網(wǎng)絡(luò)性能相對(duì)于容器隧道網(wǎng)絡(luò)有一定優(yōu)勢(shì)堪遂。VPC 網(wǎng)絡(luò)集群由于 VPC 路由中配置有容器網(wǎng)段與節(jié)點(diǎn) IP 的路由,可以支持集群外直接訪問(wèn)容器實(shí)例等特殊場(chǎng)景萌庆。

  1. 云原生網(wǎng)絡(luò)2.0

云原生網(wǎng)絡(luò)2.0是自研的新一代容器網(wǎng)絡(luò)模型溶褪,深度整合了虛擬私有云VPC的彈性網(wǎng)卡(Elastic Network Interface,簡(jiǎn)稱(chēng)ENI)和輔助彈性網(wǎng)卡(Sub Network Interface践险,簡(jiǎn)稱(chēng)Sub-ENI)的能力猿妈,直接從 VPC 網(wǎng)段內(nèi)分配容器 IP 地址,支持ELB直通容器巍虫,綁定安全組彭则,綁定彈性公網(wǎng)IP,享有高性能占遥。

這里和 ACK 的 Terway 類(lèi)似俯抖,利用彈性網(wǎng)卡,直接從 VPC 劃分 IP 地址給容器瓦胎。

與傳統(tǒng)模式的通信區(qū)別:

  • 節(jié)點(diǎn)內(nèi) Pod 間通信:直接通過(guò) VPC 的彈性網(wǎng)卡/彈性輔助網(wǎng)卡進(jìn)行流量轉(zhuǎn)發(fā)芬萍。
  • 跨節(jié)點(diǎn)Pod間通信:直接通過(guò) VPC 的彈性網(wǎng)卡/彈性輔助網(wǎng)卡進(jìn)行流量轉(zhuǎn)發(fā)尤揣。

騰訊容器服務(wù) TKE

  1. GlobalRouter 模式

GlobalRouter 網(wǎng)絡(luò)模式是容器服務(wù) TKE 基于底層私有網(wǎng)絡(luò) VPC 的全局路由能力,實(shí)現(xiàn)了容器網(wǎng)絡(luò)和 VPC 互訪的路由策略担忧。該網(wǎng)絡(luò)模式特征包含以下幾點(diǎn):

  • 容器路由直接通過(guò) VPC芹缔。
  • 容器與節(jié)點(diǎn)分布在同一網(wǎng)絡(luò)平面坯癣。
  • 容器網(wǎng)段分配靈活瓶盛,容器 IP 段不占用 VPC 的其他網(wǎng)段。

看完描述示罗,和 ACK 的 Flannel 或者 Terway 的 VPC 模式惩猫,以及 CCE 的 VPC 網(wǎng)絡(luò)模式,提供的功能都是一樣的蚜点,甚至描述讀下來(lái)都是一模一樣的轧房。

  1. VPC-CNI 模式

與 ACK Terway 的 ENI 模式,CCE 的云原生網(wǎng)絡(luò)2.0模式一樣绍绘,基于彈性網(wǎng)卡奶镶,直接從 VPC 分配 IP 給容器。

VPC-CNI 模式是容器服務(wù) TKE 基于 CNI 和 VPC 彈性網(wǎng)卡實(shí)現(xiàn)的容器網(wǎng)絡(luò)能力陪拘。
其中 VPC-CNI 模式分為共享網(wǎng)卡模式和獨(dú)占網(wǎng)卡模式厂镇,兩種網(wǎng)絡(luò)模式適用于不同的場(chǎng)景。您可以根據(jù)業(yè)務(wù)需要選擇不同的網(wǎng)絡(luò)模式左刽。

  • 共享網(wǎng)卡模式:Pod 共享一張彈性網(wǎng)卡捺信,IPAMD 組件為彈性網(wǎng)卡申請(qǐng)多個(gè) IP 給到不同的 Pod。
  • 獨(dú)占網(wǎng)卡模式:每個(gè) Pod 有獨(dú)立的彈性網(wǎng)卡欠痴,性能更高迄靠。受機(jī)型影響,不同節(jié)點(diǎn)可使用的彈性網(wǎng)卡數(shù)量有限喇辽,單節(jié)點(diǎn) Pod 密度更低掌挚。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者菩咨。
  • 序言:七十年代末吠式,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旦委,更是在濱河造成了極大的恐慌奇徒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缨硝,死亡現(xiàn)場(chǎng)離奇詭異摩钙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)查辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)胖笛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)网持,“玉大人,你說(shuō)我怎么就攤上這事长踊」σǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵身弊,是天一觀的道長(zhǎng)辟汰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)阱佛,這世上最難降的妖魔是什么帖汞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮凑术,結(jié)果婚禮上翩蘸,老公的妹妹穿的比我還像新娘。我一直安慰自己淮逊,他們只是感情好催首,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著泄鹏,像睡著了一般郎任。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上命满,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天涝滴,我揣著相機(jī)與錄音,去河邊找鬼胶台。 笑死歼疮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诈唬。 我是一名探鬼主播韩脏,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼铸磅!你這毒婦竟也來(lái)了赡矢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阅仔,失蹤者是張志新(化名)和其女友劉穎吹散,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體八酒,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡空民,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片界轩。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡画饥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浊猾,到底是詐尸還是另有隱情抖甘,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布葫慎,位于F島的核電站衔彻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏幅疼。R本人自食惡果不足惜米奸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一昼接、第九天 我趴在偏房一處隱蔽的房頂上張望爽篷。 院中可真熱鬧,春花似錦慢睡、人聲如沸逐工。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泪喊。三九已至,卻和暖如春髓涯,著一層夾襖步出監(jiān)牢的瞬間袒啼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工纬纪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚓再,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓包各,卻偏偏與公主長(zhǎng)得像摘仅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子问畅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容