Руководство по настройке оператора ClickHouse
В этом руководстве описывается, как настраивать кластеры ClickHouse и Keeper с помощью оператора.
Конфигурация ClickHouseCluster
Базовая конфигурация
Реплики и сегменты
- Реплики: количество экземпляров ClickHouse в одном сегменте (для высокой доступности)
- Сегменты: количество горизонтальных партиций (для масштабирования)
Кластер с replicas: 3 и shards: 2 создаст в сумме 6 подов ClickHouse.
Интеграция с Keeper
Каждый кластер ClickHouse должен быть связан с KeeperCluster для координации:
Конфигурация KeeperCluster
Конфигурация хранилища
Настройте персистентное хранилище:
Оператор может изменять существующий PVC только если базовый класс хранилища поддерживает расширение тома.
Конфигурация подов
Автоматическое распределение подов (topology spread) и аффинность
Распределите поды по зонам доступности:
Убедитесь, что в вашем кластере Kubernetes достаточно узлов в разных зонах, чтобы соответствовать ограничениям распределения.
Ручная конфигурация
Можно задать произвольные правила affinity/anti-affinity подов и ограничения распределения по топологии.
См. API Reference для описания всех поддерживаемых параметров шаблона пода.
Конфигурация контейнера
Собственный образ
Укажите образ ClickHouse:
Ресурсы контейнеров
Настройте ресурсы CPU и памяти для контейнеров ClickHouse:
Переменные окружения
Добавьте пользовательские переменные окружения:
Монтирование томов
Добавьте дополнительные точки монтирования томов:
Допускается указывать несколько монтирований томов на один и тот же mountPath.
Оператор создаст проецируемый том со всеми указанными монтированиями.
См. API Reference для описания всех поддерживаемых параметров шаблона контейнера.
Настройка TLS/SSL
Настройка защищённых конечных точек
Укажите ссылку на Kubernetes Secret, содержащий TLS-сертификаты, чтобы включить защищённые конечные точки
Формат секрета с SSL-сертификатом
Предполагается, что Secret содержит следующие ключи:
tls.crt— серверный сертификат в формате PEMtls.key— закрытый ключ в формате PEMca.crt— цепочка сертификатов CA в формате PEM
Этот формат совместим с сертификатами, сгенерированными cert-manager.
Взаимодействие ClickHouse-Keeper через TLS
Если в KeeperCluster включен TLS, ClickHouseCluster автоматически устанавливает защищённое соединение с узлами Keeper.
ClickHouseCluster должен иметь возможность проверять сертификаты узлов Keeper.
Если в ClickHouseCluster включен TLS, для проверки используется набор ca.crt. В противном случае используется стандартный набор корневых сертификатов (CA bundle).
Пользователь может указать собственный набор корневых сертификатов (CA bundle):
Настройки ClickHouse
Пароль пользователя по умолчанию
Установите пароль пользователя по умолчанию:
Не рекомендуется использовать ConfigMap для хранения паролей в незашифрованном виде.
Создайте секрет:
Использование ConfigMap для паролей пользователей
Вы также можете использовать ConfigMap для несекретных паролей по умолчанию:
Пользователи, определённые в конфигурации
Настройте дополнительных пользователей в конфигурационных файлах.
Создайте ConfigMap и Secret для пользователя:
Добавьте собственную конфигурацию в ClickHouseCluster:
Синхронизация базы данных
Включите автоматическую синхронизацию базы данных для новых реплик:
При включении этой опции оператор синхронизирует реплицируемые и интеграционные таблицы с новыми репликами.
Пользовательская конфигурация
Встроенная дополнительная конфигурация
Вместо монтирования пользовательских файлов конфигурации вы можете напрямую задать дополнительные параметры конфигурации ClickHouse.
Добавьте пользовательскую конфигурацию ClickHouse через параметр extraConfig:
Полезные ссылки:
Встроенная конфигурация дополнительных пользователей
Вы также можете задать дополнительную конфигурацию пользователей ClickHouse с помощью extraUsersConfig. Это удобно для определения пользователей, профилей, QUOTA и привилегий непосредственно в спецификации кластера.
extraUsersConfig сохраняется в объекте k8s ConfigMap. Избегайте хранения там секретов в виде простого текста.
См. документацию со всеми поддерживаемыми параметрами конфигурации пользователей ClickHouse.
Пример конфигурации
Полный пример конфигурации: