Kf 與 Kubernetes 和 Istio 緊密整合,可提供強大的網路政策強制執行功能。
根據預設,Kf 工作負載會在 Kubernetes 叢集中執行,並使用 Kubernetes DNS 解析位址。這個 DNS 解析器會先嘗試解析叢集內的位址,如果找不到任何位址,才會嘗試外部解析。
每個 Kf 應用程式都會搭配由 Istio 或 Anthos 服務網格 (ASM) 插入的 Envoy 補充 Proxy 執行。這個補充 Proxy 會代理所有進出 Kubernetes Pod 的網路流量。
每個 Kubernetes Pod 都會在節點上執行,節點是負責管理組成 Pod 的容器映像檔的實體或虛擬機器。節點可存在於實體或虛擬網路中。
這些系統會共同組成可套用網路政策的系統階層。以下列出從最寬鬆到最嚴格的分級。
網路層級政策
工作負載保護功能會從安裝 GKE 叢集的網路開始。
如果您要在 GCP 的 GKE 叢集中執行 Kf,建議您:
- 將 GKE 叢集放在虛擬私有雲 (VPC) 網路中。
- 已啟用 私人 Google 存取權。
- 使用 Cloud NAT 控管輸出。
節點層級政策
您可以使用 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 服務網格套用政策。
服務網格是基礎架構層,可讓各項服務之間的通訊受到管理、可觀測且安全,讓您在所選基礎架構上建立由多項微服務組成的穩固企業應用程式。
如要查看支援的功能清單,請按這裡。