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 ответов

126 просмотров

если 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...

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта