Конфигурация ClickHouseCluster
Базовая конфигурация
Реплики и сегменты
- Реплики: Количество экземпляров ClickHouse в каждом сегменте (для высокой доступности)
- Сегменты: Количество горизонтальных сегментов (для масштабирования)
replicas: 3 и shards: 2 создаст всего 6 подов ClickHouse.
Интеграция с Keeper
keeperClusterRef.namespace, оператор должен отслеживать оба пространства имен. Если настроена переменная WATCH_NAMESPACE, включите в этот список пространства имен ClickHouse и Keeper.
Конфигурация KeeperCluster
Конфигурация хранилища
Оператор может изменять существующий PVC, только если используемый класс хранилища поддерживает расширение томов.
Настройка пода
Автоматическое топологическое распределение и аффинность
Убедитесь, что в вашем кластере Kubernetes достаточно узлов в разных зонах, чтобы выполнить требования к распределению.
Ручная конфигурация
Все поддерживаемые параметры шаблона пода см. в справочнике по API.
Бюджеты сбоев подов
Значения по умолчанию
apply защитить его от случайной потери кворума.
Для ClickHouseCluster с 3 сегментами и
replicas: 3 оператор создаёт три PDB — по одному на каждый сегмент, каждый с minAvailable: 1.
Переопределение значений по умолчанию
spec.podDisruptionBudget, чтобы переопределить либо minAvailable, либо maxUnavailable (ровно одно из них):
maxUnavailable с указанием в процентах:
unhealthyPodEvictionPolicy в сгенерированный PDB — это полезно, если нужно разрешить вытеснение подов, которые всё ещё находятся в состоянии NotReady:
Политики
spec.podDisruptionBudget.policy позволяет выбрать, насколько активно оператор управляет PDB:
Пример — полностью отключить управление PDB в кластере разработки:
Отключение на уровне всего кластера
ENABLE_PDB. При ENABLE_PDB=false оператор пропускает шаг сверки PDB для всех ClickHouseCluster и KeeperCluster независимо от их spec.podDisruptionBudget.policy и вообще не отслеживает ресурсы PodDisruptionBudget. Поэтому ServiceAccount оператора не нужны разрешения RBAC на poddisruptionbudgets.policy/v1, что полезно, если оператор запускается с ограниченным ServiceAccount, в котором эти разрешения намеренно отсутствуют.
Настройка контейнера
Собственный образ
Ресурсы контейнеров
Переменные окружения
Подключение томов
Допускается указывать несколько подключений томов к одному и тому же
mountPath.
Оператор создаст projected volume со всеми указанными подключениями.Все поддерживаемые параметры шаблона контейнера см. в справочнике по API.
Настройка TLS/SSL
Настройка защищённых конечных точек
Формат Secret с SSL-сертификатом
tls.crt- серверный сертификат в PEM-форматеtls.key- приватный ключ в PEM-форматеca.crt- цепочка CA‑сертификатов в PEM-формате
Этот формат совместим с сертификатами, созданными cert-manager.
Взаимодействие ClickHouse-Keeper по TLS
ca.crt. В противном случае используется комплект CA по умолчанию.
Пользователь может указать ссылку на пользовательский комплект CA:
Настройки ClickHouse
Пароль пользователя по умолчанию
Не рекомендуется использовать ConfigMap для хранения паролей в открытом виде.
Использование ConfigMap для паролей пользователей
Дополнительные пользователи в конфигурации
Синхронизация базы данных
Пользовательская конфигурация
Встроенная дополнительная конфигурация
extraConfig:
Полезные ссылки:
Встроенная конфигурация дополнительных пользователей
extraUsersConfig. Это удобно, если нужно определить пользователей, профили, квоты и привилегии прямо в спецификации кластера.
extraUsersConfig хранится в объекте ConfigMap в k8s. Не храните там секретные данные в открытом виде.