网络概览

Google Distributed Cloud (GDC) 气隙网络上的虚拟网络层负责管理在 GDC 组织中运行的虚拟机和 pod 之间的连接、防火墙、服务发现、负载均衡和可观测性。

GDC 网络模型

GDC 包含两个级别的多租户概念:组织和项目。项目存在于组织内,您可以将所有虚拟化和容器化的工作负载部署到组织内的特定项目中。

组织网络

GDC 中的每个组织都有自己的隔离虚拟网络。组织内的虚拟网络是一个扁平 IP 空间,这意味着组织中的所有工作负载都彼此具有直接 IP 地址连接。借助项目网络政策,您可以控制组织中不同项目中的工作负载之间的访问。

GDC 在网络级别将每个组织与其他所有组织隔离开来。一个组织中的工作负载与另一个组织中的工作负载没有直接 IP 地址连接。

一个组织有两个不同的 IP 地址范围:内部范围和外部范围。外部 IP 地址范围可从组织外部访问,而内部 IP 地址范围只能从组织内部访问。系统始终会从组织的内部范围为工作负载分配 IP 地址,这意味着默认情况下无法从组织外部访问这些工作负载。您必须使用项目网络部分中所述的入站和出站限制,为工作负载明确启用入站和出站流量。

项目网络

您可以将所有虚拟机 (VM) 和容器化的工作负载部署到项目中。项目在组织内提供网络分段边界。

项目中的工作负载可以直接相互通信。但是,默认网络策略会阻止不同项目中的工作负载之间的通信。项目网络政策 (ProjectNetworkPolicy) 借助项目网络政策,您可以配置组织中的哪些项目可以相互通信。如果项目网络策略允许,则组织中的工作负载可以使用各自的 IP 地址在 L3 网络层相互访问。对于需要入站或出站流量的每个工作负载,您必须明确启用组织内外的 入站出站 限制。

配置负载平衡器

负载平衡器会将流量分配到应用的后端工作负载,确保稳定性和可用性。为 pod 和虚拟机工作负载创建外部和内部负载平衡器。GDC 提供了三种配置负载平衡器的方法。如需了解详情,请参阅管理负载平衡器

入站限制

用于在组织外部公开工作负载的机制因工作负载是基于虚拟机还是容器而异。

您可以使用虚拟机外部访问功能在组织外部公开基于虚拟机的工作负载。您可以为每个虚拟机启用此功能。每个虚拟机都会从组织的外部范围获取自己的 IP 地址。

另一方面,您可以使用外部负载均衡器功能在组织外部公开容器化的工作负载。您可以创建一个外部负载均衡器,GDC 会分配一个外部 IP 地址。然后,流量可以在一组后端 pod 工作负载之间进行负载均衡。

出站限制

您必须明确为每个项目和工作负载启用出站流量,才能在组织外部进行通信。启用出站流量会在连接到组织外部时,使用网络地址转换 (NAT) 将工作负载的 IP 地址更改为外部 IP 地址。如需详细了解如何允许出站流量,请参阅 NAT 概览

网络政策执行模型

组织内工作负载的安全状况是默认和用户创建的 项目网络政策的并集。

政策执行基于第 3 层和第 4 层流量。流量描述了 5 元组连接,如下所示:

  • 来源 IP 地址
  • 目标 IP 地址
  • 来源端口
  • 目标端口
  • 协议,例如 TCPUDPIPIP

网络政策对托管来源工作负载的节点上的流量执行出站流量执行,并在流量到达托管目标工作负载的节点时执行入站流量执行。因此,如需建立连接,您必须允许政策从来源离开到达目标,并从来源到达目标。

回复流量(例如回复 SYN 段的 SYN-ACK(同步-确认)段)不受执行限制。因此,如果允许发起流量,则始终允许回复流量。因此,您只会观察到由于发起连接的客户端执行政策而导致的连接超时。被拒绝的流量会在从来源节点传输出站数据或在目标节点传入数据期间被丢弃。接收工作负载永远不会观察到连接。

执行基于允许型政策规则,这些规则是附加的。工作负载的最终执行结果是针对应用于该工作负载的所有政策的并集的流量的“任何匹配”。存在多个政策时,应用于每个工作负载的规则会以附加方式组合,如果流量与至少一条规则匹配,则允许流量。您没有拒绝规则,只有允许规则。

当网络策略拒绝流量时,您不会收到响应数据包,并且会观察到连接超时。因此,任何被拒绝或重置的协议级连接或 HTTP 错误都不是网络执行的直接结果。

如需详细了解 Kubernetes 网络政策,请参阅 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-two-sorts-of-pod-isolation