Skip to content

Commit dbe9024

Browse files
authored
Merge pull request #4783 from ClickHouse/consolidating-helm-docs
Consolidating helm docs
2 parents c6d0181 + 64b17a9 commit dbe9024

File tree

4 files changed

+764
-51
lines changed

4 files changed

+764
-51
lines changed
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
---
2+
slug: /use-cases/observability/clickstack/deployment/helm-cloud
3+
title: 'Helm cloud deployments'
4+
pagination_prev: null
5+
pagination_next: null
6+
sidebar_position: 5
7+
description: 'Cloud-specific configurations for deploying ClickStack on GKE, EKS, and AKS'
8+
doc_type: 'guide'
9+
keywords: ['ClickStack GKE', 'ClickStack EKS', 'ClickStack AKS', 'Kubernetes cloud deployment', 'production deployment']
10+
---
11+
12+
This guide covers cloud-specific configurations for deploying ClickStack on managed Kubernetes services. For basic installation, see the [main Helm deployment guide](/docs/use-cases/observability/clickstack/deployment/helm).
13+
14+
## Google Kubernetes Engine (GKE) {#google-kubernetes-engine-gke}
15+
16+
When deploying to GKE, you may need to override certain values due to cloud-specific networking behavior.
17+
18+
### LoadBalancer DNS resolution issue {#loadbalancer-dns-resolution-issue}
19+
20+
GKE's LoadBalancer service can cause internal DNS resolution issues where pod-to-pod communication resolves to external IPs instead of staying within the cluster network. This specifically affects the OTEL collector's connection to the OpAMP server.
21+
22+
**Symptoms:**
23+
- OTEL collector logs showing "connection refused" errors with cluster IP addresses
24+
- OpAMP connection failures like: `dial tcp 34.118.227.30:4320: connect: connection refused`
25+
26+
**Solution:**
27+
28+
Use the fully qualified domain name (FQDN) for the OpAMP server URL:
29+
```shell
30+
helm install my-clickstack clickstack/clickstack \
31+
--set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
32+
--set otel.opampServerUrl="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
33+
```
34+
35+
### Other GKE considerations {#other-gke-considerations}
36+
37+
```yaml
38+
# values-gke.yaml
39+
hyperdx:
40+
frontendUrl: "http://34.123.61.99" # Use your LoadBalancer external IP
41+
42+
otel:
43+
opampServerUrl: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
44+
45+
# Adjust for GKE pod networking if needed
46+
clickhouse:
47+
config:
48+
clusterCidrs:
49+
- "10.8.0.0/16" # GKE commonly uses this range
50+
- "10.0.0.0/8" # Fallback for other configurations
51+
```
52+
53+
## Amazon EKS {#amazon-eks}
54+
55+
For EKS deployments, consider these common configurations:
56+
```yaml
57+
# values-eks.yaml
58+
hyperdx:
59+
frontendUrl: "http://your-alb-domain.com"
60+
61+
# EKS typically uses these pod CIDRs
62+
clickhouse:
63+
config:
64+
clusterCidrs:
65+
- "192.168.0.0/16"
66+
- "10.0.0.0/8"
67+
68+
# Enable ingress for production
69+
hyperdx:
70+
ingress:
71+
enabled: true
72+
host: "hyperdx.yourdomain.com"
73+
tls:
74+
enabled: true
75+
```
76+
77+
## Azure AKS {#azure-aks}
78+
79+
For AKS deployments:
80+
```yaml
81+
# values-aks.yaml
82+
hyperdx:
83+
frontendUrl: "http://your-azure-lb.com"
84+
85+
# AKS pod networking
86+
clickhouse:
87+
config:
88+
clusterCidrs:
89+
- "10.244.0.0/16" # Common AKS pod CIDR
90+
- "10.0.0.0/8"
91+
```
92+
93+
## Production Cloud deployment checklist {#production-cloud-deployment-checklist}
94+
95+
Before deploying ClickStack to production on any cloud provider:
96+
97+
- [ ] Configure proper `frontendUrl` with your external domain/IP
98+
- [ ] Set up ingress with TLS for HTTPS access
99+
- [ ] Override `otel.opampServerUrl` with FQDN if experiencing connection issues (especially on GKE)
100+
- [ ] Adjust `clickhouse.config.clusterCidrs` for your pod network CIDR
101+
- [ ] Configure persistent storage for production workloads
102+
- [ ] Set appropriate resource requests and limits
103+
- [ ] Enable monitoring and alerting
104+
- [ ] Configure backup and disaster recovery
105+
- [ ] Implement proper secret management
106+
107+
## Production best practices {#production-best-practices}
108+
109+
### Resource management {#resource-management}
110+
111+
```yaml
112+
hyperdx:
113+
resources:
114+
requests:
115+
cpu: 500m
116+
memory: 1Gi
117+
limits:
118+
cpu: 2000m
119+
memory: 4Gi
120+
```
121+
122+
### High availability {#high-availability}
123+
124+
```yaml
125+
hyperdx:
126+
replicaCount: 3
127+
128+
affinity:
129+
podAntiAffinity:
130+
preferredDuringSchedulingIgnoredDuringExecution:
131+
- weight: 100
132+
podAffinityTerm:
133+
labelSelector:
134+
matchExpressions:
135+
- key: app.kubernetes.io/name
136+
operator: In
137+
values:
138+
- clickstack
139+
topologyKey: kubernetes.io/hostname
140+
```
141+
142+
### Persistent storage {#persistent-storage}
143+
144+
Ensure persistent volumes are configured for data retention:
145+
```yaml
146+
clickhouse:
147+
persistence:
148+
enabled: true
149+
size: 100Gi
150+
storageClass: "fast-ssd" # Use cloud-specific storage class
151+
```
152+
153+
**Cloud-specific storage classes:**
154+
- **GKE**: `pd-ssd` or `pd-balanced`
155+
- **EKS**: `gp3` or `io2`
156+
- **AKS**: `managed-premium` or `managed-csi`
157+
158+
### Browser compatibility notes {#browser-compatibility-notes}
159+
160+
For HTTP-only deployments (development/testing), some browsers may show crypto API errors due to secure context requirements. For production deployments, always use HTTPS with proper TLS certificates through ingress configuration.
161+
162+
See [Ingress configuration](/docs/use-cases/observability/clickstack/deployment/helm-configuration#ingress-setup) for TLS setup instructions.
163+
164+
## Next steps {#next-steps}
165+
166+
- [Configuration guide](/docs/use-cases/observability/clickstack/deployment/helm-configuration) - API keys, secrets, and ingress
167+
- [Deployment options](/docs/use-cases/observability/clickstack/deployment/helm-deployment-options) - External systems configuration
168+
- [Main Helm guide](/docs/use-cases/observability/clickstack/deployment/helm) - Basic installation

0 commit comments

Comments
 (0)