跳到主要内容
跳到主要内容

Azure Private Link

备注

Azure Private Link 只能在 ClickHouse Cloud 生产 服务上启用。开发 服务不支持。

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

PrivateLink 概述

与 AWS 和 GCP 不同,Azure 支持通过 Private Link 实现跨区域连接。这使您能够在不同区域之间建立连接,您可以在这些区域中部署 ClickHouse 服务。

备注

跨区域流量可能会产生额外费用。请查看最新的 Azure 文档。

请完成以下步骤以启用 Azure Private Link:

  1. 获取 Azure 连接别名以进行 Private Link
  2. 在 Azure 中创建一个私有终结点
  3. 将私有终结点 GUID 添加到您的 ClickHouse Cloud 组织中
  4. 将私有终结点 GUID 添加到您的服务允许列表中
  5. 使用 Private Link 访问您的 ClickHouse Cloud 服务

这里 查找 Azure Private Link 的完整 Terraform 示例。

选项 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 Center

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

打开 Azure Private Center

在以下屏幕中,指定以下选项:

  • 订阅 / 资源组:请选择用于私有终结点的 Azure 订阅和资源组。
  • 名称:为 私有终结点 设置一个名称。
  • 地区:选择将通过 Private Link 连接到 ClickHouse Cloud 的已部署 VNet 的地区。

完成上述步骤后,单击 下一步:资源 按钮。

创建私有终结点基本设置

选择 通过资源 ID 或别名连接到 Azure 资源 选项。

对于 资源 ID 或别名,使用您从 获取 Azure 连接别名以进行 Private Link 步骤中获得的 endpointServiceId

单击 下一步:虚拟网络 按钮。

选择私有终结点资源
  • 虚拟网络:选择您希望通过 Private Link 连接到 ClickHouse Cloud 的 VNet
  • 子网:选择将创建私有终结点的子网

可选:

  • 应用程序安全组:您可以将 ASG 附加到私有终结点,并在网络安全组中使用它来过滤往返于私有终结点的网络流量。

单击 下一步:DNS 按钮。

选择私有终结点虚拟网络

单击 下一步:标签 按钮。

私有终结点 DNS 配置

可选地,您可以为您的私有终结点添加标签。

单击 下一步:查看 + 创建 按钮。

私有终结点标签

最后,单击 创建 按钮。

私有终结点审核

所创建的私有终结点的 连接状态 将处于 待处理 状态。添加此私有终结点到服务允许列表后,它将更改为 已批准 状态。

打开与私有终结点相关联的网络接口,并复制 私有 IPv4 地址(在此示例中为 10.0.0.4),您将在接下来的步骤中需要此信息。

私有终结点 IP 地址

选项 2:使用 Terraform 创建 Azure 中的私有终结点

使用以下模板通过 Terraform 创建私有终结点:

获取私有终结点 resourceGuid

为了使用 Private Link,您需要将私有终结点连接 GUID 添加到您的服务允许列表中。

私有终结点资源 GUID 仅在 Azure 门户中公开。打开在上一步创建的私有终结点并单击 JSON 视图

私有终结点视图

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

私有终结点资源 GUID

您需要创建一个私有 DNS 区域 (${location_code}.privatelink.azure.clickhouse.cloud) 并将其附加到您的 VNet,以便通过 Private Link 访问资源。

创建私有 DNS 区域

选项 1:使用 Azure 门户

请遵循以下指南 使用 Azure 门户创建 Azure 私有 DNS 区域

选项 2:使用 Terraform

使用以下 Terraform 模板创建私有 DNS 区域:

创建一个通配符 DNS 记录

创建一个通配符记录并指向您的私有终结点:

选项 1:使用 Azure 门户

  1. 打开 MyAzureResourceGroup 资源组并选择 ${region_code}.privatelink.azure.clickhouse.cloud 私有区域。
  2. 选择 + 记录集。
  3. 对于名称,输入 *
  4. 对于 IP 地址,输入您看到的私有终结点的 IP 地址。
  5. 选择 确定
私有链接 DNS 通配符设置

选项 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

在运行任何命令之前设置这些环境变量:

为每个应通过私有链接可用的服务执行此操作。

运行以下命令将私有终结点添加到服务允许列表:

您还可以运行以下命令从服务允许列表中删除私有终结点:

在将私有终结点添加或删除到服务允许列表后,运行以下命令将其应用到您的组织:

每个启用私有链接的服务都有公共和私有端点。要使用私有链接进行连接,您需要使用私有端点,即 privateDnsHostname

备注

私有 DNS 主机名仅可通过您的 Azure VNet 使用。请不要尝试从位于 Azure VNet 外部的计算机解析此 DNS 主机。

获取私有 DNS 主机名

选项 1:ClickHouse Cloud 控制台

在 ClickHouse Cloud 控制台中,导航到 设置。单击 设置私有终结点 按钮。在打开的飞出窗口中,复制 DNS 名称

私有终结点 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