ClickHouse Operator#

ClickHouse Operator — специализированный оператор, предназначенный для автоматизации управления кластерами ClickHouse в облачной среде. Оператор упрощает развертывание, масштабирование, обновление и мониторинг кластеров.

Примечание

ClickHouse — это высокопроизводительная колоночная СУБД, оптимизированная для аналитических запросов и работы с большими объемами данных.

Основные функции ClickHouse Operator:

  • автоматическое развертывание кластеров ClickHouse;

  • автоматическое масштабирование кластера для поддержания производительности во время пиковых нагрузок и экономии ресурсов в периоды низкого трафика. Поддерживаются горизонтальное масштабирование (добавление/удаление node) и вертикальное масштабирование (изменение ресурсов для node);

  • бесшовное обновление кластеров до новых версий. При возникновении проблем поддерживается откат изменений;

  • автоматическое восстановление работоспособности кластера в случае сбоя работы node;

  • создание резервных копий данных и их восстановление. Интеграция с облачными хранилищами (например, S3) для хранения резервных копий;

  • интеграция с системами мониторинга, такими как Prometheus и Grafana;

  • настройка HTTPS/TLS для шифрования данных при передаче;

  • интеграция с Secrets для управления учетными данными.

Установка#

Установка с помощью kubectl#

Чтобы установить ClickHouse Operator с помощью kubectl:

  1. Опционально. Создайте YAML-манифест <example> самостоятельно:

    kubectl create <example>.yaml
    
  2. Примените YAML-манифест clickhouse-operator-install-bundle.yaml в кластере DropApp:

    kubectl apply -f https://<repoexample.ru>/Altinity/clickhouse-operator/master/deploy/operator/clickhouse-operator-install-bundle.yaml
    

    Где флаг -f указывает путь до файла.

    Пример вывода команды:

    customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.com created
    serviceaccount/clickhouse-operator created
    clusterrolebinding.rbac.authorization.k8s.io/clickhouse-operator created
    deployment.apps/clickhouse-operator configured
    

    Где каждая строка показывает, что созданы:

    • customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.com created - CRD (Custom Resource Definition) с именем ClickHouseInstallation;

    • serviceaccount/clickhouse-operator created - новый Service Account с именем clickhouse-operator;

    • clusterrolebinding.rbac.authorization.k8s.io/clickhouse-operator created - CluserRoleBinding с именем clickhouse-operator;

    • deployment.apps/clickhouse-operator configured - deployment с именем clickhouse-operator.

  3. Убедитесь, что после выполнения шага 2 в кластере развертут namespace kube-system:

    kubectl get pods --namespace kube-system
    

    Пример вывода команды:

    NAME                                   READY   STATUS    RESTARTS   AGE
    ...
    clickhouse-operator                     1/1     Running   0          43m
    ...
    

Установка с помощью Helm#

Чтобы установить ClickHouse Operator с помощью Helm:

  1. Опционально. Добавьте репозиторий ClickHouse Operator:

    helm repo add clickhouse-operator https://<repoexample.ru>/clickhouse-operator/
    
  2. Используйте команду:

    helm install clickhouse-operator clickhouse-operator/altinity-clickhouse-operator