Конфигурация Helm
На этой странице описан Helm-чарт v2.x с подчинёнными чартами. Если вы всё ещё используете чарт v1.x со встроенными шаблонами, см. Конфигурация Helm (v1.x). Инструкции по миграции см. в руководстве по обновлению.
Это руководство посвящено настройкам Helm-развертываний ClickStack. Сведения о базовой установке см. в основном руководстве по развертыванию Helm.
Организация значений
Чарт v2.x группирует значения по типам ресурсов Kubernetes в блоке hyperdx::
Все переменные окружения передаются через два ресурса с фиксированными именами, которые используются совместно развертыванием HyperDX и OTel collector через envFrom:
clickstack-configConfigMap — заполняется изhyperdx.configclickstack-secretSecret — заполняется изhyperdx.secrets
Отдельный ConfigMap специально для OTel больше не используется. Оба типа рабочих нагрузок читают данные из одних и тех же источников.
Настройка API-ключа
После успешного развертывания ClickStack настройте API-ключ, чтобы включить сбор телеметрических данных:
- Откройте экземпляр HyperDX через настроенный входной шлюз или конечную точку сервиса
- Войдите в панель HyperDX и перейдите в Team settings, чтобы сгенерировать или получить API-ключ
- Обновите развертывание с помощью API-ключа, используя один из следующих методов:
Метод 1: Обновление через Helm upgrade с использованием файла values
Добавьте API-ключ в values.yaml:
Затем обновите развертывание:
Метод 2: Обновление с помощью helm upgrade с флагом --set
Перезапустите поды, чтобы применить изменения
После обновления API-ключа перезапустите поды, чтобы они подхватили новую конфигурацию:
Чарт автоматически создает секрет Kubernetes (clickstack-secret) с указанными вами значениями конфигурации. Дополнительная настройка секретов не требуется, если только вы не планируете использовать внешний секрет.
Управление секретами
Для работы с конфиденциальными данными, такими как ключи API или учетные данные базы данных, чарт v2.x предоставляет единый ресурс clickstack-secret, который заполняется из hyperdx.secrets.
Значения секретов по умолчанию
Чарт включает значения по умолчанию для всех секретов. Переопределите их в values.yaml:
Использование внешнего секрета
Для развертываний в production-среде, где учетные данные нужно хранить отдельно от значений helm, используйте внешний секрет Kubernetes:
Затем укажите это в values:
Настройка входного шлюза
Чтобы открыть доступ к интерфейсу HyperDX и API по доменному имени, включите входной шлюз в файле values.yaml.
Общая конфигурация входного шлюза
hyperdx.frontendUrl должен соответствовать хосту входного шлюза и включать протокол (например, https://hyperdx.yourdomain.com). Это гарантирует корректную работу всех сгенерированных ссылок, файлов cookie и перенаправлений.
Включение TLS (HTTPS)
Чтобы защитить развертывание с помощью HTTPS:
1. Создайте TLS-секрет с сертификатом и ключом:
2. Включите TLS в конфигурации входного шлюза:
Пример конфигурации входного шлюза
Ниже показано, как выглядит сгенерированный ресурс входного шлюза:
Распространённые проблемы с Входным шлюзом
Конфигурация пути и rewrite:
- Для Next.js и других SPA всегда используйте Regex-путь и аннотацию rewrite, как показано выше
- Не используйте только
path: /без rewrite, так как это нарушит раздачу статических ресурсов
Несоответствие frontendUrl и ingress.host:
- Если они не совпадают, возможны проблемы с cookie, перенаправлениями и загрузкой ресурсов
Неправильная конфигурация TLS:
- Убедитесь, что ваш TLS-секрет действителен и правильно указан во Входном шлюзе
- Браузеры могут блокировать небезопасный контент, если открывать приложение по HTTP при включённом TLS
Версия контроллера Входного шлюза:
- Для некоторых возможностей (например, Regex-путей и rewrite) требуются свежие версии контроллера NGINX Ingress
- Проверьте свою версию с помощью:
Входной шлюз для OTel collector
Если вам нужно открыть доступ к конечным точкам OTel collector (для трейсов, метрик и логов) через входной шлюз, используйте параметр конфигурации additionalIngresses. Это полезно, если вы отправляете телеметрические данные из-за пределов кластера или используете для collector собственный домен.
- Это создаёт отдельный ресурс входного шлюза для конечных точек OTel collector
- Вы можете использовать другой домен, настроить отдельные параметры TLS и применить пользовательские аннотации
- Правило пути Regex позволяет маршрутизировать все сигналы OTLP (трейсы, метрики, логи) через одно правило
Если вам не нужно открывать OTel collector для внешнего доступа, эту конфигурацию можно пропустить. Для большинства пользователей достаточно общей настройки входного шлюза.
В качестве альтернативы вы можете использовать additionalManifests, чтобы определить полностью пользовательские ресурсы входного шлюза, например AWS ALB Ingress.
Конфигурация OTel collector
OTel collector разворачивается с помощью официального Helm-чарта OpenTelemetry Collector как подчарт otel-collector:. Настройте его прямо в разделе otel-collector: файла values:
Переменные окружения (конечная точка ClickHouse, URL-адрес OpAMP и т. д.) передаются через общий ConfigMap clickstack-config и Secret clickstack-secret. Параметр extraEnvsFrom в подчарте уже настроен на чтение из обоих.
Полный список доступных значений подчарта см. в Helm-чарте OpenTelemetry Collector.
Конфигурация MongoDB
MongoDB управляется оператором MCK через пользовательский ресурс MongoDBCommunity. Спецификация CR берётся напрямую из mongodb.spec:
Пароль MongoDB указывается в hyperdx.secrets.MONGODB_PASSWORD. См. документацию MCK с полным списком доступных полей CRD.
Конфигурация ClickHouse
ClickHouse управляется оператором ClickHouse через пользовательские ресурсы ClickHouseCluster и KeeperCluster. Спецификации обоих CR напрямую формируются из values:
Учетные данные пользователя ClickHouse берутся из hyperdx.secrets (а не из clickhouse.config.users, как в версии v1.x). Все доступные поля CRD см. в руководстве по настройке ClickHouse Operator.
Устранение неполадок входного шлюза
Проверьте ресурс «Входной шлюз»:
Проверьте логи контроллера входного шлюза:
Проверка URL-адресов ресурсов:
Используйте curl, чтобы убедиться, что статические ресурсы отдаются как JS, а не как HTML:
Инструменты разработчика браузера:
- Проверьте вкладку Network на наличие ошибок 404 и ресурсов, для которых вместо JS возвращается HTML
- Проверьте, нет ли в консоли ошибок вида
Unexpected token <(это означает, что вместо JS вернулся HTML)
Проверьте переписывание путей:
- Убедитесь, что входной шлюз не обрезает пути к ресурсам и не переписывает их некорректно
Очистите кэш браузера и CDN:
- После внесения изменений очистите кэш браузера и кэш CDN/прокси, чтобы не использовать устаревшие ресурсы
Настройка значений
Параметры можно настроить с помощью флагов --set:
Либо создайте собственный файл values.yaml. Чтобы получить значения по умолчанию:
Примените собственные значения:
Следующие шаги
- Варианты развертывания - Внешние системы и минимальные варианты развертывания
- Развертывания в Cloud - Конфигурации для GKE, EKS и AKS
- Руководство по обновлению - Переход с v1.x на v2.x
- Дополнительные манифесты - Пользовательские объекты Kubernetes
- Основное руководство по Helm - Базовая установка
- Конфигурация (v1.x) - Руководство по конфигурации для v1.x