設定網路政策

Kf 與 Kubernetes 和 Istio 緊密整合,可提供強大的網路政策強制執行功能。

根據預設,Kf 工作負載會在 Kubernetes 叢集中執行,並使用 Kubernetes DNS 解析位址。這個 DNS 解析器會先嘗試解析叢集內的位址,如果找不到任何位址,才會嘗試外部解析。

每個 Kf 應用程式都會搭配由 IstioAnthos 服務網格 (ASM) 插入的 Envoy 補充 Proxy 執行。這個補充 Proxy 會代理所有進出 Kubernetes Pod 的網路流量。

每個 Kubernetes Pod 都會在節點上執行,節點是負責管理組成 Pod 的容器映像檔的實體或虛擬機器。節點可存在於實體或虛擬網路中。

這些系統會共同組成可套用網路政策的系統階層。以下列出從最寬鬆到最嚴格的分級。

網路層級政策

工作負載保護功能會從安裝 GKE 叢集的網路開始。

如果您要在 GCP 的 GKE 叢集中執行 Kf,建議您:

節點層級政策

您可以使用 Kubernetes NetworkPolicies,為在節點上執行的容器設定政策。這些是 Kubernetes 中 Cloud Foundry 網路政策最接近的對應項目。

NetworkPolicies 是由 Kubernetes 外掛程式支援。如果您自行設定 GKE 叢集,就必須啟用 NetworkPolicy 強制執行機制

Kf 會使用 kf.dev/networkpolicy=app 標記應用程式,並使用 kf.dev/networkpolicy=build 進行建構。這樣一來,您就能直接將 NetworkPolicy 指定給執行應用程式或版本的 Pod。

每個 Kf 空間一開始都會建立兩個 NetworkPolicy,一個指定應用程式,另一個指定建構。您可以變更空間的 spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress 欄位設定。這些欄位可設為下列值的其中之一:

列舉值 說明
PermitAll 允許所有流量。
DenyAll 拒絕所有流量。

根據預設,Kf 會使用寬鬆的網路政策。這可讓 Kf 使用下列功能:

  • 叢集入口閘道向北/向南轉送
  • 輸出至網際網路,例如擷取 Buildpacks
  • 應用程式之間的東/西向路由
  • 存取 Kubernetes DNS 伺服器
  • 存取容器登錄項
  • 直接存取虛擬私有雲網路
  • 存取 Cloud Logging 等 Google 服務
  • 存取 Workload Identity 伺服器,自動輪替憑證

服務網格政策

如果您需要精細的網路控制、驗證、授權和可觀察性,可以使用 Anthos 服務網格套用政策。

服務網格是基礎架構層,可讓各項服務之間的通訊受到管理、可觀測且安全,讓您在所選基礎架構上建立由多項微服務組成的穩固企業應用程式。

如要查看支援的功能清單,請按這裡