> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Helm

> Развертывание ClickStack с помощью Helm — стек обсервабилити ClickHouse

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<Warning>
  **Версия Helm-чарта 2.x**

  На этой странице описан Helm-чарт **v2.x** на основе субчартов. Если вы всё ещё используете чарт v1.x со встроенными шаблонами, см. [руководство по Helm v1.x](/ru/clickstack/deployment/helm-v1). Инструкции по миграции см. в [руководстве по обновлению](/ru/clickstack/deployment/helm-upgrade).
</Warning>

Helm-чарт для ClickStack доступен [здесь](https://github.com/ClickHouse/ClickStack-helm-charts) и является **рекомендуемым** способом развертывания в production.

В чарте v2.x используется **двухэтапная установка**. Сначала через чарт `clickstack-operators` устанавливаются операторы и CRD, затем — основной чарт `clickstack`, который создаёт управляемые операторами пользовательские ресурсы для ClickHouse, MongoDB и OpenTelemetry Collector.

По умолчанию Helm-чарт разворачивает все основные компоненты, включая:

* **ClickHouse** — управляется [ClickHouse Operator](/ru/products/kubernetes-operator/overview) через пользовательские ресурсы `ClickHouseCluster` и `KeeperCluster`
* **HyperDX** — интерфейс и API для обсервабилити
* **OpenTelemetry (OTel) collector** — разворачивается как субчарт через [официальный Helm-чарт OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-helm-charts)
* **MongoDB** — управляется [MongoDB Kubernetes Operator (MCK)](https://github.com/mongodb/mongodb-kubernetes) через пользовательский ресурс `MongoDBCommunity`

Однако его можно легко настроить для интеграции с существующим развертыванием ClickHouse — например, в **ClickHouse Cloud**.

Чарт поддерживает стандартные рекомендации Kubernetes, включая:

* Конфигурацию для конкретных сред через `values.yaml`
* Ограничения ресурсов и масштабирование на уровне подов
* Настройку TLS и входного шлюза
* Управление секретами и настройку аутентификации
* [Дополнительные манифесты](/ru/clickstack/deployment/helm-additional-manifests) для развертывания произвольных объектов Kubernetes (NetworkPolicy, HPA, ALB Ingress и т. д.) вместе с чартом

<div id="suitable-for">
  ### Подходит для
</div>

* Пилотных проектов
* Промышленной эксплуатации

<div id="deployment-steps">
  ## Шаги развертывания
</div>

<br />

<Steps>
  <Step>
    ### Предварительные требования

    * [Helm](https://helm.sh/) v3+
    * кластер Kubernetes (рекомендуется v1.20+)
    * настроенный `kubectl` для взаимодействия с вашим кластером
  </Step>

  <Step>
    ### Добавьте репозиторий Helm ClickStack

    Добавьте репозиторий Helm ClickStack:

    ```shell theme={null}
    helm repo add clickstack https://clickhouse.github.io/ClickStack-helm-charts
    helm repo update
    ```
  </Step>

  <Step>
    ### Установите операторы

    Сначала установите чарт оператора. При этом будут зарегистрированы CRD, необходимые для основного чарта:

    ```shell theme={null}
    helm install clickstack-operators clickstack/clickstack-operators
    ```

    Подождите, пока поды оператора не перейдут в состояние Ready, прежде чем продолжить:

    ```shell theme={null}
    kubectl get pods -l app.kubernetes.io/instance=clickstack-operators
    ```
  </Step>

  <Step>
    ### Установите ClickStack

    После запуска операторов установите основной чарт:

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack
    ```
  </Step>

  <Step>
    ### Проверьте установку

    Проверьте установку:

    ```shell theme={null}
    kubectl get pods -l "app.kubernetes.io/name=clickstack"
    ```

    После того как все поды будут готовы, продолжайте.
  </Step>

  <Step>
    ### Проброс портов

    Проброс портов позволяет получить доступ к HyperDX и настроить его. При развертывании в рабочей среде вместо этого следует открывать доступ к сервису через входной шлюз или балансировщик нагрузки, чтобы обеспечить корректный сетевой доступ, терминацию TLS и масштабируемость. Проброс портов лучше всего подходит для локальной разработки или разовых административных задач, а не для долгосрочного использования или сред с высокой доступностью.

    ```shell theme={null}
    kubectl port-forward \
      pod/$(kubectl get pod -l app.kubernetes.io/name=clickstack -o jsonpath='{.items[0].metadata.name}') \
      8080:3000
    ```

    <Tip>
      **Настройка входного шлюза для продуктивной среды**

      Для развертываний в продуктивной среде настройте входной шлюз с TLS вместо проброса портов. Подробные инструкции см. в [руководстве по настройке входного шлюза](/ru/clickstack/deployment/helm-configuration#ingress-setup).
    </Tip>
  </Step>

  <Step>
    ### Откройте интерфейс

    Перейдите по адресу [http://localhost:8080](http://localhost:8080), чтобы открыть интерфейс HyperDX.

    Создайте пользователя, указав имя пользователя и пароль, соответствующие требованиям.

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-login.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=eec6e42744553cd8881cf9c9ada74166" alt="Интерфейс HyperDX" size="lg" width="3600" height="1900" data-path="images/use-cases/observability/hyperdx-login.png" />

    После нажатия `Create` для экземпляра ClickHouse, развернутого с помощью Helm-чарта, будут созданы источники данных.

    <Info>
      **Переопределение подключения по умолчанию**

      Вы можете переопределить подключение по умолчанию к встроенному экземпляру ClickHouse. Подробнее см. в разделе ["Использование ClickHouse Cloud"](#using-clickhouse-cloud).
    </Info>
  </Step>

  <Step>
    ### Переопределение значений (необязательно)

    Вы можете переопределить параметры с помощью флагов `--set`. Например:

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack --set key=value
    ```

    Или отредактируйте `values.yaml`. Чтобы получить значения по умолчанию:

    ```shell theme={null}
    helm show values clickstack/clickstack > values.yaml
    ```

    Пример конфигурации:

    ```yaml theme={null}
    hyperdx:
      frontendUrl: "https://hyperdx.example.com"

      deployment:
        replicas: 2
        resources:
          limits:
            cpu: "2"
            memory: 4Gi
          requests:
            cpu: 500m
            memory: 1Gi

      ingress:
        enabled: true
        host: hyperdx.example.com
        tls:
          enabled: true
          tlsSecretName: "hyperdx-tls"
    ```

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack -f values.yaml
    ```
  </Step>

  <Step>
    ### Использование секретов (необязательно)

    Чарт v2.x использует единый secret (`clickstack-secret`), который заполняется из `hyperdx.secrets` в ваших values. Все конфиденциальные переменные окружения — включая пароли ClickHouse, пароли MongoDB и API key HyperDX — передаются через этот единый secret.

    Чтобы переопределить значения secret:

    ```yaml theme={null}
    hyperdx:
      secrets:
        HYPERDX_API_KEY: "your-api-key"
        CLICKHOUSE_PASSWORD: "your-clickhouse-password"
        CLICKHOUSE_APP_PASSWORD: "your-app-password"
        MONGODB_PASSWORD: "your-mongodb-password"
    ```

    Для внешнего управления секретами (например, с помощью оператора для secrets) можно сослаться на уже существующий секрет Kubernetes:

    ```yaml theme={null}
    hyperdx:
      useExistingConfigSecret: true
      existingConfigSecret: "my-external-secret"
      existingConfigConnectionsKey: "connections.json"
      existingConfigSourcesKey: "sources.json"
    ```

    <Tip>
      **Управление API-ключами**

      Подробные инструкции по настройке API-ключей, включая различные методы конфигурирования и процедуры перезапуска подов, см. в [руководстве по настройке API-ключей](/ru/clickstack/deployment/helm-configuration#api-key-setup).
    </Tip>
  </Step>
</Steps>

<div id="using-clickhouse-cloud">
  ## Использование ClickHouse Cloud
</div>

Если вы используете ClickHouse Cloud, отключите встроенный экземпляр ClickHouse и укажите учетные данные Cloud:

```yaml theme={null}
# values-clickhouse-cloud.yaml
clickhouse:
  enabled: false

hyperdx:
  secrets:
    CLICKHOUSE_PASSWORD: "your-cloud-password"
    CLICKHOUSE_APP_PASSWORD: "your-cloud-password"

  useExistingConfigSecret: true
  existingConfigSecret: "clickhouse-cloud-config"
  existingConfigConnectionsKey: "connections.json"
  existingConfigSourcesKey: "sources.json"
```

Создайте секрет подключения отдельно:

```bash theme={null}
cat <<EOF > connections.json
[
  {
    "name": "ClickHouse Cloud",
    "host": "https://your-cloud-instance.clickhouse.cloud",
    "port": 8443,
    "username": "default",
    "password": "your-cloud-password"
  }
]
EOF

kubectl create secret generic clickhouse-cloud-config \
  --from-file=connections.json=connections.json

rm connections.json
```

```shell theme={null}
helm install my-clickstack clickstack/clickstack -f values-clickhouse-cloud.yaml
```

<Tip>
  **Расширенные варианты внешней конфигурации**

  Для развертываний в production со конфигурацией на основе secret, внешними OTel collector или минимальной настройкой см. [руководство по вариантам развертывания](/ru/clickstack/deployment/helm-deployment-options).
</Tip>

<div id="production-notes">
  ## Примечания для продакшена
</div>

По умолчанию этот чарт устанавливает ClickHouse, MongoDB и OTel collector. Для продакшена рекомендуется управлять ClickHouse и OTel collector отдельно.

Чтобы отключить ClickHouse и OTel collector:

```yaml theme={null}
clickhouse:
  enabled: false

otel-collector:
  enabled: false
```

<Tip>
  **Рекомендации для продакшена**

  Сведения о развертываниях в продакшене, включая конфигурацию высокой доступности, управление ресурсами, настройку входного шлюза/TLS и облачные конфигурации (GKE, EKS, AKS), см. здесь:

  * [Руководство по настройке](/ru/clickstack/deployment/helm-configuration) - Входной шлюз, TLS и управление секретами
  * [Облачные развертывания](/ru/clickstack/deployment/helm-cloud) - Облачные настройки и контрольный список для продакшена
</Tip>

<div id="task-configuration">
  ## Конфигурация задач
</div>

По умолчанию в конфигурации чарта предусмотрена одна задача в виде CronJob, которая проверяет, должны ли срабатывать оповещения. В v2.x конфигурация задач перенесена в `hyperdx.tasks`:

| Параметр                              | Описание                                                                                                                                                                                                        | По умолчанию      |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `hyperdx.tasks.enabled`               | Включает/отключает cron-задачи в кластере. По умолчанию образ HyperDX выполняет cron-задачи в рамках основного процесса. Установите значение `true`, если хотите использовать отдельную cron-задачу в кластере. | `false`           |
| `hyperdx.tasks.checkAlerts.schedule`  | Расписание cron для задачи check-alerts                                                                                                                                                                         | `*/1 * * * *`     |
| `hyperdx.tasks.checkAlerts.resources` | Запросы и лимиты ресурсов для задачи check-alerts                                                                                                                                                               | См. `values.yaml` |

<div id="upgrading-the-chart">
  ## Обновление чарта
</div>

Чтобы обновить чарт до новой версии:

```shell theme={null}
helm upgrade my-clickstack clickstack/clickstack -f values.yaml
```

Чтобы проверить доступные версии чарта:

```shell theme={null}
helm search repo clickstack
```

<Info>
  **Обновление с v1.x**

  Если вы обновляетесь с чарта inline-template версии v1.x, инструкции по миграции см. в [руководстве по обновлению](/ru/clickstack/deployment/helm-upgrade). Это несовместимое изменение — обновление на месте с помощью `helm upgrade` не поддерживается.
</Info>

<div id="uninstalling-clickstack">
  ## Удаление ClickStack
</div>

Удаляйте в обратном порядке:

```shell theme={null}
helm uninstall my-clickstack            # Сначала удалить приложение и CR
helm uninstall clickstack-operators     # Удалить операторы и CRD
```

**Примечание:** PersistentVolumeClaims, созданные операторами MongoDB и ClickHouse, **не** удаляются при выполнении `helm uninstall`. Это сделано намеренно, чтобы предотвратить случайную потерю данных. Инструкции по очистке PVC см. здесь:

* [в документации MongoDB Kubernetes Operator](https://github.com/mongodb/mongodb-kubernetes/tree/master/docs/mongodbcommunity)

<div id="troubleshooting">
  ## Устранение неполадок
</div>

<div id="checking-logs">
  ### Проверка журналов
</div>

```shell theme={null}
kubectl logs -l app.kubernetes.io/name=clickstack
```

<div id="debugging-a-failed-install">
  ### Отладка сбоя при установке
</div>

```shell theme={null}
helm install my-clickstack clickstack/clickstack --debug --dry-run
```

<div id="verifying-deployment">
  ### Проверка развертывания
</div>

```shell theme={null}
kubectl get pods -l app.kubernetes.io/name=clickstack
```

<Tip>
  **Дополнительные ресурсы по устранению неполадок**

  Если у вас возникают проблемы с входным шлюзом, TLS или развертыванием в Cloud, см.:

  * [Устранение неполадок входного шлюза](/ru/clickstack/deployment/helm-configuration#troubleshooting-ingress) - Раздача ресурсов, перезапись путей, проблемы с браузером
  * [Развертывания в Cloud](/ru/clickstack/deployment/helm-cloud#loadbalancer-dns-resolution-issue) - Проблемы с GKE OpAMP и специфичные для Cloud проблемы
</Tip>

<div id="schema-choice-map-vs-json">
  ## Выбор схемы: Map или JSON
</div>

По умолчанию ClickStack хранит атрибуты в столбцах `Map(LowCardinality(String), String)`. Это рекомендуемая схема для рабочих нагрузок обсервабилити. В сочетании с [сериализацией Map по бакетам](/ru/reference/data-types/map#bucketed-map-serialization) и текстовыми индексами по ключам и значениям в Map она обеспечивает точечные lookup-операции без накладных расходов на приём для каждого ключа, характерных для динамических подстолбцов JSON.

Схема с типом `JSON` доступна в статусе бета для оценки на рабочих нагрузках с небольшим стабильным набором ключей атрибутов. Использовать её **по умолчанию не рекомендуется**. Полное сравнение и переменные окружения, необходимые для включения поддержки JSON, см. в разделе [Map vs JSON type](/ru/clickstack/ingesting-data/schema/map-vs-json).

<div id="related-documentation">
  ## См. также
</div>

<div id="deployment-guides">
  ### Руководства по развертыванию
</div>

* [Варианты развертывания](/ru/clickstack/deployment/helm-deployment-options) - внешний ClickHouse, OTel collector и минимальные развертывания
* [Руководство по настройке](/ru/clickstack/deployment/helm-configuration) - ключ API, секреты и настройка входного шлюза
* [Развертывания в Cloud](/ru/clickstack/deployment/helm-cloud) - конфигурации GKE, EKS, AKS и рекомендации для production
* [Руководство по обновлению](/ru/clickstack/deployment/helm-upgrade) - переход с v1.x на v2.x
* [Дополнительные манифесты](/ru/clickstack/deployment/helm-additional-manifests) - развертывание пользовательских объектов Kubernetes вместе с чартом

<div id="v1x-documentation">
  ### Документация v1.x
</div>

* [Helm (v1.x)](/ru/clickstack/deployment/helm-v1) - руководство по развертыванию v1.x
* [Конфигурация (v1.x)](/ru/clickstack/deployment/helm-configuration-v1) - конфигурация v1.x
* [Варианты развертывания (v1.x)](/ru/clickstack/deployment/helm-deployment-options-v1) - варианты развертывания v1.x
* [Развертывания в Cloud (v1.x)](/ru/clickstack/deployment/helm-cloud-v1) - конфигурации Cloud для v1.x

<div id="additional-resources">
  ### Дополнительные ресурсы
</div>

* [Руководство по началу работы с ClickStack](/ru/clickstack/getting-started/index) - Введение в ClickStack
* [Репозиторий Helm-чартов ClickStack](https://github.com/ClickHouse/ClickStack-helm-charts) - Исходный код чартов и справочник по values
* [Документация Kubernetes](https://kubernetes.io/docs/) - Справочник по Kubernetes
* [Документация Helm](https://helm.sh/docs/) - Справочник по Helm
