设置网络政策

Kf 与 Kubernetes 和 Istio 紧密集成,以提供可靠的网络政策实施。

默认情况下,Kf 工作负载在 Kubernetes 集群中运行,并使用 Kubernetes DNS 解析地址。此 DNS 解析器将首先尝试解析集群内的地址,如果未找到,则将尝试外部解析。

每个 Kf 应用都使用由 IstioAnthos Service Mesh (ASM) 注入的 Envoy Sidecar 运行。此 Sidecar 会代理进出 Kubernetes Pod 的所有网络流量。

每个 Kubernetes Pod 均在节点(物理机或虚拟机)上负责管理构成 Pod 的容器映像。节点位于物理或虚拟网络上。

它们共同构成一个可以应用网络政策的系统层次结构。下面按粒度从小到大的顺序列出了这些项。

网络级别政策

工作负载保护从安装 GKE 集群的网络开始。

如果您在 GCP 上的 GKE 集群上运行 Kf,则 Kf 建议执行以下操作:

节点级别政策

您可以使用 Kubernetes NetworkPolicies 为节点上运行的容器设置政策。以下是与 Kubernetes 中存在的 Cloud Foundry 网络政策最近的映射。

NetworkPolicies 由 Kubernetes 插件提供支持。如果您设置了自己的 GKE 集群,则需要启用 NetworkPolicy 强制执行

Kf 使用 kf.dev/networkpolicy=app 标记应用,使用 kf.dev/networkpolicy=build 进行构建。这样,您就可以直接在运行应用或构建的 Pod 上定位 NetworkPolicies。

每个 Kf Space 都会首先创建两个 NetworkPolicies,一个定位应用,一个定位构建。您可以更改空间的 spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress 字段的配置。这些字段可设置为以下值之一:

枚举值 说明
PermitAll 允许所有流量。
DenyAll 拒绝所有流量。

默认情况下,Kf 使用宽容网络政策。这允许 Kf 使用以下功能:

  • 北/南路由到集群入站网关
  • 到互联网的出站流量,例如提取 Buildpack
  • 应用之间的东/西路由
  • 访问 Kubernetes DNS 服务器
  • 访问容器注册表
  • 直接访问 VPC 网络
  • 访问 Google 服务(如 Cloud Logging)
  • 访问 Workload Identity 服务器以自动轮替凭据

服务网格政策

如果您需要精细的网络控制、身份验证、授权和可观察性,您可以使用 Anthos Service Mesh 应用政策。

服务网格是一个基础架构层,可在您的服务之间实现托管、可观察和安全的通信,让您在所选基础架构上创建由众多微服务组成的强大企业应用。

您可以在此处查看支持的功能列表。