Google Distributed Cloud (GDC) 實體隔離裝置上的虛擬網路層,可控管在 GDC 機構中執行的虛擬機器和 Pod 之間的連線、防火牆、服務探索、負載平衡和可觀測性。
GDC 網路模型
GDC 只有一個層級的獨立租用環境:專案。
專案網路
您會將所有虛擬機器 (VM) 和容器化工作負載部署到專案。專案可做為機構內的網路區隔界線。
專案內的工作負載可以直接通訊。不過,預設網路政策會禁止不同專案中的工作負載進行通訊。如果專案網路政策允許,機構中的工作負載就能使用各自的 IP 位址,在 L3 網路層相互連線。對於需要傳入或傳出流量的每個工作負載,您必須明確啟用機構的傳入和傳出限制。
設定負載平衡器
負載平衡器會將流量分配到應用程式的後端工作負載,確保穩定性和可用性。為 Pod 和 VM 工作負載建立外部和內部負載平衡器。GDC 提供三種負載平衡器設定方法。詳情請參閱「管理負載平衡器」。
輸入限制
用來在機構外部公開工作負載的機制,會因工作負載是以 VM 為基礎還是以容器為基礎而有所不同。
您可以使用 VM 外部存取功能,將以 VM 為基礎的工作負載公開給機構外部。您必須為每個 VM 啟用這項功能。每個 VM 都會從機構的外部範圍取得自己的 IP 位址。
另一方面,您可以使用外部負載平衡器功能,在機構外部公開容器化工作負載。您可以建立外部負載平衡器,GDC 會指派外部 IP 位址。然後,流量可以在一組後端 Pod 工作負載之間達到負載平衡。
輸出限制
您必須為每個專案和工作負載明確啟用輸出流量,才能與機構外部通訊。啟用輸出流量後,工作負載的 IP 會在連線至機構外部時,透過網路位址轉譯 (NAT) 變更為外部 IP。如要進一步瞭解如何允許輸出流量,請參閱「管理機構的輸出流量」。
網路政策強制執行模式
機構內工作負載的安全防護機制是預設和使用者建立的專案網路政策的聯集。
政策執行作業會根據第 3 層和第 4 層的流量進行。流程會依下列方式說明 5 元組連線:
- 來源 IP 位址
- 目的地 IP 位址
- 來源通訊埠
- 目的地通訊埠
- 通訊協定,例如
TCP或UDP
網路政策會在主機來源工作負載的節點上,對輸出流量執行強制措施,並在流量抵達主機目的地工作負載的節點時,對輸入流量執行強制措施。因此,如要建立連線,您必須允許政策從來源離開,前往目的地,並從來源抵達目的地。
回覆流量 (例如回覆 SYN 區隔的 SYN-ACK (同步處理確認) 區隔) 不受強制執行措施影響。因此,如果允許啟動流量,系統一律會允許回覆流量。因此,您只會觀察到因用戶端啟動連線時強制執行政策而導致的連線逾時。遭拒絕的流量會在從來源節點傳出資料時捨棄,或在目的地節點傳入資料時捨棄。接收工作負載從未觀察到連線。
系統會根據允許型政策規則 (屬於外加規則) 進行強制執行。工作負載的最終強制執行結果是「任何相符」的流量,與套用至該工作負載的所有政策聯集相符。如果有多項政策,系統會將套用至各工作負載的規則加總合併,只要流量符合至少一項規則,就會允許流量通過。您沒有 deny 規則,只有 allow 規則。
如果網路政策拒絕流程,您不會收到回應封包,且會觀察到連線逾時。 因此,任何遭拒或重設的通訊協定層級連線或 HTTP 錯誤,並非網路強制執行的直接結果。
如要進一步瞭解 Kubernetes 網路政策,請參閱 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-two-sorts-of-pod-isolation。