Перейти к содержанию

DebeziumConnectNotReady, DebeziumConnectRestarting

Что означает алерт

DebeziumConnectNotReady: у Deployment debezium-connect в namespace debezium нет готовых реплик 5 минут. Severity: critical.

DebeziumConnectRestarting: контейнер перезапустился более 3 раз за 30 минут. Severity: warning.

Kafka Connect работает в одной реплике. Пока под не готов, коннектор не работает: события в Kafka не поступают, слот репликации неактивен, WAL копится.

Диагностика (по шагам)

  1. Состояние пода и причина последнего завершения:
kubectl --context yc-sarex-stage -n debezium get pods -o wide
kubectl --context yc-sarex-stage -n debezium describe pod -l app=debezium-connect | grep -A12 -E 'State:|Last State:|Events:'
Признак Причина Действие
CreateContainerConfigError нет секрета debezium-kafka или debezium-postgresql раздел «Как починить», пункт 1
ImagePullBackOff образ не скачивается раздел «Как починить», пункт 2
OOMKilled не хватило памяти раздел «Как починить», пункт 3
Pending под не размещается на нодах события пода, состояние нод
CrashLoopBackOff процесс падает при старте шаг 2
Running, не Ready REST на 8083 не отвечает на пробу шаг 2
  1. Лог текущего и предыдущего контейнера:
kubectl --context yc-sarex-stage -n debezium logs -l app=debezium-connect --tail=200 | grep -v 'already mapped'
kubectl --context yc-sarex-stage -n debezium logs -l app=debezium-connect --previous --tail=200 | grep -v 'already mapped'

Ошибки подключения к Kafka при старте (SaslAuthenticationException, SSL handshake failed, тайм-ауты до rc1a-...mdb.yandexcloud.net:9091) означают проблему с учётной записью debezium в Managed Kafka, с секретом или с доступностью брокера.

  1. Проверить секреты (только наличие и набор ключей):
kubectl --context yc-sarex-stage -n debezium get secret debezium-kafka debezium-postgresql

Как починить

  1. Нет секрета. Секреты материализует terraform (сервис debezium в контракте, юнит secrets). Запустить пайплайн репозитория infra/terraform на ветке stage. Значения секретов в вывод команд не отправлять.
  2. Образ не скачивается. Проверить наличие тега в cr.yandex/crp3ccidau046kdj8g9q/debezium; пересобрать пайплайном infra/debezium.
  3. OOMKilled. Поднять лимит памяти и HEAP_OPTS в .helm/values.yaml (infra/debezium), задеплоить. Размер heap должен оставаться меньше лимита контейнера.
  4. Ошибка аутентификации в Kafka после смены пароля пользователя debezium: секрет обновляется terraform, под нужно перезапустить (kubectl -n debezium rollout restart deploy/debezium-connect).

После восстановления пода проверить коннектор и слот по разделу 2 общего документа: Debezium: устройство и типовые операции. Задача коннектора после рестарта пода может остаться в FAILED, если слот был занят предыдущим соединением: перезапустить задачу (раздел 3).

Критерий закрытия

  1. Под 1/1 Running, перезапуски прекратились.
  2. Коннектор и задача в RUNNING, слот активен.
  3. Алерт перешёл в inactive.