184 похожих чатов

Всем привет. Кто-то использует вот такой бутстрап схем/таблиц в кликхаус

в кубере?
https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/02-templates-06-bootstrap-schema.yaml
Я добавляю такую конфиг мапу и это работает нестабильно. То есть нужные схемы и таблицы я вижу далеко не всегда. Экспериментным путем вижу, что вроде схемы и таблицы появляются только если разворачиваешь новый кластер без зуукипера и с одной репликой. И то не уверен, что это стабильный результат.
Видел, что советовали добавить в конфигурацию вот такой блок:
livenessProbe:
httpGet:
port: "8123"
path: "/ping"
failureThreshold: 3
initialDelaySeconds: 180
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 10
мне не помогает

22 ответов

132 просмотра

если shell скрипт из initdb.d вернет exit code не нулевой , то entrypoint.sh прекратит исполнение и не запустит clickhouse-server логи контейнера с clickhouse-server проверьте самое начало там нет ClickHouse init process failed. ? можете для pod сделать kubectl get pod -n <namespace> <pod-name> -o yaml и выложить на pastila.nl?

о. в 23.10 добавили еще неприятный момент такая схема только один раз активируется пока в /var/lib/clickhouse/ маунте не будет папки data если есть. то уже нет но возможно он вас не аффектит...

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
о. в 23.10 добавили еще неприятный момент такая с...

вроде в логе ничего не видел. Посмотрю еще раз. Пробую на 23.8.4 и 23.8.5

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
о. в 23.10 добавили еще неприятный момент такая с...

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

Stas Dombrovskyi
вроде в логе ничего не видел. Посмотрю еще раз. Пр...

в качестве скриптов инициализации схемы что используете? .sh или .sql ? всякие там CREATE DATABASE IF NOT EXISTS и т.п. Штуки делаете? вообще оператор сам провижен схемы делает для Distributed + Replicated Таблиц при добавлении новых реплик \ шардов...

Stas Dombrovskyi
но момент неприятный. То есть я могу это использов...

не сработает только если clickhouse-server 23.10 и выше... для старых версий ок...

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
в качестве скриптов инициализации схемы что исполь...

использую sh, как в этом примере: https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/02-templates-06-bootstrap-schema.yaml

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
в качестве скриптов инициализации схемы что исполь...

да, CREATE DATABASES в 01_create_databases.sh и TABLES в 02_create_table.sh

Stas-Dombrovskyi Автор вопроса

а как это в операторе? Та же configMap, только вместо sh sql файл?

Stas Dombrovskyi
а как это в операторе? Та же configMap, только вме...

да, почитайте как entrypoint.sh работает https://github.com/ClickHouse/ClickHouse/blame/master/docker/server/entrypoint.sh#L151-L166

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
да, почитайте как entrypoint.sh работает https://g...

спасибо большое, вроде да, та же логика. Попробую

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
да, почитайте как entrypoint.sh работает https://g...

а еще вопрос к этой теме: я могу использовать несколько configmap? каждая для своего кластера? или даже 2 мапы для одного кластера?

Stas Dombrovskyi
а еще вопрос к этой теме: я могу использовать нес...

две ConfigMap можно но замаетесь IMHO пример тут https://www.perplexity.ai/search/kubernetes-how-to-FTumsACbSPOjS7OO8FNKnA?s=c для каждого кластера разное только если будете определять podTemplate разные для разных кластеров podTemplate можно и для реплики и для шарда переопределить только IMHO вам в эти дебри лезть не стоит. вы сначала разберитесь с текущим configmap что не так по логам

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
две ConfigMap можно но замаетесь IMHO пример тут h...

да, конечно, стоит решить текущие проблемы. Просто планируется несколько кластеров: cluster per product. И планировал использовать отдельный configmap для каждого кластера. И еще думал, что если у меня есть отличия в схеме между prod and staging, то можно было бы сделать отдельную configmap для staging. В таком случае, у меня получилось бы в configmaps for 1 cluster

Stas Dombrovskyi
да, конечно, стоит решить текущие проблемы. Просто...

ну вы все кластера внутри одного CHI хотите управлять? лучше в разных 1 cluster - 1 chi так проще манифесты обновлять чтобы изменения манифестов одного кластера по минимуму аффектили другие но тут уже сильно зависит от того как вы манифесты вообще раскатываете...

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
ну вы все кластера внутри одного CHI хотите управл...

Раскатываю через argocd. То есть в репозитории у меня стандартная структура: директории base и envs(а внутри prod, staging…) И мне хотелось для нового кластера просто добавлять новый yaml в этот же репо. Делать отдельный репозиторий под каждый продукт…хотелось бы избежать этого наверное

Stas-Dombrovskyi Автор вопроса

Здравствуйте. Просто хотел поблагодарить за помощь и сказать о результатах: - замена sh -> sql ничего не дало. - помогли эксперименты с версией кликхауса. - в 23.8.4.69 и 23.8.5.16 просто не работает, и в логе пусто, никаких упоминаний "entrypoint.sh" и т.п. Как только перешел на 23.8.3.48, так сразу появилась в логе информация. И все заработало в итоге - Если пытаешься добавить создание еще одной таблицы, то оператор поду не рестартует и изменения не появляются. Но если вручную рестартонуть поду, то изменения появляются

Stas Dombrovskyi
Здравствуйте. Просто хотел поблагодарить за помощь...

так оператор ваш сторонний configmap не отслеживает, надо менять spec.taskID ручками после замены configmap + 1 минута ожидания пока он раскатится

Stas Dombrovskyi
Здравствуйте. Просто хотел поблагодарить за помощь...

оператор следи только за изменениями в ресурсах kind: ClickHouseInstallation из них делает statefulset все остальное внутренняя механика kubernetes ну еще в последних версиях оператор PVC сам создает и к statefulset подключает но это отключено по умолчанию

чего ее искать тут оно все kubectl explain chi.spec.taskID kubectl explain chi.spec

Stas-Dombrovskyi Автор вопроса
Slach [altinity]
чего ее искать тут оно все kubectl explain chi.sp...

спасибо) просто не пользовался раньше)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта