iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Kubernetes

Kubernetes 中關於網路的二三事系列 第 9

Day 09 入門 Kubernetes CNI — flannel (2)

  • 分享至 

  • xImage
  •  

昨天雖然介紹了 flannel 是如何讓容器之間進行通訊的,但是學弟好像沒有很清楚,還是有些地方不太懂,因此這篇主要是在補充一些昨天沒講到的部分(話說好像是我自己多嘴,講太多有的沒的搞得他們有點混亂)。

首先我們先複習一下 Day 03 的內容, Linux 有所謂的 Network Stack ,負責處裡網路相關的東西,從網路介面接收到封包之後會進入 TC ,這邊我們可以看到另外一張架構圖。在這張架構圖中有一個 ingress qdisc 跟一個 egress qdisc ,這兩個 qdisc 就是一個 buffer ,在 TC 中負責接收從網路介面收到的網路封包。需要注意的是每個介面都會有一組 qdisc 負責接收網路介面的網路封包。

image1

接著 TC 會接著將封包傳送到上層的 Netfilter , Netfilter 中有 5 個掛載點,分別為 PreRouting 、 Input 、 Forward 、 Output 及 PostRouting 。 TC 會將封包傳入 PreRouting ,接著若封包目的 IP 為本機 IP 便會傳送給 Input , Input 在傳送給應用程式。若封包目的 IP 不為本機 IP 則會傳送給 Forward ,進行轉發,而應用程式發出網路封包會由 Output 進行接收,再由 Output 傳送給 PostRouting 。而 Forward 接收後同樣會將封包傳送給 PostRouting ,最後由 PostRouting 傳送出去。總而言之, Netfilter 會根據路由表及封包的目的 IP 將封包傳送給 User space 的應用或者轉發至另一個網路介面(注意!這邊很重要。)。

image2

話說今天好像講太多了,那麼今天就到這邊,各位明天見了。


上一篇
Day 08 入門 Kubernetes CNI — flannel
下一篇
Day 10 入門 Kubernetes CNI — flannel (3)
系列文
Kubernetes 中關於網路的二三事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言