Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Clickhouse

Namespaced-кастомный ресурс Clickhouse описывает экземпляр ClickHouse и является источником желаемого состояния сервиса в пользовательском неймспейсе.

clickhouseClassName

Имя ClickhouseClass, по которому проверяется конфигурация экземпляра. Без существующего ClickhouseClass развёртывание ресурса Clickhouse невозможно.

spec:
  clickhouseClassName: default

instance

Секция с вычислительными ресурсами и хранилищем экземпляра ClickHouse. Значения должны соответствовать политике sizing выбранного класса.

spec:
  instance:
    memory:
      size: 4Gi
    cpu:
      cores: 1
      coreFraction: 50%
    persistentVolumeClaim:
      size: 8Gi
      storageClassName: default

TLS

Секция spec.tls настраивает серверный TLS для ClickHouse. При включённом TLS незашифрованные порты отключаются, клиенты подключаются по HTTPS (8443) или защищённому TCP (9440).

Поддерживаемые режимы:

  • CertManager — оператор выпускает сертификат через cert-manager. Укажите clusterIssuerName или issuerName в spec.tls.certManager.
  • CustomCertificate — используйте существующие Secret с tls.crt/tls.key и ca.crt. Задайте spec.tls.customCertificate.serverTLSSecret и spec.tls.customCertificate.serverCASecret.
spec:
  tls:
    mode: CertManager
    certManager:
      clusterIssuerName: selfsigned

Если spec.tls не задан, ClickHouse слушает HTTP-порт 8123 и TCP-порт 9000 без шифрования.

Поддерживаемые версии ClickHouse

Модуль поддерживает только версию ClickHouse 26.3.12.3-lts.

Образы контейнеров ClickHouse основаны на distroless-архитектуре.

Статус

Статус ресурса Clickhouse отражает состояние развёрнутого сервиса. Поле conditions показывает, прошла ли конфигурация проверку и готов ли экземпляр.

Значимые типы условий:

  • LastValidConfigurationApplied — была ли хотя бы раз успешно применена последняя валидная конфигурация.
  • ConfigurationValid — прошла ли конфигурация все проверки связанного ClickhouseClass.
  • ScaledToLastValidConfiguration — соответствует ли число работающих реплик заданной конфигурации.
  • Available — работает ли достаточное число реплик и принимает ли сервис подключения.
conditions:
  - lastTransitionTime: '2025-09-22T23:20:36Z'
    observedGeneration: 2
    status: 'True'
    type: Available
  - lastTransitionTime: '2025-09-22T14:38:04Z'
    observedGeneration: 2
    status: 'True'
    type: ConfigurationValid
  - lastTransitionTime: '2025-09-22T14:38:47Z'
    observedGeneration: 2
    status: 'True'
    type: LastValidConfigurationApplied
  - lastTransitionTime: '2025-09-22T23:20:36Z'
    observedGeneration: 2
    status: 'True'
    type: ScaledToLastValidConfiguration

Статус False указывает на проблему или незавершённую синхронизацию. В этом случае проверьте поля reason и message.

  - lastTransitionTime: '2025-09-23T14:53:33Z'
    message: Syncing
    observedGeneration: 1
    reason: Syncing
    status: 'False'
    type: LastValidConfigurationApplied
  - lastTransitionTime: '2025-09-23T14:54:58Z'
    message: Not all the instances are running still waiting for 1 to become ready
    observedGeneration: 1
    reason: ScalingInProgress
    status: 'False'
    type: ScaledToLastValidConfiguration

Примеры использования

Базовое использование

Выбирайте соотношение памяти и хранилища по рекомендациям ClickHouse по sizing.

  1. Создайте ресурс Clickhouse в неймспейсе default:
d8 k apply -f managed-services_v1alpha1_clickhouse.yaml
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Clickhouse
metadata:
  name: clickhouse-sample
spec:
  clickhouseClassName: default
  instance:
    memory:
      size: "4Gi"
    cpu:
      cores: 1
      coreFraction: "50%"
    persistentVolumeClaim:
      size: "8Gi"
  1. Дождитесь готовности экземпляра и статуса True у всех условий:
d8 k get clickhouse clickhouse-sample -o wide -w
  1. Подключитесь через clickhouse-client к сервису d8ms-ch-clickhouse-sample:
clickhouse-client -h d8ms-ch-clickhouse-sample