В этом руководстве рассматриваются конфигурации для развертывания ClickStack в управляемых Kubernetes-сервисах с учетом особенностей облачных сред. Базовую установку см. в основном руководстве по развертыванию с Helm.
Google Kubernetes Engine (GKE)
При развертывании в GKE может потребоваться переопределить некоторые значения из-за особенностей работы сети в этой облачной среде.
Проблема с разрешением DNS для LoadBalancer
Сервис LoadBalancer в GKE может вызывать проблемы с внутренним DNS-разрешением, из-за которых трафик между подами направляется на внешние IP-адреса вместо того, чтобы оставаться внутри сети кластера. Это особенно влияет на подключение OTel collector к серверу OpAMP.
Симптомы:
- В журнале OTel collector появляются ошибки "connection refused" с IP-адресами кластера
- Сбои подключения к OpAMP, например:
dial tcp 34.118.227.30:4320: connect: connection refused
Решение:
Используйте полное доменное имя (FQDN) для URL сервера 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"Пример значений для GKE
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # Укажите внешний IP-адрес вашего 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
Для развертываний в 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.
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Контрольный список для облачного развертывания в production
Перед развертыванием ClickStack в production у любого облачного провайдера:
- Настройте корректное значение
hyperdx.frontendUrl, указав внешний домен или IP-адрес - Настройте входной шлюз с TLS для доступа по HTTPS
- Переопределите URL сервера OpAMP, указав FQDN, если возникают проблемы с подключением (особенно в GKE)
- Настройте классы хранилища для PVC ClickHouse и Keeper
- Установите подходящие запросы и лимиты ресурсов
- Включите мониторинг и оповещения
- Настройте резервное копирование и аварийное восстановление
- Реализуйте корректное управление секретами через
hyperdx.secretsили внешние secrets
Рекомендации по промышленной эксплуатации
Управление ресурсами
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Постоянное хранилище
Убедитесь, что для сохранения данных в спецификациях CR оператора настроены постоянные тома:
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: 10GiКлассы хранилищ для Cloud:
- GKE:
pd-ssdилиpd-balanced - EKS:
gp3илиio2 - AKS:
managed-premiumилиmanaged-csi
Примечания о совместимости браузеров
При развертывании только по HTTP (для разработки/тестирования) в некоторых браузерах могут возникать ошибки Crypto API из-за требований к безопасному контексту. В рабочей среде всегда используйте HTTPS с корректными TLS-сертификатами, настроенными через входной шлюз.
Инструкции по настройке TLS см. в разделе конфигурация входного шлюза.
Следующие шаги
- Руководство по настройке - ключи API, секреты и входной шлюз
- Варианты развертывания - настройка внешних систем
- Руководство по обновлению - миграция с v1.x на v2.x
- Дополнительные манифесты - пользовательские объекты Kubernetes
- Основное руководство по Helm - базовая установка
- Развертывания в Cloud (v1.x) - конфигурации Cloud v1.x