本指南介绍在托管 Kubernetes 服务上部署 ClickStack 时所需的 Cloud 专用配置。有关基础安装,请参见 主 Helm 部署指南。
Google Kubernetes Engine (GKE)
在 GKE 上部署时,由于云平台特有的网络行为,你可能需要覆盖某些配置值。
LoadBalancer DNS 解析问题
GKE 的 LoadBalancer 服务可能会引发内部 DNS 解析问题,导致 pod (容器组) 之间的通信被解析到外部 IP,而不是保持在集群内部网络中。这尤其会影响 OTel collector 与 OpAMP 服务器之间的连接。
症状:
- OTel collector 日志中出现带有集群 IP 地址的“connection refused”错误
- OpAMP 连接失败,例如:
dial tcp 34.118.227.30:4320: connect: connection refused
解决方案:
对 OpAMP 服务器 URL 使用完全限定域名 (FQDN) :
helm install my-clickstack clickstack/clickstack \
--set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
--set hyperdx.config.OPAMP_SERVER_URL="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"GKE 示例配置值
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # 使用您的 LoadBalancer 外部 IP
config:
OPAMP_SERVER_URL: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "pd-ssd"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "pd-ssd"
resources:
requests:
storage: 10GiAmazon EKS
对于 EKS 部署,常见的配置如下:
# values-eks.yaml
hyperdx:
frontendUrl: "https://hyperdx.yourdomain.com"
ingress:
enabled: true
host: "hyperdx.yourdomain.com"
tls:
enabled: true
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "gp3"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "gp3"
resources:
requests:
storage: 10Gi有关 AWS ALB 入口配置,请参阅附加清单指南和 ALB 示例 values 文件。
Azure AKS
对于 AKS 部署:
# values-aks.yaml
hyperdx:
frontendUrl: "https://hyperdx.yourdomain.com"
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "managed-csi"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "managed-csi"
resources:
requests:
storage: 10Gi生产环境云部署检查清单
在任何云提供商上将 ClickStack 部署到生产环境之前:
- 使用外部域名/IP 正确配置
hyperdx.frontendUrl - 配置启用 TLS 的入口,以提供 HTTPS 访问
- 如果遇到连接问题,请使用 FQDN 覆盖 OpAMP 服务器 URL (尤其是在 GKE 上)
- 为 ClickHouse 和 Keeper 的卷声明配置存储类
- 设置适当的资源请求和限制
- 启用监控和告警
- 配置备份和灾难恢复
- 通过
hyperdx.secrets或外部 Secret 做好敏感信息管理
生产环境最佳实践
资源管理
hyperdx:
deployment:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: "2"
memory: 4Gi
otel-collector:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 200m
memory: 256Mi高可用性
hyperdx:
deployment:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: clickstack
podDisruptionBudget:
enabled: true
minAvailable: 1持久化存储
确保在 operator 的 CR spec 中为持久卷配置数据保留:
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 100Gi
mongodb:
spec:
statefulSet:
spec:
volumeClaimTemplates:
- metadata:
name: data-volume
spec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10GiCloud 专用存储类:
- GKE:
pd-ssd或pd-balanced - EKS:
gp3或io2 - AKS:
managed-premium或managed-csi
浏览器兼容性说明
对于仅使用 HTTP 的部署 (开发/测试环境) ,由于安全上下文要求,某些浏览器可能会报出 crypto API 错误。对于生产环境部署,请始终通过入口配置使用具有有效 TLS 证书的 HTTPS。
有关 TLS 设置说明,请参阅 入口配置。