负载均衡器
BYOC 部署使用 Network Load Balancers (NLBs) 来管理流量并将其路由到您的 ClickHouse 服务。您可以根据自身的网络模型,选择 public 或 private 负载均衡器端点。
公共负载均衡器:
- 为您的 ClickHouse 服务提供公共 (面向互联网的) 访问。
- 使用 ClickHouse 管理的专用 VPC 时,通常默认启用。
- 使用客户管理的 VPC 时,默认禁用,以增强安全性。
- 提供私有 (内部) 访问,只能从已连接的网络内部访问。
- 使用客户管理的 VPC 时,通常默认启用。
- 使用 ClickHouse 管理的专用 VPC 时,通常默认禁用。
AWS 的私有负载均衡器安全组 (Security Group)
如果你为 BYOC 部署选择使用私有负载均衡器,则必须确保已配置相应的安全组 (Security Group) 规则,以允许来自所需私有网络 (例如已对等连接的 VPC) 的访问。默认情况下,安全组 (Security Group) 仅允许 VPC 内部流量。 要为私有负载均衡器配置安全组 (Security Group) : 联系 ClickHouse 支持团队,请求调整入站安全组 (Security Group) 规则,以允许来自特定源网络的流量:- VPC Peering:请求添加规则,允许来自对等 VPC 的 CIDR 范围的流量。
- PrivateLink:无需更改安全组 (Security Group) ,因为这类流量不受负载均衡器安全组 (Security Group) 的约束。
- 其他网络设置:请说明你的具体场景,以便支持团队提供相应协助。
对私有负载均衡器安全组 (Security Group) 的所有更改都必须由 ClickHouse 支持团队执行。这样可以确保配置一致,并避免与 ClickHouse Cloud 管理环境中的设置发生冲突。
PrivateLink、Private Service Connect 或 Private Link
为实现最高级别的网络隔离和安全性,BYOC 部署可使用 AWS PrivateLink、GCP Private Service Connect 或 Azure Private Link。借助这些方案,您的应用程序可以通过私有网络连接到 ClickHouse Cloud 服务,无需配置 VPC/VNet peering,也不必将端点暴露在公共互联网中。 如需分步设置说明,请参阅 私有网络设置指南。Kubernetes API 私有连接
默认情况下,你的 BYOC 集群的 Kubernetes API server 端点可通过公共互联网访问。在 AWS 上,会通过 IP 过滤器限制访问,仅允许来自 ClickHouse NAT Gateway IP 的流量;在 GCP 和 Azure 上,则改为由云 IAM 进行管控 (参见 Kubernetes API server 暴露) 。为了进一步提升安全性,你可以将 Kubernetes API server 限制为仅能通过私有网络连接访问。 可用的私有连接选项因云提供商而异:Tailscale (默认)
启用私网 API 端点后,ClickHouse 管理服务会通过与故障排查访问相同的 Tailscale 零信任网络连接到 Kubernetes API server。有关此连接如何工作的详细信息,请参阅 Tailscale 私有网络。如果你完全依赖 Tailscale 提供私有连接,一旦 Tailscale agent 不可用,ClickHouse 支持团队可能会失去对你的环境的访问权限。这可能会导致故障排查或支持响应时间延长。
AWS VPC Lattice
VPC Lattice 连接功能目前处于私有预览阶段。请联系 ClickHouse 支持团队为您的部署启用此功能。
- ClickHouse Cloud 会自动预配一个 VPC Lattice Resource Gateway 和一个 Resource Configuration,目标指向您 BYOC VPC 内的 EKS API server 端点,并通过 AWS Resource Access Manager (RAM) 将该 Resource Configuration 共享给 ClickHouse Cloud 管理账户。
- ClickHouse 管理服务与您的 Kubernetes API server 之间的流量始终完全保留在 AWS 私有网络中。
- RAM 共享由您的账户创建,并且仅限于单个 BYOC 集群;删除后会立即撤销该私网访问路径。
- 由于访问不依赖在您的 Kubernetes 集群内运行的 agent,即使集群内组件不可用,ClickHouse 支持团队仍可保留访问权限以进行故障排查。
GCP 私网控制平面端点
对于 GCP 部署,可以禁用 GKE 集群基于 IP 的控制平面端点,使其无法再通过公共互联网访问。此后,ClickHouse 管理服务将通过基于 DNS 的端点 (*.gke.goog) 访问控制平面。该访问的授权依据是 ClickHouse 在您项目中所模拟的服务账号上的 container.clusters.connect IAM 权限,而非源 IP 允许列表。
- 访问完全由您项目中的云 IAM 管控,因此只需撤销该权限,即可切断此访问路径。
- 请求终止于 Google 前端,而非您的 VPC 网络内部,因此在审查时应将其视为一条进入控制平面的访问路径,而非网络层面的私有链路。
- ClickHouse 工程师的故障排查访问仍通过 Tailscale 进行。
Azure Private Link
对于 Azure 部署,可以通过 Azure Private Link 以私网方式访问 AKS API server:- 该集群以私有集群形式创建,启用 API Server VNet Integration,并禁用其公网 FQDN。
- ClickHouse Cloud 会在您的订阅中预配一个 Private Link Service,置于 API server 的内部负载均衡器之前,同时在 ClickHouse Cloud 管理 VNet 中创建对应的专用终结点。只有来自 ClickHouse Cloud 管理订阅的连接才会被自动批准。
- ClickHouse 管理服务与您的 API server 之间的流量始终在 Azure 骨干网络内传输。
- ClickHouse 工程师的故障排查访问仍通过 Tailscale 进行。
节点组
Kubernetes 节点组是一组计算实例,为在 BYOC 部署中运行 ClickHouse 服务提供所需的资源。ClickHouse Cloud 负责管理这些节点组,并自动处理其配置和扩缩容。默认配置
BYOC 集群预配了两类主要的节点组:- 系统节点组 承载关键系统工作负载,例如 ClickHouse Operator、Istio (用于服务网格) 、监控组件 (Prometheus、Grafana、AlertManager) 、集群自动扩缩器 以及其他核心服务。这些节点通常使用标准的 x86 实例类型。
- 工作负载节点组 专门用于 ClickHouse 数据工作负载,包括 server 和 Keeper 服务。默认情况下,工作负载节点运行在基于 ARM 的实例上,在性能与成本之间实现了良好的平衡。不过,也可以按需将其配置为其他 CPU/内存规格,或切换为 x86 架构。
自定义节点组
需要特定资源或架构?支持以下自定义选项——请联系 ClickHouse 支持团队进行讨论和实施:- 实例类型选择 选择特定实例类型,以满足性能、合规性、高内存/CPU 等需求,或利用预留资源。
- CPU/内存配比 根据需要调整工作负载节点组的计算 profile。
- 架构 如有需要,可将工作负载节点组从 ARM 切换为 x86。
注意: 不支持 Spot (可抢占) 实例;默认情况下,所有 BYOC 节点组均运行在按需实例上。
所有节点组自定义和 configuration 变更都必须通过 ClickHouse 支持团队统一协调,以确保兼容性、稳定性和最佳性能。
自动扩缩容
集群节点组会根据以下因素,通过集群自动扩缩器自动进行扩缩容:- pod (容器组) 资源请求和限制
- 集群整体容量和利用率
- ClickHouse 服务的扩缩容需求