Azure Private Link
Azure Private Link 只能在 ClickHouse Cloud 生产 服务上启用。开发 服务不支持。
本指南展示了如何使用 Azure Private Link 通过虚拟网络提供 Azure(包括客户拥有和 Microsoft 合作伙伴服务)与 ClickHouse Cloud 之间的私有连接。Azure Private Link 简化了网络架构,并通过消除数据暴露于公共互联网,保护 Azure 中端点之间的连接。

与 AWS 和 GCP 不同,Azure 支持通过 Private Link 实现跨区域连接。这使您能够在不同区域之间建立连接,您可以在这些区域中部署 ClickHouse 服务。
跨区域流量可能会产生额外费用。请查看最新的 Azure 文档。
请完成以下步骤以启用 Azure Private Link:
- 获取 Azure 连接别名以进行 Private Link
- 在 Azure 中创建一个私有终结点
- 将私有终结点 GUID 添加到您的 ClickHouse Cloud 组织中
- 将私有终结点 GUID 添加到您的服务允许列表中
- 使用 Private Link 访问您的 ClickHouse Cloud 服务
在 这里 查找 Azure Private Link 的完整 Terraform 示例。
获取 Azure 连接别名以进行 Private Link
选项 1:ClickHouse Cloud 控制台
在 ClickHouse Cloud 控制台中,打开您希望通过 PrivateLink 连接的服务,然后打开 设置 菜单。点击 设置私有终结点 按钮。复制将用于设置 Private Link 的 服务名称。

选项 2:API
在开始之前,您需要一个 ClickHouse Cloud API 密钥。您可以 创建一个新密钥 或使用现有密钥。请注意,您需要一个 管理员 密钥才能管理 Private Link 配置。
一旦您拥有 API 密钥,在运行任何命令之前设置以下环境变量:
从您的区域获取实例 ID:
您需要在指定区域中至少部署一个 ClickHouse Cloud 服务以执行此步骤。
使用您在之前步骤中接收到的 ID 创建 INSTANCE_ID
环境变量:
获取您的 Azure 连接别名和私有 DNS 主机名以进行 Private Link:
记录 endpointServiceId
。您将在下一步中使用它。
在 Azure 中创建一个私有终结点
在本节中,我们将创建 Azure 中的私有终结点。您可以使用 Azure 门户或 Terraform。
选项 1:使用 Azure 门户创建 Azure 中的私有终结点
在 Azure 门户中,打开 Private Link Center → 私有终结点。

单击 创建 按钮以打开私有终结点创建对话框。

在以下屏幕中,指定以下选项:
- 订阅 / 资源组:请选择用于私有终结点的 Azure 订阅和资源组。
- 名称:为 私有终结点 设置一个名称。
- 地区:选择将通过 Private Link 连接到 ClickHouse Cloud 的已部署 VNet 的地区。
完成上述步骤后,单击 下一步:资源 按钮。

选择 通过资源 ID 或别名连接到 Azure 资源 选项。
对于 资源 ID 或别名,使用您从 获取 Azure 连接别名以进行 Private Link 步骤中获得的 endpointServiceId
。
单击 下一步:虚拟网络 按钮。

- 虚拟网络:选择您希望通过 Private Link 连接到 ClickHouse Cloud 的 VNet
- 子网:选择将创建私有终结点的子网
可选:
- 应用程序安全组:您可以将 ASG 附加到私有终结点,并在网络安全组中使用它来过滤往返于私有终结点的网络流量。
单击 下一步:DNS 按钮。

单击 下一步:标签 按钮。

可选地,您可以为您的私有终结点添加标签。
单击 下一步:查看 + 创建 按钮。

最后,单击 创建 按钮。

所创建的私有终结点的 连接状态 将处于 待处理 状态。添加此私有终结点到服务允许列表后,它将更改为 已批准 状态。
打开与私有终结点相关联的网络接口,并复制 私有 IPv4 地址(在此示例中为 10.0.0.4),您将在接下来的步骤中需要此信息。

选项 2:使用 Terraform 创建 Azure 中的私有终结点
使用以下模板通过 Terraform 创建私有终结点:
获取私有终结点 resourceGuid
为了使用 Private Link,您需要将私有终结点连接 GUID 添加到您的服务允许列表中。
私有终结点资源 GUID 仅在 Azure 门户中公开。打开在上一步创建的私有终结点并单击 JSON 视图:

在属性下,找到 resourceGuid
字段并复制此值:

为 Private Link 设置 DNS
您需要创建一个私有 DNS 区域 (${location_code}.privatelink.azure.clickhouse.cloud
) 并将其附加到您的 VNet,以便通过 Private Link 访问资源。
创建私有 DNS 区域
选项 1:使用 Azure 门户
请遵循以下指南 使用 Azure 门户创建 Azure 私有 DNS 区域。
选项 2:使用 Terraform
使用以下 Terraform 模板创建私有 DNS 区域:
创建一个通配符 DNS 记录
创建一个通配符记录并指向您的私有终结点:
选项 1:使用 Azure 门户
- 打开
MyAzureResourceGroup
资源组并选择${region_code}.privatelink.azure.clickhouse.cloud
私有区域。 - 选择 + 记录集。
- 对于名称,输入
*
。 - 对于 IP 地址,输入您看到的私有终结点的 IP 地址。
- 选择 确定。

选项 2:使用 Terraform
使用以下 Terraform 模板创建通配符 DNS 记录:
创建虚拟网络链接
要将私有 DNS 区域链接到虚拟网络,您需要创建一个虚拟网络链接。
选项 1:使用 Azure 门户
请遵循以下指南 将虚拟网络链接到您的私有 DNS 区域。
选项 2:使用 Terraform
使用以下 Terraform 模板将虚拟网络链接到您的私有 DNS 区域:
验证 DNS 设置
任何位于 westus3.privatelink.azure.clickhouse.cloud
域中的记录都应指向私有终结点的 IP 地址。(在此示例中为 10.0.0.4)。
将私有终结点 GUID 添加到您的 ClickHouse Cloud 组织
选项 1:ClickHouse Cloud 控制台
要将端点添加到组织,请继续进行 将私有终结点 GUID 添加到您的服务允许列表 步骤。通过 ClickHouse Cloud 控制台使用私有终结点 GUID 添加到服务允许列表将自动将其添加到组织。
要删除端点,请打开 组织详细信息 -> 私有终结点 并单击删除按钮以移除端点。

选项 2:API
在运行任何命令之前设置以下环境变量:
使用来自 获取私有终结点 resourceGuid
步骤的数据设置 VPC_ENDPOINT
环境变量。
运行以下命令以添加私有终结点:
您还可以运行以下命令以删除私有终结点:
添加或删除私有终结点后,运行以下命令将其应用到您的组织:
将私有终结点 GUID 添加到您的服务允许列表
默认情况下,即使私有链接连接已被批准并建立,ClickHouse Cloud 服务也不可通过私有链接连接使用。您需要明确添加每个应通过私有链接可用的服务的私有终结点 GUID。
选项 1:ClickHouse Cloud 控制台
在 ClickHouse Cloud 控制台中,打开您希望通过 PrivateLink 连接的服务,然后导航到 设置。输入从 上一步 中获得的 Endpoint ID
。
如果您希望允许来自现有 PrivateLink 连接的访问,请使用现有端点下拉菜单。

选项 2:API
在运行任何命令之前设置这些环境变量:
为每个应通过私有链接可用的服务执行此操作。
运行以下命令将私有终结点添加到服务允许列表:
您还可以运行以下命令从服务允许列表中删除私有终结点:
在将私有终结点添加或删除到服务允许列表后,运行以下命令将其应用到您的组织:
使用 Private Link 访问您的 ClickHouse Cloud 服务
每个启用私有链接的服务都有公共和私有端点。要使用私有链接进行连接,您需要使用私有端点,即 privateDnsHostname
。
私有 DNS 主机名仅可通过您的 Azure VNet 使用。请不要尝试从位于 Azure VNet 外部的计算机解析此 DNS 主机。
获取私有 DNS 主机名
选项 1:ClickHouse Cloud 控制台
在 ClickHouse Cloud 控制台中,导航到 设置。单击 设置私有终结点 按钮。在打开的飞出窗口中,复制 DNS 名称。

选项 2:API
在运行任何命令之前设置以下环境变量:
运行以下命令:
您应该收到如下响应:
在此示例中,连接到 xxxxxxx.region_code.privatelink.azure.clickhouse.cloud
主机名将路由到 Private Link。同时,xxxxxxx.region_code.azure.clickhouse.cloud
将通过互联网路由。
使用 privateDnsHostname
通过 Private Link 连接到您的 ClickHouse Cloud 服务。
故障排除
测试 DNS 设置
${region_code}.privatelink.azure.clickhouse.cloud.
区域中的所有 DNS 记录应指向来自 在 Azure 中创建私有终结点 步骤的内部 IP 地址。在此示例中,地区是 westus3
。
运行以下命令:
您应该收到以下响应:
连接重置由对等方
很可能,私有终结点 GUID 未添加到服务允许列表中。请重新检查 将私有终结点 GUID 添加到您的服务允许列表 步骤。
私有终结点处于待处理状态
很可能,私有终结点 GUID 未添加到服务允许列表中。请重新检查 将私有终结点 GUID 添加到您的服务允许列表 步骤。
测试连接
如果您在使用私有链接连接时遇到问题,请使用 openssl
检查连接性。确保私有链接端点状态为 Accepted
。
OpenSSL 应能够连接(输出中应显示 CONNECTED)。errno=104
是预期的。
检查私有终结点过滤器
在运行任何命令之前设置以下环境变量:
运行以下命令检查私有终结点过滤器:
更多信息
有关 Azure Private Link 的更多信息,请访问 azure.microsoft.com/en-us/products/private-link。