Este guia aborda configurações específicas do Cloud para implantar o ClickStack em serviços gerenciados de Kubernetes. Para a instalação básica, consulte o guia principal de implantação com Helm.
Google Kubernetes Engine (GKE)
Ao implantar no GKE, talvez seja necessário sobrescrever determinados valores devido ao comportamento de rede específico da nuvem.
Problema de resolução de DNS do LoadBalancer
O serviço LoadBalancer do GKE pode causar problemas internos de resolução de DNS, em que a comunicação entre pods do Kubernetes passa a apontar para IPs externos em vez de permanecer dentro da rede do cluster. Isso afeta especificamente a conexão do OTel collector com o servidor OpAMP.
Sintomas:
- Logs do OTel collector mostrando erros de "connection refused" com endereços IP do cluster
- Falhas de conexão com o OpAMP, como:
dial tcp 34.118.227.30:4320: connect: connection refused
Solução:
Use o nome de domínio totalmente qualificado (FQDN) na URL do 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 exemplo do GKE
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # Use o IP externo do seu 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
No caso de implantações no EKS, considere estas configurações comuns:
# 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 configurações de Entrada do AWS ALB, consulte o guia de Manifestos adicionais e os valores de exemplo do ALB.
Azure AKS
Para implantações no 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 verificação para implantação em nuvem para produção
Antes de implantar o ClickStack em produção em qualquer provedor de nuvem:
- Configure corretamente
hyperdx.frontendUrlcom seu domínio/IP externo - Configure a Entrada com TLS para acesso via HTTPS
- Substitua a URL do servidor OpAMP por um FQDN caso esteja enfrentando problemas de conexão (especialmente no GKE)
- Configure as classes de armazenamento para os volume claims do ClickHouse e do Keeper
- Defina requests e limits de recursos adequados
- Habilite monitoramento e alertas
- Configure backup e recuperação de desastres
- Implemente um gerenciamento adequado de secrets via
hyperdx.secretsou secrets externos
Boas práticas para produção
Gerenciamento 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 disponibilidade
hyperdx:
deployment:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: clickstack
podDisruptionBudget:
enabled: true
minAvailable: 1Armazenamento persistente
Garanta que os volumes persistentes estejam configurados para retenção de dados por meio das especificações dos CRs do operador:
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 armazenamento específicas do Cloud:
- GKE:
pd-ssdoupd-balanced - EKS:
gp3ouio2 - AKS:
managed-premiumoumanaged-csi
Notas sobre compatibilidade com navegadores
Para implantações apenas com HTTP (desenvolvimento/testes), alguns navegadores podem exibir erros da API de criptografia devido aos requisitos de contexto seguro. Para implantações em produção, sempre use HTTPS com certificados TLS adequados por meio da configuração de Entrada.
Consulte Configuração de Entrada para instruções de configuração de TLS.
Próximas etapas
- Guia de configuração - chaves de API, secrets e Entrada
- Opções de implantação - Configuração de sistemas externos
- guia de atualização - Migração da v1.x para a v2.x
- Manifests adicionais - Objetos personalizados do Kubernetes
- Guia principal do Helm - Instalação básica
- Implantações no Cloud (v1.x) - configurações do Cloud v1.x