- 使用 Global Access 的区域必须属于同一个 VPC。
- 必须在 PSC 级别显式启用 Global Access (参见下方截图) 。
- 确保你的 firewall 设置不会阻止来自其他区域对 PSC 的访问。
- 请注意,你可能会产生 GCP 跨区域数据传输费用。
- 获取用于 Private Service Connect 的 GCP 服务附件。
- 创建服务端点。
- 将“Endpoint ID”添加到 ClickHouse Cloud 服务。
- 将“Endpoint ID”添加到 ClickHouse 服务 允许列表。
注意事项
开始之前
下面提供的代码示例展示了如何在 ClickHouse Cloud 服务中配置 Private Service Connect。以下示例中将使用:
- GCP 区域:
us-central1 - GCP 项目 (客户 GCP 项目) :
my-gcp-project - 客户 GCP 项目中的私有 IP 地址:
10.128.0.2 - 客户 GCP 项目中的 GCP VPC:
default
INSTANCE_ID:
- 你可以在 ClickHouse Console (Organization -> Organization Details) 中获取你的 Organization ID。
- 你可以创建新的密钥,或使用现有密钥。
获取 Private Service Connect 所需的 GCP 服务附件和 DNS 名称
选项 1:ClickHouse Cloud 控制台
endpointServiceId) 和 DNS 名称 (privateDnsHostname),后续步骤中会用到它们。
选项 2:API
要执行此步骤,您至少需要在该区域部署一个实例。
endpointServiceId 和 privateDnsHostname,后续步骤会用到它们。
创建服务端点
添加 Private Service Connection
选项 1:使用 Google Cloud Console
- Target:使用 Published service
- Target service:使用获取用于 Private Service Connect 的 GCP 服务附件步骤中的
endpointServiceIdAPI 或Service nameconsole。 - Endpoint name:为 PSC Endpoint name 设置一个名称。
- Network/Subnetwork/IP address:选择要用于该连接的网络。你需要为 Private Service Connect 端点创建一个 IP 地址,或使用现有地址。在我们的示例中,我们预先创建了一个名为 your-ip-address 的地址,并将 IP 地址设为
10.128.0.2。 - 若要使该端点可从任何区域访问,可以选中 Enable global access 复选框。
选项 2:使用 Terraform
使用在 获取用于 Private Service Connect 的 GCP 服务附件和 DNS 名称 步骤中获得的
endpointServiceIdAPI 或 Service nameconsole为端点设置私有 DNS 名称
DNS 的配置方式有多种。请根据你的具体使用场景进行设置。
向 ClickHouse Cloud 组织添加 Endpoint ID
选项 1:ClickHouse Cloud 控制台
PSC Connection ID 添加到服务允许列表时,也会自动将其添加到组织中。
要移除端点,请打开 Organization details -> Private Endpoints,然后点击删除按钮将其移除。
选项 2:API
ENDPOINT_ID 替换为添加 Private Service Connection步骤中的 Endpoint ID 值。
要添加端点,请运行:
将“Endpoint ID”添加到 ClickHouse 服务允许列表
选项 1:ClickHouse Cloud 控制台
Endpoint ID。点击 创建端点。
如果您想允许来自现有 Private Service Connect 连接的访问,请使用现有端点下拉菜单。
选项 2:API
通过 Private Service Connect 访问实例
privateDnsHostname。
获取私有 DNS 主机名
选项 1:ClickHouse Cloud 控制台
选项 2:API
xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloud 主机名的连接将通过 Private Service Connect 路由。与此同时,xxxxxxx.yy-xxxxN.gcp.clickhouse.cloud 将通过互联网路由。
故障排查
测试 DNS 设置
privateDnsHostname
连接被对端重置
- 最可能的原因是尚未将 Endpoint ID 添加到服务允许列表中。请重新查看_将 Endpoint ID 添加到服务允许列表_步骤。
测试连通性
openssl 检查连通性。请确保 Private Service Connect 端点的状态为 Accepted:
OpenSSL 应该能够成功连接 (请在输出中查看 CONNECTED) 。errno=104 是预期现象。
DNS_NAME - 使用 获取 Private Service Connect 的 GCP 服务附件和 DNS 名称 步骤中的 privateDnsHostname
检查端点过滤器
REST API
连接到远程数据库
面向服务的设计:生产者服务通过负载均衡器发布,向消费者 VPC 网络公开单个 IP 地址。访问生产者服务的消费者流量是单向的,只能访问该服务的 IP 地址,而不能访问整个对等互连的 VPC 网络。要将 ClickHouse Cloud 中的 MySQL 或 PostgreSQL 表函数连接到托管在你的 GCP VPC 中的数据库,请配置 GCP VPC 防火墙规则,允许来自 ClickHouse Cloud 的连接。请查看 ClickHouse Cloud 各区域的默认出站 IP 地址以及可用的静态 IP 地址。