Развертывание¶
Порядок работы с helm-чартом¶
Для администрирования Tarantool CDC в Kubernetes используется helm-чарт.
Архив с helm-чартом входит в главный архив пакета поставки
и имеет название вида cdc-helm-chart-x.x.x.tar.gz.
Helm-чарт обеспечивает согласованную работу приложений, входящих в состав Tarantool CDC, и упрощает процесс управления ими. Он позволяет:
развернуть Tarantool CDC в необходимой конфигурации и обеспечить подключение к внешней БД;
удалить Tarantool CDC при необходимости.
Helm-чарт можно использовать обособленно с установленным helm и kubernetes.
Порядок работы с helm-чартом при развертывании Tarantool CDC следующий:
Распаковать главный архив и локально сохранить входящий в него архив с helm-чартом.
Конфигурирование helm-чарта¶
Настройки в helm-чарте можно задавать с помощью файла values.yml. Данный файл
включает в себя конфигурацию как для Tarantool CDC, так и для всех подчартов
по следующей схеме:
worker:
# конфигурация, общая для source- и sink-обработчиков в чарте Tarantool CDC
source:
# конфигурация для source-обработчиков в чарте Tarantool CDC
sink:
# конфигурация для sink-обработчиков в чарте Tarantool CDC
tqe:
# конфигурация для чарта TQE
tarantool:
# конфигурация для чарта Tarantool
Архив с примерами конфигурации для helm-чарта входит в пакет поставки
и имеет название вида tarantool-cdc-helm-samples-x.x.x.tar.gz.
Важно
Обратите внимание, что поля, не указанные в пользовательском файле values.yml, будут
взяты из внутренних файлов values.yml. Как следствие:
Если Docker-образ для чарта
tqeне указан явным образом, то контейнер запустится на основе образа, указанного вcharts/tqe/values.yml.Поля, заданные в
charts/tqe/charts/tarantool/values.ymlв блокеconfig, но не заданные в пользовательской конфигурации, будут добавлены в пользовательский файлvalues.yml.
Запуск helm-чарта¶
После того как конфигурация helm-чарта задана,
можно разворачивать Tarantool CDC с помощью утилиты helm:
helm install <release_name> <path_to_chart> --namespace <namespace> --values <path_to_values.yml>
где:
<release_name>– название установки, напримерcdc;<path_to_chart>– путь к локально сохраненному архиву с helm-чартом;<namespace>– название пространства имен (namespace);<path_to_values.yml>– путь к конфигурации helm-чарта.
Пример:
helm install cdc ./helm-chart-cdc/ --namespace my-namespace --values my-values.yml
Примечание
Для отладки в данном примере можно использовать следующую команду:
helm template cdc ./helm-chart-cdc/ --values my-values.yml
Мониторинг кластера Tarantool CDC¶
После развертывания можно отслеживать состояние:
Обработчиков Tarantool CDC с помощью панели мониторинга Grafana. Файл конфигурации для Grafana входит в пакет поставки и имеет название вида
tarantool-cdc-dashboard_revX.json.Кластера Tarantool TQE на Stateboard в Tarantool Cluster Manager. Для этого нужно:
В Kubernetes настроить форвардинг HTTP-портов, указав номер порта из параметра
tqe.tarantool.tcm.parameters.http.portв конфигурации helm-чарта:kubectl port-forward <pod_name> 8081:8081
Список запущенных подов можно посмотреть командой
kubectl get pods. Название нужного пода имеет вид<cdc>-tcm-<code>, где:cdc– название релиза, указанное при запуске командыhelm install;code- случайный набор букв, сгенерированный Kubernetes при запуске пода.
Пример названия пода:
cdc-tcm-dblkjdflgskndbglks.В конфигурации helm-чарта указать следующие параметры (секция
tqe.tarantool):ttConfigEtcdPrefix– префикс для подключения к кластеру ETCD. Рекомендуется задавать то же значение, что и для параметра storage.etcd.prefix в конфигурации ТСМ.ttConfigEtcdHttpRequestTimeout– время ожидания HTTPS-запросов (в сек) от узлов Tarantool к ETCD. Рекомендуется задавать то же значение, что и для параметра storage.etcd.dial-timeout в конфигурации ТСМ.
Пример:
tqe: tarantool: ttConfigEtcdPrefix: "/cdc" ttConfigEtcdHttpRequestTimeout: 3
В интерфейсе ТСМ выбрать кластер, название которого задано в параметре
tqe.tarantool.tcm.initialSettings.clusterв конфигурации helm-чарта. См. список Cluster в левом верхнем углу интерфейса.
Решение возможных проблем при развертывании Tarantool CDC¶
Проблема |
Журнал |
Решение |
|---|---|---|
Экземпляры router и storage застряли в статусе |
- |
Не создались PV и PVC, неверно указан storage class в конфигурации helm-чарта. |
Экземпляры |
- |
Не создались PV и PVC. Либо неверно указан storage class, либо не удалились PVC с предыдущего запуска. |
Экземпляры router и storage находятся в статусе |
2024-10-03 07:25:34.371 [1] main utils.c:679 E> LuajitError: builtin/config/applier/app.lua:18: module „app.vshard_bootstrapper“ not found: |
Вероятно, неверно задана конфигурация |
Экземпляр cdc source переходит в статус |
io.grpc.StatusRuntimeException: INTERNAL: RST_STREAM closed stream. HTTP/2 error code: INTERNAL_ERROR |
Проверьте состояние кластера. Вероятно, не выполнен vshard bootstrap. |