網(wǎng)站流量怎么做百度手機(jī)快速排名點(diǎn)擊軟件
Kubernetes 提出了一個(gè)自己的網(wǎng)絡(luò)模型“IP-per-pod”,能夠很好地適應(yīng)集群系統(tǒng)的網(wǎng)絡(luò)需求,它有下面的這 4 點(diǎn)基本假設(shè):
- 集群里的每個(gè) Pod 都會(huì)有唯一的一個(gè) IP 地址。
- Pod 里的所有容器共享這個(gè) IP 地址。
- 集群里的所有 Pod 都屬于同一個(gè)網(wǎng)段。
- Pod 直接可以基于 IP 地址直接訪(fǎng)問(wèn)另一個(gè) Pod,不需要做麻煩的網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)。
因?yàn)?Pod 都具有獨(dú)立的 IP 地址,相當(dāng)于一臺(tái)虛擬機(jī),而且直連互通,也就可以很容易地實(shí)施域名解析、負(fù)載均衡、服務(wù)發(fā)現(xiàn)等工作,以前的運(yùn)維經(jīng)驗(yàn)都能夠直接使用,對(duì)應(yīng)用的管理和遷移都非常友好。
CNI 為網(wǎng)絡(luò)插件定義了一系列通用接口,開(kāi)發(fā)者只要遵循這個(gè)規(guī)范就可以接入 Kubernetes,為 Pod 創(chuàng)建虛擬網(wǎng)卡、分配 IP 地址、設(shè)置路由規(guī)則,最后就能夠?qū)崿F(xiàn)“IP-per-pod”網(wǎng)絡(luò)模型。
依據(jù)實(shí)現(xiàn)技術(shù)的不同,CNI 插件可以大致上分成“Overlay”“Route”和“Underlay”三種。
Overlay 的原意是“覆蓋”,是指它構(gòu)建了一個(gè)工作在真實(shí)底層網(wǎng)絡(luò)之上的“邏輯網(wǎng)絡(luò)”,把原始的 Pod 網(wǎng)絡(luò)數(shù)據(jù)封包,再通過(guò)下層網(wǎng)絡(luò)發(fā)送出去,到了目的地再拆包。因?yàn)檫@個(gè)特點(diǎn),它對(duì)底層網(wǎng)絡(luò)的要求低,適應(yīng)性強(qiáng),缺點(diǎn)就是有額外的傳輸成本,性能較低。
Route 也是在底層網(wǎng)絡(luò)之上工作,但它沒(méi)有封包和拆包,而是使用系統(tǒng)內(nèi)置的路由功能來(lái)實(shí)現(xiàn) Pod 跨主機(jī)通信。它的好處是性能高,不過(guò)對(duì)底層網(wǎng)絡(luò)的依賴(lài)性比較強(qiáng),如果底層不支持就沒(méi)辦法工作了。
Underlay 就是直接用底層網(wǎng)絡(luò)來(lái)實(shí)現(xiàn) CNI,也就是說(shuō) Pod 和宿主機(jī)都在一個(gè)網(wǎng)絡(luò)里,Pod 和宿主機(jī)是平等的。它對(duì)底層的硬件和網(wǎng)絡(luò)的依賴(lài)性是最強(qiáng)的,因而不夠靈活,但性能最高。
Flannel最早是一種 Overlay 模式的網(wǎng)絡(luò)插件,使用 UDP 和 VXLAN 技術(shù),后來(lái)又用 Host-Gateway 技術(shù)支持了 Route 模式。Flannel 簡(jiǎn)單易用,是 Kubernetes 里最流行的 CNI 插件,但它在性能方面表現(xiàn)不是太好,所以一般不建議在生產(chǎn)環(huán)境里使用。
Calico是一種 Route 模式的網(wǎng)絡(luò)插件,使用 BGP 協(xié)議(Border Gateway Protocol)來(lái)維護(hù)路由信息,性能要比 Flannel 好,而且支持多種網(wǎng)絡(luò)策略,具備數(shù)據(jù)加密、安全隔離、流量整形等功能。
Cilium是一個(gè)比較新的網(wǎng)絡(luò)插件,同時(shí)支持 Overlay 模式和 Route 模式,它的特點(diǎn)是深度使用了 Linux eBPF 技術(shù),在內(nèi)核層次操作網(wǎng)絡(luò)數(shù)據(jù),所以性能很高,可以靈活實(shí)現(xiàn)各種功能。在 2021 年它加入了 CNCF,成為了孵化項(xiàng)目,是非常有前途的 CNI 插件。
此文章為7月Day25學(xué)習(xí)筆記,內(nèi)容來(lái)源于極客時(shí)間《Kubernetes入門(mén)實(shí)戰(zhàn)課》,推薦該課程。