已发布服务简介

本文档简要介绍如何使用 Private Service Connect 向服务使用方提供服务。

作为服务提供方,您可以使用 Private Service Connect,通过您的 VPC 网络中的内部 IP 地址发布服务。服务使用方可以使用其 VPC 网络中的内部 IP 地址访问您发布的服务。

为了将服务提供给使用方,您需要创建一个或多个专用子网。然后,您可以创建一个引用这些子网的服务连接。服务连接可以具有不同的连接偏好设置

服务使用方类型

有两种类型的使用方可以连接到 Private Service Connect 服务:

端点基于转发规则。

图 1. 端点允许服务使用方将流量从使用方的 VPC 网络发送到服务提供方的 VPC 网络中的服务(点击可放大)。

后端基于负载均衡器。

图 2. 使用全球外部应用负载均衡器的后端允许具有互联网访问权限的服务使用方将流量发送到服务提供方的 VPC 网络中的服务(点击可放大)。

Private Service Connect 服务配置

创建 Private Service Connect 服务时,您可以配置子网、服务连接和连接偏好设置。您还可以选择为服务配置 DNS 网域。以下各部分介绍了这些配置。

NAT 子网

Private Service Connect 服务连接配置了一个或多个 NAT 子网(也称为 Private Service Connect 子网)。来自使用方 VPC 网络的数据包使用来源 NAT (SNAT) 进行转换,以便其原始的来源 IP 地址转换为来自提供方 VPC 网络中的 NAT 子网的来源 IP 地址。

服务连接可以有多个 NAT 子网。您可以随时将 NAT 子网添加到服务连接,这不会中断流量。

虽然一个服务连接可以配置多个 NAT 子网,但一个 NAT 子网不能用于多个服务连接。

Private Service Connect NAT 子网不能用于虚拟机实例或转发规则等资源。子网仅用于为传入的使用方连接的 SNAT 提供 IP 地址。

NAT 子网大小调整

发布服务时,您需要创建 NAT 子网并选择 IP 地址范围。子网的大小决定了多少个并发 Private Private Connect 端点或后端可以连接到服务连接。系统会根据 Private Service Connect 连接的数量使用 NAT 子网中的 IP 地址。如果 NAT 子网中的所有 IP 地址都已使用,则任何其他 Private Service Connect 连接都将失败。因此,请务必适当设置 NAT 子网的大小。

在选择子网大小时,请考虑以下事项:

  • NAT 子网中有四个不可用的 IP 地址,因此可用 IP 地址数量为 2(32 - PREFIX_LENGTH - 4。例如,如果您创建了一个前缀长度为 /24 的 NAT 子网,则 Private Service Connect 可以使用 252 个 IP 地址进行 SNAT。具有四个可用 IP 地址的 /29 子网是 VPC 网络支持的最小子网大小。

  • 与服务连接相连的每个端点或后端占用 NAT 子网中的一个 IP 地址。

  • 在估算端点和后端所需的 IP 地址数量时,请考虑任何多租户服务或使用 Private Service Connect 多点访问权限的使用方。

  • TCP 或 UDP 连接、客户端或使用方 VPC 网络的数量不影响 NAT 子网中 IP 地址的消耗。

例如,如果有两个端点连接到单个服务连接,则系统会使用 NAT 子网中的两个 IP 地址。如果端点数量不变,您可以对此服务连接使用具有四个可用 IP 地址的 /29 子网。

NAT 子网监控

为了帮助确保 Private Service Connect 连接不会因 NAT 子网中的 IP 地址不可用而失败,我们建议您执行以下操作:

  • 监控 private_service_connect/producer/used_nat_ip_addresses 服务连接指标。请确保使用的 NAT IP 地址数量不超过服务连接的 NAT 子网的容量。
  • 监控服务连接的连接状态。如果连接的状态为需要注意,则表示连接的 NAT 子网中可能不再有任何可用的 IP 地址。
  • 对于多租户服务,您可以使用连接限制,以帮助确保单个使用方不会耗尽服务连接的 NAT 子网的容量。

如果需要,您可以随时将 NAT 子网添加到服务连接,这不会中断流量。

连接数上限

单个提供方虚拟机最多可以接受来自单个 Private Service Connect 端点的 65,536 个 TCP 连接和 65,536 个 UDP 连接。Private Service Connect 端点可以跨所有提供方后端聚合接收的 TCP 和 UDP 连接总数没有限制。使用方虚拟机在启动与 Private Service Connect 端点的 TCP 或 UDP 连接时,可以使用所有 65,536 个端口。所有网络地址转换都在提供方主机上本地执行,不需要集中分配的 NAT 端口池。

其他注意事项

NAT 子网的其他注意事项包括:

  • UDP 映射空闲超时为 30 秒,且无法配置。

  • TCP 既定连接空闲超时为 20 分钟,且无法配置。

  • TCP 临时连接空闲超时为 30 秒,且无法配置。

  • 在重用任何 5 元组(NAT 子网来源 IP 地址和来源端口以及目标协议、IP 地址和目标端口)之前,均存在两分钟的延迟。

  • Private Service Connect 的 SNAT 配置不支持 IP 片段。

服务连接

服务提供方通过服务连接公开其服务。

  • 为了公开服务,服务提供方会创建引用该服务的负载均衡器转发规则的服务连接。

  • 为了访问服务,服务使用方会创建引用服务连接的端点。

服务连接 URI 的格式为 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

每个负载均衡器只能由单个服务连接引用。 您不能将多个服务连接配置为使用同一负载均衡器。

连接偏好设置

每个服务连接都有一个连接偏好设置,用于指定是否自动接受连接请求。共有三种处理方式:

  • 自动接受所有连接。服务连接会自动接受来自任何使用方的所有入站连接请求。自动接受可能会被阻止传入连接的组织政策覆盖。
  • 接受选定网络的连接。仅当使用方 VPC 网络在服务连接的使用方接受列表中时,服务连接才会接受入站连接请求。
  • 接受选定项目的连接。仅当使用方项目在服务连接的使用方接受列表中时,服务连接才会接受入站连接请求。

我们建议您接受选定项目或网络的连接。如果您通过其他方式控制使用方访问权限并希望启用对服务的宽松访问权限,则自动接受所有连接可能比较合适。

连接状态

服务连接具有描述其连接的状态的连接状态。如需了解详情,请参阅连接状态

使用方接受和拒绝列表

使用方接受列表和使用方拒绝列表是服务连接的安全功能。接受和拒绝列表可让服务提供方指定哪些使用方可以建立与其服务的 Private Service Connect 连接。使用方接受列表指定是否接受连接,使用方拒绝列表指定是否拒绝连接。这两个列表都可让您按连接资源的 VPC 网络或项目指定使用方。如果您将某个项目或网络同时添加到接受列表和拒绝列表,则来自该项目或网络的连接请求会被拒绝。 不支持按文件夹指定使用方。

使用方接受列表和使用方拒绝列表可让您指定项目或 VPC 网络,但两者不能同时指定。您可以在不中断连接的情况下将列表从一种类型更改为另一种类型,但必须在单次更新中进行此项更改。否则,某些连接可能会暂时更改为待处理状态。

如需了解使用方接受列表如何与组织政策进行交互,请参阅使用方接受列表与组织政策之间的交互

连接协调

连接协调决定了服务连接的接受列表或拒绝列表的更新是否会影响现有的 Private Service Connect 连接。如果启用了连接协调,则更新接受或拒绝列表可能会终止现有连接。可以接受先前拒绝的连接。如果停用连接协调,则更新接受或拒绝列表只会影响新连接和待处理连接。

例如,假设一个服务连接有多个来自 Project-A 的接受连接。Project-A 位于服务连接的接受列表中。通过从接受列表中移除 Project-A 来更新服务连接。

如果启用了连接协调,则来自 Project-A 的所有现有连接都会变为 PENDING 状态,这会终止两个 VPC 网络之间的网络连接,并立即停止网络流量。

如果停用连接协调,则来自 Project-A 的现有连接不受影响。网络流量仍然可以在现有的 Private Service Connect 连接之间流动。但是,不允许任何新的 Private Service Connect 连接。

如需了解如何为新服务连接配置连接协调,请参阅发布具有明确批准的服务

如需了解如何为现有服务连接配置连接协调,请参阅配置连接协调

连接限制

使用方接受列表具有连接限制。这些限制会设置服务连接可以从指定的使用方项目或 VPC 网络接受的连接总数。提供方可以使用这些限制来防止个别使用方耗尽提供方 VPC 网络中的 IP 地址或资源配额。每个接受的 Private Service Connect 连接都会从为使用方项目或 VPC 网络配置的限制中减去。您可以在创建更新使用方接受列表时设置限制。您可以在描述服务连接时查看其连接。

例如,假设一种场景,服务连接具有使用方接受列表,其中包含 project-1project-2,两者的连接限制均为一个。项目 project-1 请求两个连接,project-2 请求一个连接,project-3 请求一个连接。由于 project-1 的连接限制为一个,因此第一个连接会被接受,第二个连接会保持待处理状态。来自 project-2 的连接会被接受,来自 project-3 的连接会保持待处理状态。可通过提高 project-1 的限制接受来自 project-1 的第二个连接。如果将 project-3 添加到使用方接受列表,则该连接会从待处理状态转换为已接受状态。

DNS 配置

如需了解已发布服务的 DNS 配置以及连接到已发布服务的端点,请参阅服务的 DNS 配置

多区域配置

您可以通过创建以下配置,在多个区域中提供某个服务。

提供方配置:

  • 在每个区域中部署服务。服务的每个区域实例都必须在支持后端访问的负载均衡器上配置。

  • 创建服务连接以发布服务的每个区域实例。

使用方配置:

在此配置中,端点使用默认的全球负载均衡政策(首先按运行状况,然后按距离客户端最近的位置)来路由流量。

图 3. 使用全球外部应用负载均衡器,具有互联网访问权限的服务使用方可以将流量发送到服务提供方的 VPC 网络中的服务。由于服务部署在多个区域中,因此负载均衡器可以将流量路由到距离最近且运行状况良好的区域中的 NEG(点击可放大)。

功能和兼容性

在下表中, 对勾标记表示支持该功能, 否定符号表示不支持该功能。

根据所选的提供方负载均衡器,提供方服务可以支持通过端点和/或后端访问。

端点支持

下表总结了访问已发布服务的端点支持的配置选项和功能。

使用方配置(端点) 提供方负载均衡器
内部直通式网络负载均衡器 区域级内部应用负载均衡器 区域级内部代理网络负载均衡器 内部协议转发(目标实例)
使用方全球访问权限

与负载均衡器上的全球访问权限设置无关

仅当负载均衡器上启用全球访问权限

仅当负载均衡器上启用全球访问权限

与负载均衡器上的全球访问权限设置无关

Interconnect 流量

Cloud VPN 流量
自动 DNS 配置
IP 栈 IPv4 IPv4 IPv4 IPv4

下表总结了端点访问的已发布服务支持的配置选项和功能。

提供方配置(已发布服务) 提供方负载均衡器
内部直通式网络负载均衡器 区域级内部应用负载均衡器 区域级内部代理网络负载均衡器 内部协议转发(目标实例)
支持的提供方后端
  • GCE_VM_IP NEG
  • 实例组
  • GCE_VM_IP_PORT NEG
  • 混合 NEG
  • 无服务器 NEG
  • Private Service Connect NEG
  • 实例组
  • GCE_VM_IP_PORT NEG
  • 混合 NEG
  • 无服务器 NEG
  • Private Service Connect NEG
  • 实例组
不适用
PROXY 协议 仅限 TCP 流量 仅限 TCP 流量
会话亲和性模式 无(5 元组)
CLIENT_IP_PORT_PROTO
不适用 不适用 不适用

不同的负载均衡器支持不同的端口配置:有些负载均衡器支持单个端口,有些支持一系列端口,有些支持所有端口。如需了解详情,请参阅端口规范

后端支持

已发布服务的 Private Service Connect 后端需要两个负载均衡器:使用方负载均衡器和提供方负载均衡器。下表介绍了不同类型的使用方与提供方负载均衡器之间的兼容性,包括可与每个使用方负载均衡器搭配使用的后端服务协议。每行代表一种使用方负载均衡器,每列表示一种提供方负载均衡器。

使用方负载均衡器和支持的使用方后端服务协议 提供方负载均衡器
内部直通式网络负载均衡器 区域级内部应用负载均衡器 区域级内部代理网络负载均衡器

全球外部应用负载均衡器(支持多个区域

协议:HTTPS、HTTP2

注意:不支持传统版应用负载均衡器。

区域级外部应用负载均衡器

协议:HTTP、HTTPS、HTTP2

区域级内部应用负载均衡器

协议:HTTP、HTTPS、HTTP2

跨区域内部应用负载均衡器(预览版)

协议:HTTPS、HTTP2

区域级内部代理网络负载均衡器

协议:TCP

跨区域内部代理网络负载均衡器

协议:TCP

区域级外部代理网络负载均衡器

协议:TCP

全球外部代理网络负载均衡器(预览版)

协议:TCP/SSL

注意:不支持传统代理网络负载均衡器。

下表介绍了 Private Service Connect 后端支持的提供方负载均衡器的配置。

配置 提供方负载均衡器
内部直通式网络负载均衡器 区域级内部应用负载均衡器 区域级内部代理网络负载均衡器
支持的提供方后端
  • GCE_VM_IP NEG
  • 实例组
  • GCE_VM_IP_PORT NEG
  • 混合 NEG
  • 无服务器 NEG
  • Private Service Connect NEG
  • 实例组
  • GCE_VM_IP_PORT NEG
  • 混合 NEG
  • 无服务器 NEG
  • Private Service Connect NEG
  • 实例组
转发规则协议
  • TCP
  • HTTP
  • HTTPS
  • HTTP/2
  • TCP
转发规则端口 转发规则必须引用单个端口。 转发规则必须引用单个端口。 转发规则必须引用单个端口。
PROXY 协议

共享 VPC

Service Project Admin 可以在共享 VPC 服务项目中创建连接到共享 VPC 网络中的资源的服务连接。

配置与常规服务连接的配置相同,但以下几点除外:

  • 提供方负载均衡器的转发规则与来自共享 VPC 网络的 IP 地址相关联。转发规则的子网必须与服务项目共享。
  • 服务连接使用来自共享 VPC 网络的 Private Service Connect 子网。此子网必须与服务项目共享。

日志记录

您可以在包含后端虚拟机的子网上启用 VPC 流日志。日志显示 Private Service Connect 子网中后端虚拟机与 IP 地址之间的流。

VPC Service Controls

VPC Service Controls 和 Private Service Connect 彼此兼容。如果部署了 Private Service Connect 端点的 VPC 网络位于 VPC Service Controls 边界内,则端点属于同一边界。任何通过端点访问的 VPC Service Controls 支持的服务都受该 VPC Service Controls 边界的政策约束。

创建端点时,使用方和提供方项目之间会进行控制平面 API 调用,以建立 Private Service Connect 连接。在位于同一 VPC Service Controls 边界内的使用方和提供方项目之间建立 Private Service Connect 连接不需要使用出站流量政策进行明确授权。通过端点与 VPC Service Controls 支持的服务进行的通信受 VPC Service Controls 边界保护。

价格

如需了解 Private Service Connect 的价格,请参阅 VPC 价格页面

配额

您可以创建用于访问已发布服务的端点的数量由 PSC Internal LB Forwarding Rules 配额控制。如需了解详情,请参阅配额

本地访问

Private Service Connect 服务通过端点提供。这些端点可以从支持的已连接本地主机进行访问。如需了解详情,请参阅从本地主机访问端点

限制

已发布服务具有以下限制:

  • 提供方负载均衡器不支持以下功能:
  • 数据包镜像无法镜像 Private Service Connect 发布的服务流量的数据包。
  • 您必须使用 Google Cloud CLI 或 API 创建指向用于内部协议转发的转发规则的服务连接。
  • 以下负载均衡器类型不提供 BETA 指标的值,值为 0 或缺失:
    • 区域级内部应用负载均衡器
    • 区域级内部代理网络负载均衡器
  • 如需了解问题和解决方法,请参阅已知问题