前置条件
为 ClickHouse BYOC 启用私网负载均衡器
clickhouse-cloud-<spoken-name>-default 的托管资源组内。您可在该资源组中找到以下步骤所需的 BYOC VNet。
配置 VNet 对等互连
示例步骤适用于简单场景:您的一个 VNet 直接与 BYOC VNet 建立对等互连。对于中心辐射型拓扑或本地部署连接等高级场景,需要进行一些调整——请参阅限制。
对等互连的其他前置条件
Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write 和 Microsoft.Network/virtualNetworks/peer/action 权限。内置 网络参与者 角色包含这些权限。请参阅虚拟网络对等互连权限。
1
从 BYOC 虚拟网络发起对等互连
- 登录 Azure 门户,并切换到 BYOC 订阅。
- 搜索 虚拟网络,然后选择位于
clickhouse-cloud-<spoken-name>-default资源组中的 BYOC VNet。 - 在 设置 下,选择 对等互连,然后选择 + 添加。
- 填写对等互连的两端:
- 单击 添加。
2
如果系统未自动创建,请创建反向对等互连
Azure 对等互连由两个部分组成,每个方向各一个;只有两个部分都创建完成后,流量才能流通。如果门户已在上一步中创建了两个部分,请跳过此步骤。如果您仅创建了 BYOC 侧的部分 (因为您的 VNet 位于其他订阅或租户中) ,其状态将为 已启动。请从您自己的 VNet 创建对应的部分:
- 切换到拥有您的 VNet 的订阅,并使用在该订阅中具有 网络参与者 角色的账户登录。
- 选择您的 VNet,然后选择 对等互连 → + 添加。
- 选择 我知道我的资源 ID,粘贴 BYOC VNet 资源 ID,并选择拥有 BYOC 订阅的 目录。如果出现提示,请选择 身份验证。
- 选择 添加。
3
验证两端均已连接
在任一虚拟网络中打开 对等互连。两侧的 对等互连状态 都必须显示为 已连接。某一端持续处于 已启动 状态,表示另一端尚未创建;显示 已断开连接 则表示另一端已被删除。无需更改路由表。Azure 会自动在两侧为对等互连地址空间安装系统路由。您可以在 VNet 中任一网络接口的 有效路由 下进行确认,其中 BYOC 地址空间的下一跳类型应显示为 VNet 对等互连。
4
通过网络安全组允许已对等互连 VNet 的访问
BYOC 子网受 ClickHouse 管理的网络安全组保护,该安全组默认拒绝 VNet 内部流量。由于
VirtualNetwork 服务标签涵盖已对等互连 VNet 的地址空间,因此在添加允许入站流量的规则之前,通过对等互连到达的流量会被丢弃。请联系 ClickHouse 支持团队,请求添加包含已对等互连 VNet CIDR 范围的入站规则。若不执行此步骤,对等互连会显示为 已连接,但连接将超时。5
通过对等互连访问 ClickHouse 服务
要私密访问 ClickHouse,系统会预配私网负载均衡器和端点,以便从已对等互连的 VNet 安全连接。私网端点遵循公网端点的格式,并带有
-private 后缀。例如:- 公网端点:
h5ju65kv87.mhp0y4dmph.westus3.azure.clickhouse-byoc.com - 私网端点:
h5ju65kv87-private.mhp0y4dmph.westus3.azure.clickhouse-byoc.com
限制
删除对等互连
设置 Private Link
1
在 ClickHouse 控制台中启用 Private Link
请确保已启用私网负载均衡器,这是前置条件。
2
获取端点服务名称
- 在 ClickHouse Cloud 控制台中,前往要通过 Private Link 连接的服务的 Settings 页面。
- 点击“Set up private endpoint”。
- 在打开的弹出面板中,复制
Service name(Private Link 服务别名) 和DNS name的值——后续步骤中会用到它们。 (启用 Private Link 后,这些值可能需要一段时间才会生成。)
3
在您的网络中创建专用终结点
- 打开您自己的 Azure 门户 (即客户端应用程序所在的 Azure 订阅) → Network Foundation → Private endpoints → Create。
- 在 Basics 选项卡中,选择专用终结点的订阅、资源组、名称和区域。该区域应与客户端应用程序连接所在的 VNet 区域相同。
- 在 Resource 选项卡中,选择 Connect to an Azure resource by resource ID or alias,然后输入上一步获取的
Service name。 - 在 Virtual Network 选项卡中,选择要创建专用终结点的虚拟网络和子网。您也可以附加应用程序安全组,以过滤流向专用终结点的流量。
- 继续完成其余选项卡,然后单击 Create。创建的专用终结点的 Connection status 将保持 Pending 状态,直到您在后续步骤中将其
Resource ID添加到 ClickHouse 服务允许列表。 - 打开与专用终结点关联的网络接口,并复制 Private IPv4 address;您将在 DNS 设置步骤中使用它。
4
将专用终结点的 Resource ID 添加到 ClickHouse 服务允许列表
要获取专用终结点 Resource ID,请在 Azure 门户中打开之前创建的专用终结点,点击 JSON 视图,然后复制顶层的
id 字段 (即视图顶部显示的 Resource ID,格式为 /subscriptions/.../providers/Microsoft.Network/privateEndpoints/<name>) 。请勿使用 properties 对象中嵌套的 id 字段:- 在 ClickHouse Cloud 控制台中,前往要通过 Private Link 连接的 ClickHouse 服务的 Settings 页面。
- 点击“设置专用终结点”。
- 在打开的弹出面板中,将上面获取的
Resource ID填入Endpoint ID字段,也可选择填写描述。 - 点击“创建端点”。
如果要允许通过现有 Private Link 连接访问,请使用现有端点下拉列表。
下拉列表会显示同一基础设施内各服务的现有 Private Link 连接。
无需在 Azure 门户中手动批准——将
Resource ID 添加到允许列表后,端点连接会自动获批,其 LinkID 也会自动添加到 ClickHouse 服务的 Istio AuthorizationPolicy 中。您的订阅中该专用终结点的连接状态将变为已批准。5
为端点设置私网 DNS name
DNS 的配置方式多种多样。请根据具体用例配置 DNS。
privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com) 指向专用终结点 IP 地址。这样可确保 VNet 内的服务/组件能够正确解析该名称。以下是使用 Azure Private DNS 的典型配置:- 创建专用 DNS 区域,名称为去除开头服务 ID 后的 “DNS name”,例如
privatelink.mhp0y4dmph.westus3.azure.clickhouse-byoc.com。 - 在该区域中创建通配符记录集:将 Name 设为
*,并在 IP Address 中输入之前复制的专用终结点 IP 地址。 - 将专用 DNS 区域链接到虚拟网络,以便 VNet 中的客户端能够解析该区域。
6
通过 Private Link 访问实例
- 在 ClickHouse Cloud 控制台中,进入服务的设置页面。
- 点击“设置专用终结点”。
- 在打开的弹出面板中,复制
DNS name。通过 Private Link 访问 ClickHouse 服务由服务级 Istio Authorization Policy 控制,该策略由 ClickHouse 在您的 BYOC 基础设施中管理。