Esta guía describe las configuraciones específicas de Cloud para desplegar ClickStack en servicios de Kubernetes gestionados. Para una instalación básica, consulta la guía principal de despliegue con Helm.
Google Kubernetes Engine (GKE)
Al desplegar en GKE, es posible que tengas que anular ciertos valores debido al comportamiento de red específico de la nube.
Problema de resolución DNS de LoadBalancer
El servicio LoadBalancer de GKE puede causar problemas internos de resolución de DNS, en los que la comunicación entre pods de Kubernetes se resuelve a direcciones IP externas en lugar de mantenerse dentro de la red del clúster. Esto afecta específicamente a la conexión del OTel collector con el servidor OpAMP.
Síntomas:
- Logs del OTel collector que muestran errores de "connection refused" con direcciones IP del clúster
- Fallos de conexión a OpAMP como:
dial tcp 34.118.227.30:4320: connect: connection refused
Solución:
Usa el nombre de dominio completo (FQDN) para la URL del servidor 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"Valores de ejemplo para GKE
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # Usa la IP externa de tu LoadBalancer
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
Para implementaciones en EKS, ten en cuenta estas configuraciones comunes:
# 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: 10GiPara las configuraciones de Ingreso de AWS ALB, consulta la guía de manifiestos adicionales y los valores de ejemplo para ALB.
Azure AKS
Para despliegues en 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: 10GiLista de comprobación para el despliegue en producción en la nube
Antes de desplegar ClickStack en producción en cualquier proveedor de nube:
- Configure correctamente
hyperdx.frontendUrlcon su dominio o IP externos - Configure el Ingreso con TLS para el acceso mediante HTTPS
- Sustituya la URL del servidor OpAMP por un FQDN si experimenta problemas de conexión (especialmente en GKE)
- Configure las clases de almacenamiento para las reclamaciones de volumen de ClickHouse y Keeper
- Establezca solicitudes y límites de recursos adecuados
- Habilite la monitorización y las alertas
- Configure las copias de seguridad y la recuperación ante desastres
- Implemente una gestión adecuada de secretos mediante
hyperdx.secretso secretos externos
Buenas prácticas en producción
Gestión de recursos
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: 256MiAlta disponibilidad
hyperdx:
deployment:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: clickstack
podDisruptionBudget:
enabled: true
minAvailable: 1Almacenamiento persistente
Asegúrese de que los volúmenes persistentes estén configurados en las especificaciones CR del operador para garantizar la conservación de los datos:
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: 10GiClases de almacenamiento específicas de Cloud:
- GKE:
pd-ssdopd-balanced - EKS:
gp3oio2 - AKS:
managed-premiumomanaged-csi
Notas de compatibilidad con navegadores
Para implementaciones solo con HTTP (desarrollo/pruebas), algunos navegadores pueden mostrar errores de la API criptográfica debido a los requisitos de contexto seguro. Para implementaciones de producción, use siempre HTTPS con certificados TLS adecuados a través de la configuración de Ingreso.
Consulte Configuración de Ingreso para obtener instrucciones sobre la configuración de TLS.
Siguientes pasos
- Guía de configuración - Claves de API, secretos e ingreso
- Opciones de implementación - Configuración de sistemas externos
- Guía de actualización - Migración de v1.x a v2.x
- Manifiestos adicionales - Objetos personalizados de Kubernetes
- Guía principal de Helm - Instalación básica
- Implementaciones en Cloud (v1.x) - Configuraciones de Cloud v1.x