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

64 просмотра

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

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть Pipeline для GitLab Runner (executor = "shell") В нём есть: default: before_script: - set -eo pipefail - source "$(~/bin/trdl use werf 2 stable)" - source...
Aleksandr Karabanov
1
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта