GKE IP 偽裝設定深入分析

本頁面說明 Google Kubernetes Engine (GKE) IP 假冒設定的 Network Analyzer 洞察資料。如要瞭解所有洞察資料類型,請參閱「洞察資料群組和類型」。

網路分析器會偵測 ip-masq-agent 設定,並與叢集的 Pod CIDR 範圍進行比較。

ConfigMap 缺少部分 Pod CIDR 範圍

在 GKE 叢集上部署的 ip-masq-agent 設定的 ConfigMap 似乎缺少 Pod CIDR 範圍。這與下列警告訊息相對應: 叢集的 ip-masq-agent 設定對應關係下的 nonMasqueradeCIDRs 未完全涵蓋 Pod CIDR 範圍。 這表示 Pod 之間的基礎架構叢集流量會使用來源節點的 IP 位址進行來源網路位址轉譯 (SNAT),這可能會在防火牆或網路政策生效時導致連線問題。

這項洞察包含下列資訊:

  • ip-masq-agent ConfigMapip-masq-agent 元件的 ConfigMap
  • nonMasqueradeCIDRs:這個欄位會以 CIDR 格式指定目標 IP 位址範圍清單,並為這些範圍停用來源 IP 位址 SNAT。
  • Pod CIDR:Pod CIDR 範圍是專屬的 IP 位址區塊,專門用於將不重複的 IP 位址指派給叢集中的 Pod。在叢集中執行的每個 Pod 都會從這個範圍接收專屬的 IP 位址,以便進行網路通訊。

詳情請參閱「IP 偽裝代理程式」和「在標準叢集中設定 IP 偽裝代理程式」。

建議

檢查指派給叢集的 Pod CIDR 值,並編輯 ip-masq-agent ConfigMap,在 nonMasqueradeCIDRs 欄位中加入所有 Pod CIDR 範圍。加入 Pod CIDR 範圍有助於確保叢集內的流量不會受到 IP 偽裝的影響。

ConfigMap 缺少部分 Pod CIDR 範圍,且已停用預設 SNAT

由於 --disable-default-snat=true 標記,預設 SNAT 已在 GKE 叢集中停用,而自行部署的 ip-masq-agent 設定會改為管理 IP 偽裝規則。您為 ip-masq-agent ConfigMap 設定的自訂設定可能未正確納入 Pod CIDR 範圍。這與下列警告訊息相對應: 叢集的 ip-masq-agent 設定對應關係下的 nonMasqueradeCIDRs 未完全涵蓋 Pod CIDR 範圍,且旗標 disable-default-snat 設為 true。 因此,Pod 流量可能無法根據您指定的政策正確偽裝。

這項洞察包含下列資訊:

  • ip-masq-agent ConfigMapip-masq-agent 元件的 ConfigMap
  • nonMasqueradeCIDRs:這個欄位會以 CIDR 格式指定目標 IP 位址範圍清單,並為這些範圍停用來源 IP 位址 SNAT。
  • Pod CIDR:Pod CIDR 範圍是專用 IP 位址區塊,專門用於將不重複的 IP 位址指派給叢集中的 Pod。在叢集中執行的每個 Pod 都會從這個範圍接收專屬的 IP 位址,以便進行網路通訊。
  • 自訂設定ip-masq-agent ConfigMap 的自訂設定會覆寫預設的 nonMasqueradeCIDRs 清單。自訂設定會完全取代服務專員提供的預設範圍。
  • disable-default-snat 標記--disable-default-snat 標記會變更預設的 GKE SNAT 行為,讓傳送至所有目的地的封包保留來源 Pod IP 位址。

詳情請參閱「IP 偽裝代理程式」和「在標準叢集中設定 IP 偽裝代理程式」。

建議

檢查叢集的 Pod CIDR 值和自訂設定編輯 ip-masq-agent ConfigMap,在 nonMasqueradeCIDRs 欄位中加入所有 Pod CIDR 範圍。加入 Pod CIDR 範圍有助於確保叢集內的流量不會受到 IP 偽裝的影響。