GCP GKE VPC 原生叢集 IP 別名是如何實現的?

GCP GKE VPC 原生叢集 IP 別名是如何實現的?

GCP/GKE VPC 原生網路如何實現每個 Pod 的別名 IP 分配?

如在Google Kubernetes Engine – 網路,每個 Pod 都會有一個來自子網路輔助 IP CIDR 範圍的 IP(例如 10.4.1.1)。

在此輸入影像描述

Linux 實例中的每個 Pod 都有其 veth I/F。 pod(i) 的每個 veth(i) 如何連結到執行 pod 的 Linux 機器的網路介面?每個 pod (veth) 都有自己的網路介面連接到 Linux 機器,或所有 pod 和 veth 介面共用單一 eth0?

在此輸入影像描述

根據Google Cloud 上的 Kubernetes 網絡表示 Linux 盒子的單一 eth0 在 pod 之間共用。然後,單一 eth0 有多個與其關聯的輔助別名 IP 位址。那麼Linux盒子如何將封包分離到每個別名IP並將它們路由到對應的pod/veth呢?是否使用 iptable 將別名 IP 對應到 veth?

在此輸入影像描述

GKE 文檔VM 網路介面中定義的別名 IP 範圍沒有詳細資料。

在此輸入影像描述

答案1

每個 Pod 的 veth 如何連結到運行 Pod 的 Linux 盒子的網路介面?

GKE 創建了一個網路命名空間連接吊艙的veth 與節點的 eth0。

每個 pod (veth) 都有自己的網路介面連接到 Linux 盒子,或所有 pod 和 veth 介面共用單一 eth0?

所有 veth 都透過網橋 (cbr0) 連接到單一 eth0 介面。示意圖

linux box如何將封包分離到每個alis IP並將它們路由到對應的pod/veth?是否使用 iptable 將別名 IP 對應到 veth?

kube代理編輯節點上的 iptable,以便將流量路由到適當的 Pod。

您可以在此找到更多信息文章和這個堆疊溢位 回答

相關內容