網路總覽

Google Distributed Cloud (GDC) Air-gapped 的虛擬網路層可控管 GDC 機構中執行的虛擬機器和 Pod 之間的連線、防火牆、服務探索、負載平衡和可觀測性。

GDC 網路模型

GDC 包含兩個層級的多租戶概念:機構和專案。專案位於機構內,您會將所有虛擬化和容器化工作負載部署至機構內的特定專案。

機構網路

GDC 中的每個機構都有各自獨立的虛擬網路。機構內的虛擬網路是固定 IP 空間,也就是說,機構內的所有工作負載都會直接連線至彼此的 IP 位址。使用專案網路政策,您可以控管機構中不同專案之間的工作負載存取權。

GDC 會在網路層級將每個機構與其他機構隔離。一個機構中的工作負載無法直接透過 IP 位址連線至另一個機構中的工作負載。

某機構有兩個不同的 IP 範圍:內部範圍和外部範圍。外部 IP 範圍可從機構外部連線,內部 IP 範圍則只能從機構內部連線。系統一律會從機構的內部範圍為工作負載指派 IP 位址,因此預設無法從機構外部存取工作負載。您必須使用「專案網路」一節所述的 Ingress 和 Egress 限制,明確啟用工作負載的輸入和輸出流量。

專案網路

您會將所有虛擬機器 (VM) 和容器化工作負載部署到專案。專案可做為機構內的網路區隔界線。

專案內的工作負載可以直接通訊。不過,預設網路政策會禁止不同專案中的工作負載進行通訊。專案網路政策 (ProjectNetworkPolicy) 可讓您設定機構中哪些專案可以彼此通訊。如果專案網路政策允許,機構中的工作負載就能使用各自的 IP 位址,在 L3 網路層相互連線。對於需要傳入或傳出流量的每個工作負載,您必須明確啟用機構的傳入傳出限制。

設定負載平衡器

負載平衡器會將流量分配到應用程式的後端工作負載,確保穩定性和可用性。為 Pod 和 VM 工作負載建立外部和內部負載平衡器。GDC 提供三種負載平衡器設定方法。詳情請參閱「管理負載平衡器」。

輸入限制

用來在機構外部公開工作負載的機制,會因工作負載是以 VM 為基礎還是以容器為基礎而有所不同。

您可以使用 VM 外部存取功能,將以 VM 為基礎的工作負載公開給機構外部。您必須為每個 VM 啟用這項功能。每個 VM 都會從機構的外部範圍取得自己的 IP 位址。

另一方面,您可以使用外部負載平衡器功能,在機構外部公開容器化工作負載。您可以建立外部負載平衡器,GDC 會指派外部 IP 位址。然後,流量可以在一組後端 Pod 工作負載之間達到負載平衡。

輸出限制

您必須為每個專案和工作負載明確啟用輸出流量,才能與機構外部通訊。啟用輸出流量後,工作負載的 IP 會在連線至機構外部時,透過網路位址轉譯 (NAT) 變更為外部 IP。如要進一步瞭解如何允許輸出流量,請參閱「管理機構的輸出流量」。

網路政策強制執行模式

機構內工作負載的安全防護狀態,是預設和使用者建立的專案網路政策的聯集。

政策執行作業會根據第 3 層和第 4 層的流量進行。流程會依下列方式說明 5 元組連線:

  • 來源 IP 位址
  • 目的地 IP 位址
  • 來源通訊埠
  • 目的地通訊埠
  • 通訊協定,例如 TCPUDP

網路政策會在主機來源工作負載的節點上,對輸出流量執行強制措施,並在流量抵達主機目的地工作負載的節點時,對輸入流量執行強制措施。因此,如要建立連線,您必須允許政策從來源離開,前往目的地,並從來源抵達目的地。

回覆流量 (例如回覆 SYN 區隔的 SYN-ACK (同步處理確認) 區隔) 不受強制執行措施影響。因此,如果允許啟動流量,系統一律會允許回覆流量。因此,您只會觀察到因用戶端啟動連線時強制執行政策而導致的連線逾時。遭拒絕的流量會在從來源節點傳出資料時捨棄,或在目的地節點傳入資料時捨棄。接收工作負載從未觀察到連線。

系統會根據允許型政策規則 (屬於外加規則) 進行強制執行。工作負載的最終強制執行結果是「任何相符」的流量,與套用至該工作負載的所有政策聯集相符。如果有多項政策,系統會將套用至各工作負載的規則加總合併,只要流量符合至少一項規則,就會允許流量通過。您沒有 deny 規則,只有 allow 規則。

如果網路政策拒絕流程,您不會收到回應封包,且會觀察到連線逾時。 因此,任何遭拒或重設的通訊協定層級連線或 HTTP 錯誤,並非網路強制執行的直接結果。

如要進一步瞭解 Kubernetes 網路政策,請參閱 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-two-sorts-of-pod-isolation