混合和多云端网络拓扑

本文是多篇系列文章中的第三篇,该系列介绍了混合和多云端部署、架构模式和网络拓扑。本部分探讨了可用于混合和多云端设置的常见网络拓扑。它介绍了这些拓扑最适合的场景和架构模式,并提供了使用 Google Cloud Platform (GCP) 实现这些拓扑的最佳做法。

该系列包含以下部分:

以安全可靠的方式将私有计算环境连接到 GCP 是所有混合或多云端部署成功的关键。为混合和多云端设置选择的网络拓扑需要满足企业工作负载的独特要求,并且适合您要应用的架构模式。虽然每个拓扑可能都需要定制,但是可以使用常见拓扑作为蓝图。

镜像

镜像拓扑是让云计算环境与私有计算环境相互镜像。此拓扑主要适用于遵循环境混合模式的设置。在该模式下,您可以在一个环境中运行开发和测试工作负载,在另一个环境中运行暂存和生产工作负载。

测试和生产工作负载不应直接相互通信。但是,应该能够以一致的方式管理和部署这两组工作负载。因此,您能以满足下列要求的方式连接这两个计算环境:

  • 持续集成/持续部署 (CI/CD) 和管理系统可以跨计算环境部署和管理工作负载。
  • 监控和其他管理工具可跨计算环境工作。
  • 工作负载无法跨计算环境进行通信。

参考架构

下图展示了符合这些要求的参考架构。

满足上述要求的参考架构

  • 在 GCP 上,使用两个单独的虚拟私有云 (VPC)。其中,共享 VPC 用于开发和测试工作负载,另一个 VPC 用于所有 CI/CD 和管理工具。这两个 VPC 对等互连,允许使用内部 IP 地址的跨 VPC 通信。借助此对等互连,CI/CD 和管理系统能够部署和管理开发和测试工作负载。
  • 此外,您还可将 CI/CD VPC 连接到在私有计算环境中运行生产工作负载的网络。您可以使用 Cloud InterconnectCloud VPN 建立此连接。借助此连接,您能够部署和管理生产工作负载。
  • 由于 VPC 对等互连不可传递,因此生产工作负载与开发和测试工作负载之间无法相互通信。
  • 所有环境共享一个通用且无重叠的 RFC 1918 IP 地址空间。

变体

对于此拓扑的一种变体,您可对开发和不同的测试阶段使用单独的 VPC,所有阶段均与 CI/CD VPC 对等互连。

运行基于虚拟机的工作负载时,在每个环境中运行能接管部署工作的 CI 代理可能也有所帮助。根据 CI 系统的能力,使用代理可能让您能够进一步锁住环境之间的通信,并加强对哪些系统可相互通信的控制。

下图展示了此变体可能的外观:

使用代理的镜像拓扑

当您仅运行 Kubernetes 工作负载时,可能无需对等互连这两个 VPC。Google Kubernetes Engine (GKE) 控制平面是公共的,因此您可以使用主要的已授权网络功能和 RBAC 来确保只允许您的 CI 系统执行部署。下图展示了此拓扑。

镜像拓扑

最佳做法

  • 确保部署或重新配置生产部署所需的所有 CI/CD 系统均以高度可用的方式进行部署。此外,请考虑使用冗余虚拟专用网 (VPN) 或互连链接来提高可用性。
  • 在开发和测试 VPC 中配置虚拟机实例以获取公共 IP 地址,使这些实例能直接访问互联网。否则,请在同一 VPC 中部署 NAT 网关以处理出站流量。
  • 要使用公共网络,请使用专用 Google 访问权限以避免 VPC 工作负载与 Google API 之间的通信。
  • 另请考虑混合和多云端网络拓扑的一般最佳做法

网状

网状拓扑是建立跨越多个计算环境的平面网络,其中所有系统都可以相互通信。此拓扑主要适用于分层分区爆发设置,并要求您以满足下列要求的方式连接计算环境:

  • 通过专用 RFC 1918 IP 地址,工作负载可以通过 UDP 或 TCP 跨环境边界相互通信。

  • 您可以使用防火墙规则精确地限制计算环境之间和之内的流量。

参考架构

下图展示了满足这些要求的参考架构。

网状参考架构

  • 在 GCP 端,将工作负载部署到单个共享 VPC 中。

  • 使用 Cloud InterconnectCloud VPN 将 VPC 连接到私有计算环境中的网络。此设置确保可使用专用 IP 地址进行环境之间的通信。

  • 使用 Cloud Router 在环境之间动态交换路由。

  • 所有环境共享一个通用且无重叠的 RFC 1918 IP 地址空间。

变体

您可以实现深度数据包检测,或者实现其他超出 GCP 防火墙规则功能的高级防火墙机制。要实现这些机制,您可扩展拓扑以通过防火墙设备传递所有跨环境流量,如下图所示。

扩展网状拓扑

  • 在专用传输 VPC 与私有计算环境中的 VLAN 之间建立 VPN 或互连链接。

  • 使用运行防火墙设备的虚拟机在传输 VPC 与应用 VPC 之间建立连接。配置这些虚拟机用于 IP 转发。虚拟机使用多个网络接口:一个连接到传输 VPC,另一个连接到应用 VPC。

  • 防火墙设备还能充当部署在应用 VPC 中的虚拟机实例的 NAT 网关。此网关使这些实例无需公共 IP 地址即可访问互联网。

最佳做法

封闭出站流量

封闭出站流量拓扑是将私有计算环境中选定的 API 公开给 GCP 中部署的工作负载,但不向公共互联网公开。您可使用充当现有工作负载门面的 API 网关辅助这一限制性公开。您可以在 DMZ 中部署网关,而在私有计算环境内更安全的专用网络中部署实际工作负载。

封闭出站流量拓扑主要适用于分层设置,并要求您以满足下列要求的方式连接计算环境:

  • GCP 中部署的工作负载可以使用专用 IP 地址与 API 网关进行通信。无法从 GCP 内部访问私有计算环境中的其他系统。

  • 不允许从私有计算环境到部署在 GCP 中的任何工作负载的通信。

参考架构

下图展示了满足这些要求的参考架构:

封闭出站流量拓扑

  • 在 GCP 端,将工作负载部署到共享 VPC 中。

  • 使用 Cloud InterconnectCloud VPN 将 VPC 连接到私有计算环境中的 DMZ,从而允许调用 API 网关。

  • 使用防火墙规则禁止到 VPC 的传入连接。

  • (可选)使用 Cloud Router 在环境之间动态交换路由。

  • 所有环境共享一个通用且无重叠的 RFC 1918 IP 地址空间。

变体

要访问互联网,部署在应用 VPC 中的虚拟机实例必须具有外部 IP 地址。为避免必须设置这些外部地址,您可以将 NAT 网关部署到同一个 VPC 中,如下图所示。

封闭出站流量拓扑的变体

最佳做法

封闭入站流量

封闭入站流量拓扑是将 GCP 中运行的工作负载的选定 API 公开给私有计算环境,但不向公共互联网公开。此拓扑与封闭出站流量场景相对应,非常适合边缘混合场景。

您通过可供私有计算环境访问的 API 网关公开所选的 API,如下所示:

  • 私有计算环境中部署的工作负载可以使用专用 IP 地址与 API 网关进行通信。无法访问在 GCP 中部署的其他系统。

  • 不允许从 GCP 到私有计算环境的通信。

参考架构

下图展示了满足这些要求的参考架构。

封闭入站流量拓扑

  • 在 GCP 端,将工作负载部署到应用 VPC 中。

  • 在专用传输 VPC 与私有计算环境之间建立 Cloud InterconnectCloud VPN 连接。

  • 使用运行 API 网关的虚拟机在传输 VPC 与应用 VPC 之间建立连接。这些虚拟机使用两个网络接口:一个连接到传输 VPC,另一个连接到应用 VPC。要平衡到多个 API 网关实例的流量,请在传输 VPC 中配置内部负载平衡器

  • 在应用 VPC 中部署 NAT 网关,以允许工作负载访问互联网。此网关让您不必为虚拟机实例提供外部 IP 地址(在 API 网关背后部署的系统中不需要这些地址)。

  • (可选)使用 Cloud Router 在环境之间动态交换路由。

  • 所有环境共享一个通用且无重叠的 RFC 1918 IP 地址空间。

最佳做法

封闭入站和出站流量

通过结合封闭入站和出站流量,可以在 GCP 和私有计算环境中运行的工作负载之间双向使用所选 API。在这两种情况下,都能使用 API 网关公开所选 API,并可选择对调用进行身份验证、授权和审核。

API 通信的工作原理如下:

  • GCP 中部署的工作负载可以使用专用 IP 地址与 API 网关进行通信。无法访问在私有计算环境中部署的其他系统。

  • 相反,私有计算环境中部署的工作负载可以使用专用 IP 地址与 API 网关进行通信。无法访问在 GCP 中部署的其他系统。

参考架构

下图展示了封闭入站和出站流量拓扑的参考架构。

封闭入站和出站流量拓扑

  • 在 GCP 端,将工作负载部署到共享 VPC 且不将其公开到互联网。

  • 在专用传输 VPC 与私有计算环境之间建立 Cloud InterconnectCloud VPN 连接。

  • 使用运行 API 网关的虚拟机在传输 VPC 与应用 VPC 之间建立连接。这些虚拟机使用两个网络接口:一个连接到传输 VPC,另一个连接到应用 VPC。要平衡到多个 API 网关实例的流量,请在传输 VPC 中配置内部负载平衡器

  • 您还能使用虚拟机实例,它们充当 NAT 网关连接到这两个 VPC。这些实例允许工作负载访问互联网并与私有计算环境中运行的 API 网关通信。

  • (可选)使用 Cloud Router 在环境之间动态交换路由。

  • 所有环境共享一个通用且无重叠的 RFC 1918 IP 地址空间。

最佳做法

切换

切换拓扑是使用 GCP 提供的存储服务将私有计算环境连接到 GCP 中的项目。此拓扑主要适用于遵循分析模式的设置,其中

  • 在私有计算环境中运行的工作负载会将数据上传到共享存储位置。根据使用场景,可能以批量或小型消息的形式上传。

  • 然后,GCP 托管的工作负载会使用这些位置的数据,并以流式或批量的方式处理它。

参考架构

下图展示了切换拓扑的参考架构。

切换拓扑的参考架构

  • 在 GCP 端,将工作负载部署到应用 VPC 中。这些工作负载可包括数据处理、分析以及与分析相关的前端应用。

  • 要将前端应用安全地公开给企业用户,您可以使用 Cloud Identity-Aware Proxy

  • 您可以使用一组 Cloud Storage 存储分区或 Cloud Pub/Sub 队列从私有计算环境上传数据,并使其可供 GCP 中部署的工作负载做进一步处理。借助 IAM 政策,您能够限制对可信工作负载的访问。

  • 由于环境之间没有专用网络连接,因此 RFC 1918 IP 地址空间可以在环境之间重叠。

最佳做法

混合和多云端网络拓扑的最佳做法

  • 在 Google Cloud Platform 端使用共享 VPC。共享 VPC 是一种可跨多个 Google Cloud Platform 项目进行使用的 VPC,让您无需维护许多单独的 VPC。借助共享 VPC,您还能集中管理对等互联配置、子网、防火墙规则和权限。

  • 管理防火墙规则时,请优先使用基于服务帐号的过滤而非基于网络标记的过滤

  • 不要使用 VPC 将各个工作负载彼此隔离。相反,请优先使用子网和防火墙规则。使用 GKE 时,您可以借助网络政策完善此方法。

  • 虽然 Cloud VPN 可确保环境之间的流量已加密,但 Cloud Interconnect 无法确保。要保护工作负载之间的通信,请考虑使用传输层安全协议 (TLS) 进行保护。

  • 请遵循有关创建高吞吐量 VPN 的最佳做法。

  • 在现有 RFC 1918 IP 地址空间中留出足够的地址空间,用于容纳所有云托管的系统。

  • 使用 GKE 时,请考虑使用专用集群并注意网络大小要求

  • 借助专用 Google 访问权限,允许在 GCP 中运行但未分配有外部 IP 地址的虚拟机实例访问 Google 服务。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Solutions