跟蹤Kubernetes中的網路流量路徑

banq發表於2022-01-21

在深入瞭解資料包如何在 Kubernetes 叢集中流動的細節之前,讓我們首先明確 Kubernetes 網路的要求。
Kubernetes 網路模型定義了一組基本規則:
  • 叢集中的 pod 應該能夠在不使用網路地址轉換 (NAT) 的情況下與任何其他 pod 自由通訊。
  • 在叢集節點上執行的任何程式都應該與同一節點上的任何 pod 進行通訊,而無需使用 NAT。
  • 每個 pod 都有自己的 IP 地址(IP-per-Pod),並且每個其他 pod 都可以透過相同的地址訪問它。

這些要求不會將實施限制為單一解決方案。
相反,它們籠統地描述了叢集網路的屬性。
為了滿足這些限制,您必須解決以下挑戰:
  1. 你如何確保同一個 pod 中的容器的行為就像它們在同一個主機上一樣?
  2. pod 能否到達叢集中的其他 pod?
  3. pod 可以訪問服務嗎?服務是負載平衡請求嗎?
  4. pod 可以接收叢集外部的流量嗎?

在本文中,您將重點關注前三點,從 Pod 內網路或容器到容器的通訊開始。

相關文章