Skip to main content
您可以使用 GCP Private Service Connect (PSC),在 ClickPipes 与托管在 GCP 上的数据源之间建立安全连接。ClickPipes 会在其 VPC 中创建一个反向专用终结点 (RPE),并将其指向为您的数据源发布的专用端点服务,确保流量不会暴露于公网。
ClickPipes 通过全局访问支持跨区域 PSC 连接。对于位于与运行 ClickPipes 基础设施所在区域不同区域的端点,必须启用全局访问。有关更多详情,请查看 ClickPipes GCP 区域文档。

支持的模式

前置条件

  • 托管于 GCP 上的 ClickHouse Cloud 服务。ClickPipes 与您的 ClickHouse Cloud 服务运行在同一区域 (少数例外情况除外) 。
  • 用于在源端启用 PSC 以及管理 PSC 服务附件的 IAM 权限 (roles/compute.networkAdmin) 。
  • 获准连接您的服务附件的 ClickPipes 消费者项目 (clickpipes-production)。
  • 如果以编程方式预配 ClickPipes:服务所属组织的 ClickHouse Cloud API 密钥。

创建反向专用终结点

要创建 RPE,您需要准备数据源的以下信息:
  • 服务附件 URI:projects/<PROJECT>/regions/<REGION>/serviceAttachments/<NAME>,即位于数据源前端的 PSC 端点。
  • 私有 DNS 名称:管道要连接的主机名。PSC 端点会获得一个未关联 DNS 名称的静态内部 IP,因此 ClickPipes 会为您将该主机名解析为此 IP。
  1. 在 ClickHouse Cloud 中,打开您的服务并前往 数据源 > ClickPipes。
  2. 选择要摄取的数据源。
  3. 在 设置 ClickPipe 连接 下,开启 使用安全连接,然后点击 + 反向专用终结点,并选择 GCP PSC 服务附件。
  4. 填写 服务附件 URI、私有 DNS 名称和描述。
  5. 点击 创建。端点状态将从 Provisioning 变为 Ready。 (对于 Cloud SQL 和 AlloyDB 等原生 PSC 数据源,只要 ClickPipes 消费者项目已加入其允许列表,就会自动接受连接,因此不会显示 PendingAcceptance。对于生产者拥有的 PSC,请参阅批准生产者拥有的连接。)

自定义私有 DNS 名称

由于 GCP PSC 不会传播 DNS,每个 GCP PSC 端点都需要自定义私有 DNS 映射,以便 ClickPipes 将其解析为该端点的静态内部 IP。 标准的 ClickPipes 自定义私有 DNS 命名规则同样适用:所有提供商均以相同方式支持通配符,并强制要求服务的反向专用终结点之间保持唯一性,同时遵守保留后缀限制。对于 Managed Kafka 等包含多个 broker 的数据源,请针对每个对外公布的 broker 重复上述设置:为每个 broker 的服务附件分别创建一个反向专用终结点,并为该 broker 的主机名配置自定义私有 DNS 映射,而不要为整个集群只使用一个通配符。引导主机名无需单独的端点,只需将其作为额外映射添加到任一 broker 端点上即可。完整示例请参阅 gcp-managed-kafka Terraform 模块。 对于 GCP PSC,仅使用映射的 privateDnsName。不支持 internalDNSName 字段,因为 PSC 端点提供的是静态 IP,没有可供绑定的 DNS 名称:映射始终会解析到该 IP。

批准生产者拥有的连接

对于生产者拥有的 PSC,请将 ClickPipes 消费者项目 (clickpipes-production) 添加到服务附件的自动接受列表,以便自动接受该连接。如果跳过此步骤,RPE 将一直处于 PendingAcceptance 状态,直到您手动批准。 要接受该连接,服务附件的消费者接受列表中需要包含端点的基于数字 ID 的 URI (projects/<PROJECT>/regions/<REGION>/forwardingRules/<NUMERIC_ID>)。要获取服务附件上待处理连接的 endpointWithId 值,请运行:
获取 status 为 PENDING 的条目的 endpointWithId,去掉 https://www.googleapis.com/compute/beta/ 前缀,然后将结果传递给 --consumer-accept-list:
--consumer-accept-list 会覆盖接受列表,而非将新的消费者项目追加到列表中。如果服务附件已接受其他项目或端点,请在同一命令中传入所有项目或端点,否则未传入的项目或端点将失去访问权限。
请勿在此处使用 ClickPipes API/Terraform 响应中的 endpoint_id;该值是转发规则的名称,而非 GCP 要求的数字 ID,因此不会与接受列表匹配。应始终从服务附件中处于待处理状态的 endpointWithId 获取数字 ID。

管理反向专用终结点

您可以在 ClickHouse Cloud 服务设置中管理现有的反向专用终结点:
  1. 在 ClickHouse Cloud 控制台侧边栏中,前往 Settings。
在 ClickPipe reverse private endpoints 下,点击 Reverse private endpoints。 反向专用终结点的详细信息会显示在弹出面板中。您可以在此视图中删除 RPE:点击端点旁的 ×,然后确认删除。删除操作是永久性的,会导致所有当前使用该端点的 ClickPipe 中断。 要更改端点的自定义私有 DNS 映射,请使用 Cloud API 或 Terraform。更新操作会替换整个映射列表,而不是在其中添加映射。 如果端点显示 Rejected 或 Failed,请查看其状态下方的消息:该消息可区分被生产者拒绝的连接,以及已关闭或需要处理的连接。这两种情况通常都表示服务附件的接受列表未包含 ClickPipes 消费者项目。要查看 GCP 针对该端点报告的状态,请描述服务附件的 connectedEndpoints。

已知限制

  • 一个 PSC 服务附件在同一时间只能由一个 ClickHouse Cloud 服务认领,不能在多个服务之间重复使用。若要将服务附件迁移到其他服务,请联系 ClickHouse 支持团队以解除现有认领。