Перейти к основному содержанию
Перейти к основному содержанию

Облачные развертывания с помощью Helm

В этом руководстве рассматриваются конфигурации, специфичные для облачных платформ, для развертывания 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 otel.opampServerUrl="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"

Дополнительные соображения по GKE

# values-gke.yaml \{#values-gkeyaml}
hyperdx:
  frontendUrl: "http://34.123.61.99"  # Укажите внешний IP вашего LoadBalancer

otel:
  opampServerUrl: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"

# При необходимости настройте для сетевой конфигурации подов GKE \{#adjust-for-gke-pod-networking-if-needed}
clickhouse:
  config:
    clusterCidrs:
      - "10.8.0.0/16"  # GKE обычно использует этот диапазон
      - "10.0.0.0/8"   # Резервный вариант для других конфигураций

Amazon EKS

Для развертывания в EKS рассмотрите следующие распространённые конфигурации:

# values-eks.yaml \{#values-eksyaml}
hyperdx:
  frontendUrl: "http://your-alb-domain.com"

# EKS обычно использует следующие CIDR для подов \{#eks-typically-uses-these-pod-cidrs}
clickhouse:
  config:
    clusterCidrs:
      - "192.168.0.0/16"
      - "10.0.0.0/8"

# Включить входной шлюз для production-среды \{#enable-ingress-for-production}
hyperdx:
  ingress:
    enabled: true
    host: "hyperdx.yourdomain.com"
    tls:
      enabled: true

Azure AKS

Для развертывания в AKS:

# values-aks.yaml \{#values-aksyaml}
hyperdx:
  frontendUrl: "http://your-azure-lb.com"

# Сетевая конфигурация подов AKS \{#aks-pod-networking}
clickhouse:
  config:
    clusterCidrs:
      - "10.244.0.0/16"  # Стандартный CIDR подов AKS
      - "10.0.0.0/8"

Контрольный список для продакшн-развертывания в облаке

Перед развертыванием ClickStack в продакшене у любого провайдера облачных услуг:

  • Настройте корректный frontendUrl с вашим внешним доменом или IP-адресом
  • Настройте Входной шлюз с TLS для доступа по HTTPS
  • Переопределите otel.opampServerUrl с использованием FQDN (полного доменного имени), если возникают проблемы с подключением (особенно в GKE)
  • Скорректируйте clickhouse.config.clusterCidrs под CIDR вашей подсети подов
  • Настройте постоянное хранилище для продакшн-нагрузок
  • Задайте подходящие запросы и лимиты ресурсов
  • Включите мониторинг и оповещения
  • Настройте резервное копирование и восстановление после сбоев
  • Реализуйте корректное управление секретами

Лучшие практики для продакшена

Управление ресурсами

hyperdx:
  resources:
    requests:
      cpu: 500m
      memory: 1Gi
    limits:
      cpu: 2000m
      memory: 4Gi

Высокая доступность

hyperdx:
  replicaCount: 3
  
  affinity:
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        - weight: 100
          podAffinityTerm:
            labelSelector:
              matchExpressions:
                - key: app.kubernetes.io/name
                  operator: In
                  values:
                    - clickstack
            topologyKey: kubernetes.io/hostname

Персистентное хранилище

Убедитесь, что для хранения данных настроены персистентные тома.

clickhouse:
  persistence:
    enabled: true
    size: 100Gi
    storageClass: "fast-ssd"  # Используйте класс хранилища, соответствующий вашему облачному провайдеру

Классы хранилища, зависящие от облачного провайдера:

  • GKE: pd-ssd или pd-balanced
  • EKS: gp3 или io2
  • AKS: managed-premium или managed-csi

Примечания по совместимости с браузерами

Для развертываний, работающих только по HTTP (разработка/тестирование), некоторые браузеры могут показывать ошибки криптографического API из‑за требований к защищённому контексту. Для продуктивных развертываний всегда используйте HTTPS с корректными TLS‑сертификатами, настроенными через конфигурацию входного шлюза.

См. раздел Конфигурация входного шлюза с инструкциями по настройке TLS.

Следующие шаги