中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes中網絡模型的示例分析

發布時間:2021-12-24 16:02:58 來源:億速云 閱讀:135 作者:小新 欄目:大數據

這篇文章主要介紹kubernetes中網絡模型的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Kubernetes從Docker默認的網絡模型中獨立出來形成一套自己的網絡模型。模型的基礎原則是:每個Pod都擁有一個獨立的IP地址,而且假定所有Pod都在一個可以直接連通的,扁平的網絡空間中。同一個Pod內的容器可以通過localhost來連接對方的端口。

Docker網絡模型

Docker使用Linux橋接,在宿主機上虛擬一個Docker網橋(docker0,Docker啟動一個容器時會根據Docker網橋的網段分配容器的IP,同時Docker網橋是每個容器的默認網關。因為在同一個宿主機內的容器都接入同一個網橋,這樣容器之間就能通過容器的IP直接通信。


kubernetes中網絡模型的示例分析

1. 網絡命名空間

為了支持網絡協議棧的多個實例,Linux在網絡棧中引入了網絡命名空間。這些獨立的協議棧被隔離到不同的命名空間中。處于不同命名空間的網絡棧是完全隔離的。網絡命名空間內可以有自己獨立的路由表及獨立的Iptables/Netfilter設置來提供包轉發,NAT及IP包過濾等功能。

2. Veth

引入Veth設備對是為了在不同的網絡命名空間之間進行通信,利用它可以直接將兩個網絡命名空間連接起來。

3. Iptables/Netfilter

Netfilter是Linux操作系統核心層內部的一個數據包處理模塊. Iptables是應用層的,其實質是一個定義規則的配置工具,而核心的數據包攔截和轉發是Netfiler。

Netfilter作用于網絡層,數據包通過網絡層會經過Netfilter的五個掛載點(Hook POINT):PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING 任何一個數據包,只要經過本機,必將經過這五個掛載點的其中一個。

iptables的規則組成,又被稱為四表五鏈:

四張表:filter表(用于過濾)、nat表(用于地址轉換)、mangle表(修改數據包)、raw表(一般是為了不再讓iptables做數據包的鏈接跟蹤處理,跳過其他表,提高性能)

五個掛載點:PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING

具體來說,就是iptables每一條允許/拒絕或轉發等規則必須選擇一個掛載點,關聯一張表。

查看系統中已有的規則的方法如下:

iptables-save : 按照命令的方式打印Iptables的內容。

Iptables-vnL : 以另一種格式顯示Netfilter表的內容。

4.  網橋

網橋是一個二層網絡設備,可以解析收發的報文,讀取目標MAC地址的信息,和自己記錄的MAC表結合來決策報文的轉發端口。

5. 路由

路由功能由IP層維護的一張路由表來實現。當主機收到數據報文時,它用此表來決策下來應該做什么操作,當從網絡側接收到數據報文時,IP層首先會檢查報文的IP地址是否與主機自身的地址相同。如果不同,并且主機配置了路由功能,那么報文將被轉發,否則,報文將被放棄。

查看LOCAL表的內容:

ip route show table local type local

路由表查看:

Ip route list

6. 網關

網關(Gateway)就是一個網絡連接到另一個網絡的“關口”.按照不同的分類標準,網關也有很多種。TCP/IP協議里的網關是最常用的.

網關實質上是一個網絡通向其他網絡的IP地址。比如有網絡A和網絡B,網絡A的IP地址范圍為“192.168.1.1~192. 168.1.254”,子網掩碼為255.255.255.0;網絡B的IP地址范圍為“192.168.2.1~192.168.2.254”,子網掩碼為255.255.255.0。在沒有路由器的情況下,兩個網絡之間是不能進行TCP/IP通信的,即使是兩個網絡連接在同一臺交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)判定兩個網絡中的主機處在不同的網絡里。而要實現這兩個網絡之間的通信,則必須通過網關。


kubernetes中網絡模型的示例分析

Docker網橋是宿主機虛擬出來的,并不是真實存在的網絡設備,外部網絡是無法尋址到的,這也意味著外部網絡無法直接訪問到容器。如果容器希望能夠被外部網絡訪問到,就需要通過映射容器端口到宿主機。 Docker  run  -p ****:****

實際上,端口映射通過在iptables的NAT表中添加相應的規則,所以我們將端口映射的方式成為NAT方式。

三:Kubernetes網絡模型

1.  容器間通信

Pod是容器的集合,Pod包含的容器都運行在同一個宿主機上,這些容器將擁有同樣的網絡空間,容器之間能夠互相通信,它們能夠在本地訪問其它容器的端口。

2. Pod間通信

Kubernetes網絡模型是一個扁平化的網絡平面,在這個網絡平面內,Pod作為一個網絡單元同Kubernetes Node的網絡處于同一層級。

同一個Kubernetes Node上的Pod/容器原生能通信,但是Kubernetes Node之間的Pod/容器之間的通信,需要對Docker進行增強。在容器集群中創建一個覆蓋網絡,聯通各個節點。


kubernetes中網絡模型的示例分析

3. ServicePod的通信

Service 在Pod之間起到服務代理的作用,對外表現為一個單一訪問接口,將請求轉發給Pod,Service的網絡轉發是Kubernetes實現服務編排的關鍵一環。
kubernetes中網絡模型的示例分析

IP

10.254.248.68,端口80/TCP對應的Endpoints包含10.1.46.28010.1.77.280;即當請求10.254.248.6880時,會轉發到這些后端之一。

Kubernetes Proxy通過創建Iptables規則,直接重定向訪問Service虛擬IP的請求到Endpoints.而當Endpoints發生變化的時候,Kubernetes Proxy會刷新相關的Iptables規則。在Iptables模式下,Kubernetes Proxy只是負責監控ServiceEndpoints,更新Iptables規則,報文的轉發依賴于Linux內核,默認的負載均衡策略是隨機方式。

以上是“kubernetes中網絡模型的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇信县| 张家界市| 五莲县| 文登市| 香港| 简阳市| 德清县| 黔西县| 彝良县| 武强县| 称多县| 安岳县| 同心县| 乐亭县| 临沂市| 吉安县| 辽阳市| 晴隆县| 楚雄市| 木里| 汾阳市| 无锡市| 无极县| 奉贤区| 沧州市| 吴旗县| 和静县| 宜宾县| 厦门市| 乌什县| 武夷山市| 满洲里市| 淳化县| 闸北区| 子长县| 池州市| 浪卡子县| 佳木斯市| 嵩明县| 皮山县| 佛教|