Ce guide présente les configurations spécifiques au Cloud pour déployer ClickStack sur des services Kubernetes managés. Pour l'installation de base, consultez le guide principal de déploiement avec Helm.
Google Kubernetes Engine (GKE)
Lors d’un déploiement sur GKE, il peut être nécessaire de surcharger certaines valeurs en raison d’un comportement réseau spécifique au cloud.
Problème de résolution DNS du LoadBalancer
Le service LoadBalancer de GKE peut provoquer des problèmes internes de résolution DNS, où la communication entre pods est résolue vers des IP externes au lieu de rester dans le réseau du cluster. Cela affecte en particulier la connexion du OTel collector au serveur OpAMP.
Symptômes :
- Les logs du OTel collector affichent des erreurs "connection refused" avec des adresses IP du cluster
- Échecs de connexion à OpAMP du type :
dial tcp 34.118.227.30:4320: connect: connection refused
Solution :
Utilisez le nom de domaine pleinement qualifié (FQDN) pour l’URL du serveur OpAMP :
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"Exemple de valeurs pour GKE
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # Use your LoadBalancer external 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
Pour les déploiements sur EKS, tenez compte de ces configurations courantes :
# 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: 10GiPour les configurations d’Ingress ALB sur AWS, consultez le guide des manifests additionnels et les valeurs d’exemple pour ALB.
Azure AKS
Pour les déploiements sur 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: 10GiChecklist de déploiement cloud en production
Avant de déployer ClickStack en production chez un fournisseur de cloud :
- Configurez correctement
hyperdx.frontendUrlavec votre domaine ou IP externe - Configurez l’ingress avec TLS pour un accès en HTTPS
- Remplacez l’URL du serveur OpAMP par un FQDN si vous rencontrez des problèmes de connexion (en particulier sur GKE)
- Configurez les classes de stockage pour les volumes persistants de ClickHouse et Keeper
- Définissez des requêtes et des limites de ressources appropriées
- Activez le monitoring et les alertes
- Configurez la sauvegarde et la reprise après sinistre
- Mettez en place une gestion appropriée des secrets via
hyperdx.secretsou des secrets externes
Bonnes pratiques en production
Gestion des ressources
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: 256MiHaute disponibilité
hyperdx:
deployment:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: clickstack
podDisruptionBudget:
enabled: true
minAvailable: 1Stockage persistant
Assurez-vous que des volumes persistants sont configurés pour la rétention des données dans les spécifications CR de l’opérateur :
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: 10GiClasses de stockage spécifiques au cloud :
- GKE:
pd-ssdoupd-balanced - EKS:
gp3ouio2 - AKS:
managed-premiumoumanaged-csi
Notes sur la compatibilité des navigateurs
Pour les déploiements en HTTP בלבד (développement/test), certains navigateurs peuvent afficher des erreurs liées à l’API de chiffrement, car ils exigent un contexte sécurisé. Pour les déploiements en production, utilisez toujours HTTPS avec des certificats TLS appropriés via la configuration de l’ingress.
Consultez la configuration de l’ingress pour obtenir les instructions de configuration de TLS.
Prochaines étapes
- Guide de configuration - Clés API, secrets et ingress
- Options de déploiement - Configuration des systèmes externes
- Guide de mise à niveau - Migration de v1.x vers v2.x
- Manifestes supplémentaires - Objets Kubernetes personnalisés
- Guide principal Helm - Installation de base
- Déploiements Cloud (v1.x) - Configurations Cloud pour v1.x