偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Kubernetes網(wǎng)絡(luò)插件詳解 - Calico篇 - 網(wǎng)絡(luò)基礎(chǔ)

云計(jì)算 云原生
Kubernetes是以Container容器技術(shù)為核心的調(diào)度引擎,將傳統(tǒng)云計(jì)算對應(yīng)的基礎(chǔ)資源,包含計(jì)算、存儲,網(wǎng)絡(luò)進(jìn)行了徹底池化統(tǒng)一管理,同時(shí)將運(yùn)行在技術(shù)架構(gòu)之上的應(yīng)用和服務(wù)也進(jìn)行了抽象標(biāo)準(zhǔn)化,再通過調(diào)度快速實(shí)現(xiàn)應(yīng)用與資源的匹配,即以應(yīng)用為中心構(gòu)建云原生操作系統(tǒng)能力。

Container容器借助底層Linux操作系統(tǒng)的Namespace與Cgroup內(nèi)核技術(shù),實(shí)現(xiàn)在單一主機(jī)資源的輕量級虛擬化資源隔離,包含進(jìn)程ID、主機(jī)名、用戶ID、文件名、網(wǎng)絡(luò)和進(jìn)程間通信等。同時(shí)每個(gè)網(wǎng)絡(luò)空間Network Namesapce都有獨(dú)立的網(wǎng)絡(luò)棧,包括網(wǎng)絡(luò)接口(Network Interface)、回環(huán)設(shè)備(Lookback Device)、路由表(Routing Table)和iptables規(guī)則等,是容器網(wǎng)絡(luò)隔離與通信的基礎(chǔ)。

圖片   

 Kubernetes是以Container容器技術(shù)為核心的調(diào)度引擎,將傳統(tǒng)云計(jì)算對應(yīng)的基礎(chǔ)資源,包含計(jì)算、存儲,網(wǎng)絡(luò)進(jìn)行了徹底池化統(tǒng)一管理,同時(shí)將運(yùn)行在技術(shù)架構(gòu)之上的應(yīng)用和服務(wù)也進(jìn)行了抽象標(biāo)準(zhǔn)化,再通過調(diào)度快速實(shí)現(xiàn)應(yīng)用與資源的匹配,即以應(yīng)用為中心構(gòu)建云原生操作系統(tǒng)能力。

在Kubernetes集群內(nèi),既要解決相同宿主機(jī)多個(gè)命名空間網(wǎng)絡(luò)棧共享底層硬件資源,同時(shí)還要解決集群內(nèi)部跨宿主機(jī)網(wǎng)絡(luò)通信的問題,面向應(yīng)用提供完成的網(wǎng)絡(luò)能力,所以容器網(wǎng)絡(luò)是Kubernetes最復(fù)雜部分,同時(shí)也是設(shè)計(jì)精華所在:對于相同宿主機(jī)共享底層硬件設(shè)備問題,通常是借助虛擬化技術(shù)來實(shí)現(xiàn),通過虛擬設(shè)備來實(shí)現(xiàn)靈活的管理,再將虛擬化設(shè)備連接到真實(shí)的物理設(shè)備上實(shí)現(xiàn)網(wǎng)絡(luò)通信;對于跨宿主機(jī)網(wǎng)絡(luò)通信問題,采用SDN軟件定義網(wǎng)絡(luò)的思路,靈活使用底層網(wǎng)絡(luò)通信協(xié)議,同時(shí)結(jié)合各種虛擬化隧道通信技術(shù),實(shí)現(xiàn)容器集群內(nèi)外部通信。

所以要搞清楚復(fù)雜的容器網(wǎng)絡(luò)及各種各樣的網(wǎng)絡(luò)插件,首先需要了解網(wǎng)絡(luò)通信基礎(chǔ),網(wǎng)絡(luò)設(shè)備虛擬化以及網(wǎng)絡(luò)隧道技術(shù)。網(wǎng)絡(luò)通信基礎(chǔ)?。

一、網(wǎng)絡(luò)模

 OSI網(wǎng)絡(luò)模型將網(wǎng)絡(luò)數(shù)據(jù)發(fā)送和接收數(shù)據(jù)的過程分為7層,分別是物理層(Physical Layer),數(shù)據(jù)鏈路層(Data Link Layer),網(wǎng)絡(luò)層(Network Layer),傳輸層(Transport Layer),會話層(Session Layer),表示層(Presentation Layer),應(yīng)用層(Application Layer)。TCP/IP協(xié)議定義了一個(gè)應(yīng)用于不同網(wǎng)絡(luò)間信息傳輸?shù)膮f(xié)議簇,對網(wǎng)絡(luò)中各層次的通信制定了標(biāo)準(zhǔn)和方法。TCP/IP包含了很多協(xié)議,常見的協(xié)議包括IP、FTP、TCP、UDP、SMTP等。TCP/IP協(xié)議定義4層或者5層,4層主要包含鏈路層,網(wǎng)絡(luò)層,傳輸層,應(yīng)用層。OSI是開放系統(tǒng)的互連模型,相關(guān)的協(xié)議已經(jīng)非常少使用,但是模型本身非常通用;只是由于OSI模型過于理想化,至今尚未有完整的實(shí)現(xiàn)。TCP/IP網(wǎng)絡(luò)結(jié)構(gòu)體系實(shí)際上是由OSI七層模型演化而來,是一個(gè)工業(yè)標(biāo)準(zhǔn),并不是只由TCP和IP協(xié)議組成,而是由支持能夠在多個(gè)不同的網(wǎng)絡(luò)間實(shí)現(xiàn)信息傳輸?shù)膮f(xié)議簇,后續(xù)的網(wǎng)絡(luò)通信主要是基于TCP/IP協(xié)議講解。

圖片

二、網(wǎng)絡(luò)數(shù)據(jù)包

 在TCP/IP通信中,網(wǎng)絡(luò)層的作用是實(shí)現(xiàn)終端的點(diǎn)對點(diǎn)通信。通過IP地址將數(shù)據(jù)包發(fā)送給目的主機(jī),在發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)堆棧的每一層都會添加自己的報(bào)文頭,包含該層需要的控制/元數(shù)據(jù),以便在數(shù)據(jù)包穿過網(wǎng)絡(luò)時(shí)對其進(jìn)行處理,并將生成的數(shù)據(jù)包傳遞到堆棧的下一層。這樣就產(chǎn)生了完整的數(shù)據(jù)包。

圖片

三、IP路由

當(dāng)網(wǎng)絡(luò)設(shè)備收到一個(gè)數(shù)據(jù)包時(shí),它根據(jù)數(shù)據(jù)包的目的IP地址查詢路由表,如果有匹配的路由條目,就根據(jù)查詢結(jié)果將數(shù)據(jù)包轉(zhuǎn)發(fā)出去,如果沒有任何匹配的路由條目,則將數(shù)據(jù)包丟棄,這個(gè)過程就是IP路由。除了路由器,三層交換機(jī)、防火墻、負(fù)載均衡設(shè)備甚至主機(jī)等設(shè)備都可以進(jìn)行路由操作。每一個(gè)路由條目包含目的網(wǎng)段地址/子網(wǎng)掩碼、路由協(xié)議、出接口、下一跳IP地址、路由優(yōu)先級和度量值等信息。路由表直連路由、靜態(tài)路由和動態(tài)路由三種方式獲取,其中動態(tài)路由是通過動態(tài)路由協(xié)議從相鄰網(wǎng)絡(luò)設(shè)備動態(tài)學(xué)習(xí)到的路由條目。協(xié)議有OSPF,BGP ,RIP,RIPv2等。

圖片

 其中BGP協(xié)議,即邊界網(wǎng)關(guān)協(xié)議,是一種運(yùn)行于TCP上的一種能夠處理因特網(wǎng)大小的網(wǎng)絡(luò)協(xié)議,也是一種可以完善無關(guān)路由域間的多路連接協(xié)議。BGP主要用于與其他BGP線路建立網(wǎng)絡(luò)連接、相互交換包括AS在內(nèi)的信息。Kubernetes容器網(wǎng)絡(luò)插件Calico,就基于此協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)。

圖片

四、NAT(Network Address Translation)

網(wǎng)絡(luò)地址轉(zhuǎn)換是一種地址轉(zhuǎn)換技術(shù),可以將IP數(shù)據(jù)報(bào)文頭中的IP地址轉(zhuǎn)換為另一個(gè)IP地址,并通過轉(zhuǎn)換端口號達(dá)到地址重用的目的。

網(wǎng)絡(luò)設(shè)備虛擬化

在沒有虛擬化技術(shù)之前,計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)都只通過物理網(wǎng)卡,線纜介質(zhì),連接外部網(wǎng)絡(luò),構(gòu)成龐大的網(wǎng)絡(luò)。隨著虛擬化技術(shù)的出現(xiàn),網(wǎng)絡(luò)也隨之被虛擬化,相較于單一的物理網(wǎng)絡(luò),虛擬網(wǎng)絡(luò)變得非常復(fù)雜。Linux虛擬網(wǎng)絡(luò)的底層都是由一個(gè)個(gè)的虛擬設(shè)備構(gòu)成的,以此來實(shí)現(xiàn)諸如交換、路由、隧道、隔離、聚合等多種網(wǎng)絡(luò)功能。常見的虛擬網(wǎng)絡(luò)設(shè)備有tap/tun、veth-pair和bridge。

圖片

1、Tap/Tun

Tap/Tun是Linux內(nèi)核實(shí)現(xiàn)的一對虛擬網(wǎng)絡(luò)設(shè)備,TAP工作在二層,TUN工作在三層。Linux內(nèi)核通過TAP/TUN設(shè)備向綁定該設(shè)備的用戶空間程序發(fā)送數(shù)據(jù),反之用戶空間程序也可以像操作物理網(wǎng)絡(luò)設(shè)備那樣向 TAP/TUN 設(shè)備發(fā)送數(shù)據(jù)。

2、Veth-pair

Veth-pair是一端連著內(nèi)核協(xié)議棧,另一端連著另一個(gè)設(shè)備,一個(gè)設(shè)備收到內(nèi)核發(fā)送的數(shù)據(jù)后,會發(fā)送到另一個(gè)設(shè)備上去,這種設(shè)備通常用于容器中兩個(gè)namespace之間的通信。

3、Bridge

Bridge是Linux內(nèi)核實(shí)現(xiàn)的一個(gè)工作在二層的虛擬網(wǎng)絡(luò)設(shè)備,但不同于TAP/TUN這種單端口的設(shè)備,Bridge實(shí)現(xiàn)為多端口,本質(zhì)上是一個(gè)虛擬交換機(jī),具備和物理交換機(jī)類似的功能。Bridge可以綁定其他Linux網(wǎng)絡(luò)設(shè)備作為從設(shè)備,并將這些從設(shè)備虛擬化為端口,當(dāng)一個(gè)從設(shè)備被綁定到Bridge上時(shí),就相當(dāng)于真實(shí)網(wǎng)絡(luò)中的交換機(jī)端口上插入了一根連有終端的網(wǎng)線。

網(wǎng)絡(luò)隧道技術(shù)

隧道(Tunneling)是一種網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù),主要解決網(wǎng)絡(luò)協(xié)議不支持,數(shù)據(jù)傳輸不安全等網(wǎng)絡(luò)通信問題。將不支持的協(xié)議數(shù)據(jù)包打包成支持的協(xié)議數(shù)據(jù)包之后進(jìn)行傳輸,或在不安全網(wǎng)絡(luò)上提供一個(gè)安全路徑。通過網(wǎng)絡(luò)隧道技術(shù),可以使隧道兩端的網(wǎng)絡(luò)組成一個(gè)更大的內(nèi)部網(wǎng)絡(luò)。

隧道協(xié)議有二層隧道協(xié)議與三層隧道協(xié)議兩類,二層隧道協(xié)議對應(yīng)OSI模型中數(shù)據(jù)鏈路層,使用幀作為數(shù)據(jù)交換單位,將數(shù)據(jù)封裝在點(diǎn)對點(diǎn)協(xié)議的幀中通過互聯(lián)網(wǎng)絡(luò)發(fā)送,協(xié)議包含PPTP、L2TP、L2F等。三層隧道協(xié)議對應(yīng)OSI模型中網(wǎng)絡(luò)層,使用包作為數(shù)據(jù)交換單位,將數(shù)據(jù)包封裝在附加的IP包頭中通過IP網(wǎng)絡(luò)傳送,協(xié)議包含GRE、IPSec、GRE等。Linux原生支持多種三層隧道,其底層實(shí)現(xiàn)原理都是基于tun設(shè)備:

  • IPIP:普通的IPIP隧道,就是在報(bào)文的基礎(chǔ)上再封裝成一個(gè)IPv4報(bào)文
  • GRE:通用路由封裝(Generic Routing Encapsulation),定義了在任意網(wǎng)絡(luò)層協(xié)議上封裝其他網(wǎng)絡(luò)層協(xié)議的機(jī)制,所以對于IPv4和IPv6都適用
  • SIT:主要用于IPv4報(bào)文封裝IPv6報(bào)文,即IPv6 over IPv4
  • ISATAP:站內(nèi)自動隧道尋址協(xié)議,類似于sit也是用于IPv6的隧道封裝
  • VTI:即虛擬隧道接口(Virtual Tunnel Interface),是一種IPsec隧道技術(shù)。

1、VXLAN隧道技術(shù)

Linux內(nèi)核自3.7版本開始支持VXLAN隧道技術(shù),是目前最流行的Overlay網(wǎng)絡(luò)隧道協(xié)議之一,將二層以太網(wǎng)幀封裝在四層UDP報(bào)文中,通過三層網(wǎng)絡(luò)傳輸,組成一個(gè)虛擬大二層網(wǎng)絡(luò)。VXLAN使用VTEP(VXLAN Tunnel Endpoint)來進(jìn)行封包和解包:在發(fā)送端,源VTEP將原始報(bào)文封裝成VXLAN報(bào)文,通過UDP發(fā)送到對端VTEP;在接收端,VTEP將解開VXLAN報(bào)文,將原始的二層數(shù)據(jù)幀轉(zhuǎn)發(fā)給目的的接收方。VTEP可以是獨(dú)立的網(wǎng)絡(luò)設(shè)備,例如交換機(jī),也可以是部署在服務(wù)器上的虛擬設(shè)備。例如使用置頂交換機(jī)(TOR)作為VTEP時(shí),VXLAN的網(wǎng)絡(luò)模型如下圖:

圖片

  • VTEP(VXLAN tunnel endpoints):VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,用來進(jìn)行VXLAN報(bào)文的封包與解包。VTEP可以是網(wǎng)絡(luò)設(shè)備(例如交換機(jī)),也可以是一臺機(jī)器(例如虛擬化集群中的宿主機(jī))。
  • VNI(VXLAN network identifier):VNI是VXLAN的標(biāo)識,是個(gè)24位整數(shù),因此最大值是2的24次方個(gè)。如果一個(gè)VNI對應(yīng)一個(gè)租戶,那么理論上VXLAN可以支持千萬級別的租戶。
  • VXLAN Tunnel:隧道是一個(gè)邏輯上的概念,在VXLAN模型中并沒有具體的物理實(shí)體相對應(yīng)。隧道可以看作一個(gè)虛擬通道,VXLAN通信雙方都認(rèn)為自己在直接通信,并不知道底層網(wǎng)絡(luò)的存在。從整體上看,每個(gè)VXLAN網(wǎng)絡(luò)像是為通信的設(shè)備搭建了一個(gè)單獨(dú)的通信通道,也就是隧道。

VXLAN的報(bào)文就是MAC in UDP,即在三層網(wǎng)絡(luò)的基礎(chǔ)上構(gòu)建一個(gè)虛擬的二層網(wǎng)絡(luò)。VXLAN的封包格式顯示原來的二層以太網(wǎng)幀(包含MAC頭部、IP頭部和傳輸層頭部的報(bào)文),被放在VXLAN包頭里進(jìn)行封裝,再套到標(biāo)準(zhǔn)的UDP頭部(UDP頭部、IP頭部和MAC頭部),用來在底層網(wǎng)絡(luò)上傳輸報(bào)文。VXLAN報(bào)文比原始報(bào)文多出50個(gè)字節(jié),這降低了網(wǎng)絡(luò)鏈路傳輸?shù)挠行?shù)據(jù)比例,尤其是小包。UDP目的端口是接收方VTEP設(shè)備使用的端口,IANA分配了4789作為VXLAN的目的UDP端口(flannel VXLAN模式是8472)。

圖片

總結(jié)

總的來說,云原生Kubernetes并且沒有創(chuàng)造新的網(wǎng)絡(luò)技術(shù),而是根據(jù)各種場景靈活的聚合使用各種網(wǎng)絡(luò)技術(shù)。從底層通信技術(shù)來看,容器網(wǎng)絡(luò)有Overlay模式,路由模式,以及Underlay模式三種,其中Overlay模式主要是通過虛擬化與隧道技術(shù),屏蔽底層網(wǎng)絡(luò)復(fù)雜路由轉(zhuǎn)發(fā),面向應(yīng)用提供簡單高效的通信能力。同時(shí)底層操作系統(tǒng)內(nèi)核的網(wǎng)絡(luò)的技術(shù)也在發(fā)展演進(jìn),各種虛擬化技術(shù)及隧道技術(shù)極其相似,又各自有細(xì)微的差別,所以才有多種容器網(wǎng)絡(luò)插件及網(wǎng)絡(luò)模式,所以容器網(wǎng)絡(luò)規(guī)劃選擇一定要針對業(yè)務(wù)應(yīng)用的場景,在靈活,高效,以及成本等多因素中權(quán)衡選擇合適的網(wǎng)絡(luò)方案。

本文轉(zhuǎn)載自微信公眾號「巨子嘉」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系巨子嘉公眾號。

責(zé)任編輯:姜華 來源: 巨子嘉
相關(guān)推薦

2022-07-27 16:23:36

Kubernetes容器

2022-05-31 10:30:23

KubernetesCalico運(yùn)維

2019-07-03 10:58:22

Kubernetes網(wǎng)絡(luò)插件

2021-11-22 08:50:20

Kubernetes網(wǎng)絡(luò)策略云原生應(yīng)用程序

2022-05-02 18:45:33

Kubernetes網(wǎng)絡(luò)模型

2011-03-29 11:28:00

Cacti插件

2023-11-28 07:55:05

Calico容器網(wǎng)絡(luò)

2019-10-24 11:10:06

Kubernetes網(wǎng)絡(luò)運(yùn)維

2021-12-01 06:30:05

EnspCalicok8s集群

2020-05-14 16:35:21

Kubernetes網(wǎng)絡(luò)策略DNS

2024-01-19 18:02:25

Kubernetes網(wǎng)絡(luò)流量

2019-10-24 10:25:32

Kubernetes網(wǎng)絡(luò)集群

2010-07-27 10:15:38

NFS網(wǎng)絡(luò)文件系統(tǒng)

2013-10-30 11:27:25

Linux基礎(chǔ)網(wǎng)絡(luò)設(shè)備

2020-07-08 09:36:03

Kubernetes容器開發(fā)

2020-09-23 14:20:07

Kubernetes容器網(wǎng)絡(luò)模型

2020-04-12 22:23:45

Kubernetes容器網(wǎng)絡(luò)

2021-04-14 09:33:58

Kubernetes通信網(wǎng)絡(luò)模型

2010-03-19 09:24:14

無線網(wǎng)絡(luò)

2014-05-04 13:47:39

銳捷網(wǎng)絡(luò)極簡網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號