使用 Private Service Connect 的 Dataproc 集群网络

本页面介绍了如何在使用 Private Service Connect 时为 Dataproc 集群配置网络连接。介绍了 Private Service Connect 与 Virtual Private Cloud 对等互连在不同 Dataproc 应用场景的交互。还总结了专用 Google 访问通道、Private Service Connect 和 Cloud NAT 之间的功能异同。

概览

Dataproc 集群需要与Google Cloud API 和服务(例如 Dataproc API、Cloud Storage 和 Cloud Logging)以及用户资源(例如其他 Virtual Private Cloud 网络或本地环境中的数据源)建立网络连接。

默认情况下,使用映像版本 2.2 及更高版本创建的 Dataproc 集群仅使用内部 IP 地址创建。Dataproc 会在仅限内部 IP 的集群使用的区域子网上自动启用专用 Google 访问通道,以便在不连接到公共互联网的情况下允许连接到 Google API 和服务。

为了提供更精细的网络控制,您可以配置集群以使用 Private Service Connect,该功能通过 VPC 网络中的专用端点将流量路由到受支持的 Google API 和服务。这有助于实现安全性和合规性。

常用的专用网络选项

本部分介绍了专用 Google 访问通道、Private Service Connect 和 Cloud NAT 的功能和区别。

  • 专用 Google 访问通道是一种单向路径,可让虚拟机在不使用互联网的情况下访问 Google 公共服务。它类似于从您的社区(VPC 子网)直接通往 Google 服务商场的特殊道路出口,可绕过公共道路。社区中的所有人都可以使用。Dataproc 会自动在通过映像版本 2.2 及更高版本创建的 Dataproc 无服务器集群使用的区域子网上启用专用 Google 访问通道。

  • Private Service Connect 为位于 VPC 网络中的服务创建专用双向端点。它类似于从您的位置(VPC 网络)直接进入服务的专用路径。它在您的位置有一个地址(VPC 网络中的内部 IP 地址),并且只有您可以使用该地址。

  • Cloud NAT 可让具有专用 IP 地址的虚拟机访问互联网。

功能和差异

功能 专用 Google 访问通道 (PGA) Private Service Connect (PSC)
工作原理 将来自虚拟机的流量定向到特殊的 Google IP 地址范围 (private.googleapis.com)。 在 VPC 网络中创建一个表示 Google 服务的转发规则(端点)。
IP 地址 虚拟机连接到 Google 拥有的 IP 地址。 虚拟机连接到您在 VPC 网络中拥有的内部 IP 地址。
方向 仅限出站:虚拟机启动与 Google 的连接。 双向:虚拟机连接到服务,并且服务可以发起返回流量。
范围 针对整个子网启用或停用。 部署为特定的端点资源。
服务 仅连接到 Google API,例如 Cloud Storage、BigQuery 或 Dataproc API。 连接到 Google API、其他公司的服务以及您自己的服务。

对于 Dataproc,专用 Google 访问通道是一种更简单的传统方法,可让集群虚拟机与 Dataproc 控制平面通信。Private Service Connect 是一种更新、更灵活的方法,可让您实现精细的控制,尤其是在复杂或多租户网络中。

为什么使用 Private Service Connect?即使 Dataproc 集群具有仅限内部 IP 地址并启用了专用 Google 访问通道(2.2+ 版本映像集群的默认配置),Private Service Connect 仍具有以下优势:

  • Private Service Connect 可让您在 VPC 网络内创建一个具有内部 IP 地址的专用端点,该端点直接映射到特定的 Google 服务,而不是使用专用 Google 访问通道共享的端点集来连接到 Google API 和服务。

  • 您可以创建防火墙规则,以仅允许流量流向 Private Service Connect 端点 IP 地址。例如,您可以配置一条规则以仅允许从 Dataproc 集群虚拟机流向 BigQuery 的 Private Service Connect 端点的内部 IP 地址的出站流量,同时拒绝所有其他出站流量。与使用专用 Google 访问通道创建范围更广的防火墙规则相比,这种方法更安全。

  • 在 VPC 网络中使用 Private Service Connect 端点可明确网络路径,并更轻松地审核安全性与合规性,因为流向 Cloud Storage 等服务的流量不会与其他 API 流量共用路径。

专用路径和公共路径

专用 Google 访问通道、Private Service Connect 和 Cloud NAT 可让具有 RFC 1918 地址的主机访问Google Cloud 服务。它们还允许具有专用 RFC 1918 地址的 Google Cloud 资源启动与 Google Cloud 服务的连接。

评估不同的连接选项时,需要注意的一个重要区别是,使用相应连接的流量是保持私密状态还是通过公共互联网传输。

  • 专用 Google 访问通道和 Private Service Connect 可确保流量保留在 Google 的专用网络内。数据不会通过公共互联网传输到 Google Cloud 服务,这非常适合需要安全性和可预测性能的场景。

  • Cloud NAT 通过连接到服务的公共端点来访问 Google Cloud 服务。流量通过 NAT 网关离开 VPC 网络,并通过互联网传输。

每种选项的运作方式

下面详细介绍了每种连接机制:

方法 服务路径 目标端点 主要应用场景
专用 Google 访问通道 Google 专用网络 特殊 Google IP 地址 (private.googleapis.com) 简单、子网级访问权限,可让虚拟机以访问 Google API。
Private Service Connect Google 专用网络 VPC 网络内的专用 IP 地址端点 对 Google API、第三方服务或您自己的服务的精细、安全访问权限。
Cloud NAT 公共互联网 服务公共 IP 地址 具有专用 IP 地址的虚拟机的通用出站互联网访问权限。

配置 Private Service Connect

如需将 Private Service Connect 与 Dataproc 集群搭配使用,您必须在 VPC 网络中为 Dataproc 所依赖的所有 Google API 配置必要的 Private Service Connect 端点和 DNS。如需了解如何设置子网和配置 DNS,请参阅关于通过端点访问 Google API

根据需要启用对等互连

虽然 Private Service Connect 可提供对许多 Google 服务的专用访问通道,但您可能还需要启用 VPC 对等互连,尤其是在以下场景中:

  • 其他虚拟私有云网络:Private Service Connect 连接到 Google 托管式服务,而不是直接连接到其他客户 VPC 网络。如果您的数据源、自定义应用或其他服务与 Dataproc 集群位于不同的 VPC 网络中,通常需要 VPC 对等互连,以在这些网络之间实现私密通信。

  • 本地网络:如果 Dataproc 集群需要访问本地环境中的数据或服务,则需要通过 Cloud VPN 或 Cloud Interconnect 连接到本地网络,通常还需要 VPC 对等互连。

  • 与 Google 服务的全面内部通信:虽然 Private Service Connect 可提供对已配置的 Google 服务(例如 Cloud Storage 和 BigQuery)的专用访问通道,但内部控制平面通信或特定的 Dataproc 功能可能需要与具有广泛 Google 服务访问权限的网络进行 VPC 对等互连,以访问底层 Google 基础设施或其他 Google API。

  • 访问其他 VPC 网络中的数据源:如果 Dataproc 作业从位于其他 VPC 网络中的数据源(例如 Cloud SQL、自行管理的数据库和自定义应用)读取数据或向这些数据源写入数据,则必须在 Dataproc 集群 VPC 网络与包含这些数据源的 VPC 网络之间建立 VPC 对等互连。Private Service Connect 不提供客户自有网络之间的 VPC 网络间通信。

  • 混合连接:对于混合云部署,如果 Dataproc 集群需要与本地数据中心内的资源进行交互,则 VPC 对等互连对于使用 Cloud VPN 或 Cloud Interconnect 将本地网络连接到 Google Cloud VPC 网络至关重要。

排查 Private Service Connect 问题

如果 Dataproc 集群(使用 Private Service Connect,但未使用 VPC 对等互连)无法创建或存在连接问题,请按以下步骤操作,以帮助排查和解决问题:

  • 确认所需的 API 访问权限:

    • 验证是否已在您的 Google Cloud 项目中启用了所有必要的 Google API。
  • 验证 Private Service Connect 端点配置:

    • 验证是否已为集群所需的所有 Google API(例如 dataproc.googleapis.comstorage.googleapis.comlogging.googleapis.combigquery.googleapis.comcompute.googleapis.com)正确配置 Private Service Connect 端点。

    • 使用 VPC 子网内虚拟机中的 dignslookup 等工具,确认所需服务的 DNS 记录是否通过 Private Service Connect 端点正确解析为 VPC 网络中的专用 IP 地址。

  • 检查防火墙规则:

    • 验证 VPC 网络中的防火墙规则是否允许从 Dataproc 集群实例到 Private Service Connect 端点的出站连接。

    • 如果使用共享 VPC,请验证是否已在宿主项目中配置适当的防火墙规则。

  • 检查 Dataproc 集群日志:

    • 在 Logging 中查看集群创建日志,了解是否存在任何与网络相关的错误,例如 connection refusedtimeout 或“unreachable host”。这些错误可能表明缺少路由或防火墙规则不正确。检查集群实例的串行控制台日志。
  • 评估是否需要 VPC 对等互连:

    • 根据工作负载依赖项,如果 Dataproc 集群需要连接到非 Google 管理的资源(例如单独 VPC 网络中的数据库和本地服务器),请建立 VPC 对等互连。

    • 检查 Dataproc 集群与之交互的Google Cloud 服务的网络要求。即使使用 Private Service Connect,某些服务也可能有特定的对等互连要求。

遵循最佳做法

  • 全面的网络架构规划:在部署使用 Private Service Connect 的 Dataproc 之前,请仔细设计网络架构,并考虑所有隐式和显式依赖项以及数据流路径。这包括确定 Dataproc 集群在预配和运行期间与之交互的所有 Google API。

  • 测试连接:在开发和预演阶段,全面测试从 Dataproc 集群到所有必需服务和数据源的网络连接。

  • 使用 Network Intelligence Center:使用 Google Cloud Network Intelligence Center 工具(例如 Connectivity Tests)诊断和排查网络连接问题。

后续步骤