GKE IP 偽裝設定深入分析

本頁面說明 Google Kubernetes Engine (GKE) IP 位址偽裝設定的網路分析器洞察。如要瞭解所有洞察類型,請參閱「洞察群組和類型」。

網路分析器會偵測 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:這個欄位會指定目的地 IP 位址範圍清單 (採用 CIDR 格式),來源 IP 位址 SNAT 會針對這些範圍停用。
  • Pod CIDR:Pod CIDR 範圍是專用的 IP 位址區塊,專門用於為叢集內的 Pod 指派不重複的 IP 位址。叢集中執行的每個 Pod 都會從這個範圍取得自己的 IP 位址,以進行網路通訊。

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

建議

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

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

由於 --disable-default-snat=true 旗標,GKE 叢集已停用預設 SNAT,且自行部署的 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:這個欄位會指定目的地 IP 位址範圍清單 (採用 CIDR 格式),來源 IP 位址 SNAT 會針對這些範圍停用。
  • Pod CIDR:Pod CIDR 範圍是專用的 IP 位址區塊,專門用於為叢集內的 Pod 指派不重複的 IP 位址。叢集中執行的每個 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 位址偽裝影響。