Развертывание | Cdc

Версия:

latest

Развертывание

Порядок работы с 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 следующий:

  1. Распаковать главный архив и локально сохранить входящий в него архив с helm-чартом.

  2. Сконфигурировать helm-чарт.

  3. Запустить 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. Для этого нужно:

    1. В 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.

    2. В конфигурации helm-чарта указать следующие параметры (секция tqe.tarantool):

      • ttConfigEtcdPrefix – префикс для подключения к кластеру ETCD. Рекомендуется задавать то же значение, что и для параметра storage.etcd.prefix в конфигурации ТСМ.

      • ttConfigEtcdHttpRequestTimeout – время ожидания HTTPS-запросов (в сек) от узлов Tarantool к ETCD. Рекомендуется задавать то же значение, что и для параметра storage.etcd.dial-timeout в конфигурации ТСМ.

      Пример:

      tqe:
        tarantool:
          ttConfigEtcdPrefix: "/cdc"
          ttConfigEtcdHttpRequestTimeout: 3
      
    3. В интерфейсе ТСМ выбрать кластер, название которого задано в параметре tqe.tarantool.tcm.initialSettings.cluster в конфигурации helm-чарта. См. список Cluster в левом верхнем углу интерфейса.

Решение возможных проблем при развертывании Tarantool CDC

Проблема

Журнал

Решение

Экземпляры router и storage застряли в статусе Pending, gRPC в статусе CrashLoopBackOff

-

Не создались PV и PVC, неверно указан storage class в конфигурации helm-чарта.

Экземпляры etcd застряли в статусе Pending, экземпляры tarantool в статусе CrashLoopBackOff

-

Не создались PV и PVC. Либо неверно указан storage class, либо не удалились PVC с предыдущего запуска.

Экземпляры router и storage находятся в статусе CrashLoopBackOff

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:

Вероятно, неверно задана конфигурация tarantool. Некоторые элементы конфигурации tarantool могут добавляться в текущую конфигурацию. Проверьте, нет ли лишних полей в charts/tqe/charts/tarantool/values.yml в блоке config.

Экземпляр cdc source переходит в статус CrashLoopBackOff, потом перезапускается и снова падает

io.grpc.StatusRuntimeException: INTERNAL: RST_STREAM closed stream. HTTP/2 error code: INTERNAL_ERROR

Проверьте состояние кластера. Вероятно, не выполнен vshard bootstrap.

Нашли ответ на свой вопрос?
Обратная связь