Часто встречающиеся проблемы и пути их устранения#

Проблемы, возникающие при работе в среде Kubernetes или Red Hat OpenShift#

Проблема:

Не запускается или запускается с ошибкой pod.

Решение:

  1. Проверьте статус pod в Kubernetes/Red Hat OpenShift:

    • Если статус ContainerCreating, то:

      1. Подождите, пока Node станет доступной.

      2. Если статус Node не меняется, обратитесь к администратору кластера.

    • Если статус crashloopbackoff, то:

      1. Проверьте логи Pod на наличие ошибок приложения.

      2. Если используете хранилище секретов, подождите загрузку необходимого секрета.

    • Если статус imagepullbackoff, то:

      1. Проверьте правильность адреса до образа в реестре Docker.

      2. Посмотрите, создан ли секрет скачивания образов из разрешенного реестра Docker.

  2. Проверьте, что все контейнеры перешли в статус готовности.

  3. Посмотрите код состояния запросов на readiness и liveness.

Медленная запись и чтение в Kafka#

Ошибки вида org.apache.kafka.common.errors.TimeoutException могут сигнализировать о нестабильном состоянии кластера Kafka. Обратитесь к администратору кластера.

При вставке данных из скрипта SQL данные не реплицируются#

Проблема:

После запуска скрипта SQL по вставке данных из вложения на БД источника репликация переходит в статус SPLIT.

Решение:

В Kafka максимальный размер отправляемых сообщений на производителе (Producer) по умолчанию 1 МБ, для отправки сообщений > 1 МБ, вставьте в опциях соединения Kafka параметр max.request.size = {ваше_значение_в_байтах}.

Репликация останавливается из-за слота или публикации#

Проблема:

В лог-записях pod возникает ошибка: ERROR: publication "{имя_публикации}" does not exist или ERROR: slot "{имя_слота}" does not exist.

Решение:

  1. Удалить публикацию: drop PUBLICATION {имя_публикации}.

  2. Создать публикацию: create PUBLICATION {имя_публикации} FOR ALL TABLES.

Или:

  1. Удалить слот: select * from pg_drop_replication_slot('slot_ name').

  2. Создать слот: select * FROM pg_create_logical_replication_slot('slot_name', 'pgoutput').

    Тип слота должен быть pgoutput.

Процессы не привязываются к воркерам#

Проблема:

Процессы не привязываются к воркерам. Ошибка запуска репликации.

Решение:

  1. Остановите поды grdl-module в k8s / OpenShift.

  2. Перейдите в БД:

    • в таблице grdl_worker_nodes, в поле worker_status укажите: DETACHED, в поле process ID установите значение: [NULL];

    • в таблице grdl_process, в поле status укажите: ABORTED;

    • в таблице grdl_module, в поле status укажите: VALID.

  3. Включите поды grdl-module в k8s / OpenShift.

Нарушение работы модуля применения при нагрузке#

Проблема:

При репликации с высокой нагрузкой (около 60 KTPS) возникает ошибка в работе модуля применения. Сообщение об ошибке: It is not possible to collect messages in the correct order from different partitions.

Решение:

  1. Увеличьте значение параметров retention.ms и delete.retention.ms в Kafka до 172800000 (2 суток).

  2. Установите параметр retention.bytes = -1.

Отсутствие соединения с сервисом аудита#

Проблема:

В сервисе аудита отсутствуют сообщения от прикладных сервисов.

Решение:

  1. Проверьте логи прикладных сервисов в DropApp.

  2. Проверьте инфраструктурные логи DropApp.

  3. Дождитесь восстановления соединения с сервисом аудита – события будут отправлены автоматически.