版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Kubernetes網(wǎng)絡(luò)模型的核心要求之一是每個(gè)Pod都擁有自己的IP地址并可以使用該IP地址進(jìn)行通信。很多人剛開始使用Kubernetes時(shí),還不清楚如何為每個(gè)Pod分配IP地址。他們了解各種組件如何獨(dú)立工作,但不清楚這些組件如何組合在一起使用。例如,他們了解什么是CNI插件,但是不知道它們是如何被調(diào)用的。本文就介紹了各種網(wǎng)絡(luò)組件在Kubernetes集群中是如何交互的,以及如何幫助每個(gè)Pod都獲取IP地址。在Kubernetes中有多種網(wǎng)絡(luò)設(shè)置方法,以及containerruntime的各種選項(xiàng)。這篇文章將使用Flannel作為networkprovider,并使用Containered作為containerruntime。背景概念容器網(wǎng)絡(luò)同一主機(jī)上的容器在同一主機(jī)上運(yùn)行的容器通過IP地址相互通信的方法之一是使用LinuxBridge,即在Kubernetes(和Docker)世界中,創(chuàng)建veth(虛擬以太網(wǎng))設(shè)備。該veth設(shè)備的一端連接在容器網(wǎng)絡(luò)命名空間,另一端連接到主機(jī)網(wǎng)絡(luò)上的LinuxBridge。同一主機(jī)上的所有容器都將這vethpair的一端連接到LinuxBridge,它們可以通過Bridge使用IP地址相互通信。LinuxBridge也被分配了一個(gè)IP地址,它充當(dāng)從目的地到不同節(jié)點(diǎn)的Pod流出流量的網(wǎng)關(guān)。不同主機(jī)上的容器在不同主機(jī)上運(yùn)行的容器可以通過其IP地址相互通信的方式之一是使用數(shù)據(jù)包封裝(packetencapsulation)。Flannel通過vxlan使用該功能,vxlan將原始數(shù)據(jù)包封裝在UDP數(shù)據(jù)包中并將其發(fā)送到目的地。在Kubernetes集群中,F(xiàn)lannel會(huì)在每個(gè)節(jié)點(diǎn)上創(chuàng)建一個(gè)vxlan設(shè)備和一些路由表。每個(gè)發(fā)往不同主機(jī)上的容器的數(shù)據(jù)包都會(huì)通過vxlan設(shè)備,并封裝在UDP數(shù)據(jù)包中。在目標(biāo)位置,它會(huì)提取封裝的數(shù)據(jù)包,然后將數(shù)據(jù)包路由到目的地Pod。注意:這只是配置容器之間網(wǎng)絡(luò)的方法之一。CRICRI(容器運(yùn)行時(shí)接口)是一個(gè)插件接口,允許kubelet使用不同的containerruntimes。各種containerruntimes都實(shí)現(xiàn)了CRIAPI,這使用戶可以在Kubernetes安裝中使用他們想要的containerruntimes。CNICNI(容器網(wǎng)絡(luò)接口)項(xiàng)目包含一個(gè)為Linux容器提供基于通用插件網(wǎng)絡(luò)解決方案的規(guī)則。它由各種插件組成,這些插件在配置Pod網(wǎng)絡(luò)時(shí)執(zhí)行不同的功能。CNI插件是遵循CNI規(guī)范的可執(zhí)行文件。
為節(jié)點(diǎn)子網(wǎng)分配PodIP地址如果要求所有Pod具有IP地址,那么就要確保整個(gè)集群中的所有Pod的IP地址是唯一的。這可以通過為每個(gè)節(jié)點(diǎn)分配一個(gè)唯一的子網(wǎng)來實(shí)現(xiàn),即從子網(wǎng)中為Pod分配節(jié)點(diǎn)IP地址。節(jié)點(diǎn)IPAM控制器當(dāng)nodeipam傳遞給kube-controller-manager的
--controllers命令行標(biāo)志時(shí),它將為每個(gè)節(jié)點(diǎn)分配來自集群CIDR(集群網(wǎng)絡(luò)的IP范圍)的專用子網(wǎng)(podCIDR)。由于這些podCIDR是不相交的子網(wǎng),因此它可以為每個(gè)Pod分配唯一的IP地址。當(dāng)Kubernetes節(jié)點(diǎn)首次在集群上注冊時(shí),會(huì)被分配一個(gè)podCIDR。要更改分配給集群中節(jié)點(diǎn)的podCIDR,需要先注銷節(jié)點(diǎn),然后使用應(yīng)用于Kubernetes控制平面的任何配置更改來重新注冊節(jié)點(diǎn)。podCIDR可以使用以下命令列出節(jié)點(diǎn)的名稱:Kubelet、ContainerRuntime和CNI插件交互當(dāng)在節(jié)點(diǎn)上調(diào)度Pod時(shí),一啟動(dòng)Pod就會(huì)發(fā)生很多事情。這里我們僅關(guān)注與Pod配置網(wǎng)絡(luò)有關(guān)的動(dòng)態(tài)。一旦在節(jié)點(diǎn)上調(diào)度了Pod,將配置網(wǎng)絡(luò)并啟動(dòng)應(yīng)用程序容器。參考:容器式cri插件架構(gòu)ContainerRuntime與CNI插件的交互每個(gè)networkprovider都有一個(gè)CNI插件,containerruntime會(huì)調(diào)用該插件,在Pod啟動(dòng)時(shí)配置網(wǎng)絡(luò)。使用容器化作為containerruntime,容器化CRI插件將調(diào)用CNI插件。每個(gè)networkprovider都在每個(gè)Kubernetes節(jié)點(diǎn)上安裝了一個(gè)代理,以配置Pod網(wǎng)絡(luò)。安裝networkprovideragent后,它會(huì)隨CNI一起配置或者在節(jié)點(diǎn)上創(chuàng)建,CRI插件會(huì)使用它來確定要調(diào)用哪個(gè)CNI插件。CNI配置文件的位置是可配置的,默認(rèn)值為
/etc/cni/net.d/<config-file>。集群管理員需要在每個(gè)節(jié)點(diǎn)上交付CNI插件。CNI插件的位置也是可配置的,默認(rèn)值為
/opt/cni/bin。如果使用containerd作為containerruntime,則可以在containerdconfig部分下
[plugins."io.containerd.grpc.v1.cri".cni]
指定CNI配置和CNI插件的路徑。本文中我們將Flannel作為networkprovider,這里簡單介紹一下Flannel的設(shè)置。Flanneld是Flannel守護(hù)程序,通常install-cni作為帶有初始化容器的守護(hù)程序安裝在Kubernetes集群上。install-cni容器創(chuàng)建CNI配置文件在每個(gè)節(jié)點(diǎn)上
/etc/cni/net.d/10-flannel.conflist。Flanneld創(chuàng)建一個(gè)vxlan設(shè)備,從apiserver獲取網(wǎng)絡(luò)元數(shù)據(jù),并監(jiān)控Pod上的更新。創(chuàng)建Pod時(shí),它將在整個(gè)集群中為所有Pod分配路由,這些路由允許Pod通過IP地址相互連接。ContainerdCRI插件和CNI插件之間的交互可以如下所示:如上所述,kubelet調(diào)用ContaineredCRI插件創(chuàng)建容器,再調(diào)用CNI插件為容器配置網(wǎng)絡(luò)。NetworkproviderCNI插件調(diào)用其他基本CNI插件來配置網(wǎng)絡(luò)。CNI插件之間的交互如下所述。CNI插件之間的交互有多種CNI插件可幫助配置主機(jī)上容器之間的網(wǎng)絡(luò),本文主要討論以下3個(gè)插件。FlannelCNI插件當(dāng)使用Flannel作為networkprovider時(shí),ContaineredCRI插件使用CNI配置文件,調(diào)用FlannelCNI插件:/etc/cni/net.d/10-flannel.conflist。FannelCNI插件與Flanneld結(jié)合使用,當(dāng)Flanneld啟動(dòng)時(shí),它將從apiserver中獲取podCIDR和其他與網(wǎng)絡(luò)相關(guān)的詳細(xì)信息,并將它們存儲(chǔ)在文件中/run/flannel/subnet.env。FlannelCNI插件使用
/run/flannel/subnet.env的信息來配置和調(diào)用BridgeCNI插件。BridgeCNI插件FlannelCNI插件使用以下配置調(diào)用BridgeCNI插件:當(dāng)BridgeCNI插件第一次調(diào)用時(shí),它會(huì)創(chuàng)建一個(gè)LinuxBridge"name":"cni0"
在配置文件中,然后為每個(gè)Pod創(chuàng)建vethpair,其一端在容器的網(wǎng)絡(luò)命名空間中,另一端連接到主機(jī)網(wǎng)絡(luò)上的LinuxBridge。使用BridgeCNI插件,主機(jī)上的所有容器都連接到主機(jī)網(wǎng)絡(luò)上的LinuxBridge。配置完vethpair后,Bridge插件將調(diào)用主機(jī)本地IPAMCNI插件。我們可以在CNIconfig中配置要使用的IPAM插件,CRI插件用于調(diào)用FlannelCNI插件。主機(jī)本地IPAMCNI插件BridgeCNI插件使用以下配置調(diào)用主機(jī)本地IPAMCNI插件:主機(jī)本地IPAM(IP地址管理)插件從中返回容器的IP地址,subnet將分配的IP本地存儲(chǔ)在主機(jī)下dataDir指定的目錄中/var/lib/cni/networks/<network-name=cni0>/<ip>/var/lib/cni/networks/<network-name=cni0>/<ip>文件包含IP分配到的容器ID。調(diào)用時(shí),主機(jī)本地IPAM插件返回以下有效負(fù)載:總結(jié)Kube-controller-manager為每個(gè)節(jié)點(diǎn)分配一個(gè)podCIDR。從podCIDR中的子網(wǎng)值為節(jié)點(diǎn)上的Pod分配了IP地址。由于所有節(jié)點(diǎn)上的podCIDR是不相交的子網(wǎng),因此它允許為每個(gè)pod分配唯一的IP地址。Kubernetes集群管理員可配置和安裝kubelet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)安全應(yīng)急響應(yīng)-第3篇-洞察分析
- 網(wǎng)絡(luò)學(xué)習(xí)社區(qū)建設(shè)-洞察分析
- 數(shù)字藝術(shù)教育創(chuàng)新-洞察分析
- 水陸聯(lián)運(yùn)技術(shù)集成-洞察分析
- 藥物作用靶點(diǎn)驗(yàn)證技術(shù)-洞察分析
- 營養(yǎng)素與環(huán)境關(guān)系研究-洞察分析
- 網(wǎng)絡(luò)藝術(shù)市場分析-洞察分析
- 新能源車輛在物流業(yè)的應(yīng)用-洞察分析
- 從社交平臺(tái)到市場爆款的地鐵文創(chuàng)產(chǎn)品設(shè)計(jì)秘訣
- 辦公空間綠色改造的實(shí)踐與思考
- 2024屆高考專題復(fù)習(xí):詩歌鑒賞之愛情詩 課件(共30張PPT)
- GB/T 10000-2023中國成年人人體尺寸
- 夫妻房產(chǎn)過戶給子女協(xié)議書
- 出境竹木草制品公司原輔料采購驗(yàn)收制度
- 2023年臨床醫(yī)學(xué)(軍隊(duì)文職)題庫(共五套)含答案
- 關(guān)于學(xué)校學(xué)生意外死亡的情況報(bào)告
- 2023-2024學(xué)年江西省小學(xué)語文六年級(jí)期末模考考試題附參考答案和詳細(xì)解析
- 山東省菏澤市高職單招2023年綜合素質(zhì)自考測試卷(含答案)
- 中國兒童注意缺陷多動(dòng)障礙(ADHD)防治指南
- 強(qiáng)力皮帶運(yùn)行危險(xiǎn)點(diǎn)分析及預(yù)控措施
- 基于STM32的可遙控智能跟隨小車的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用
評(píng)論
0/150
提交評(píng)論