Перейти к основному содержимому
Версия: 1.12

Обновление Kafka

Обновление версии Kafka запускается собственным тегом kafka и не входит в общий процесс обновления Sage. Это позволяет обновить Kafka в удобный момент и снизить риски, связанные с потенциально опасной и долговременной операцией.

План обновления​

  1. В конфигурационном файле, например, group_vars/sage/kafka.yml, установите флаг версии Kafka:

    group_vars/sage/kafka.yml
    sage_kafka_version: upgrade

    Значение upgrade указывает, что Kafka будет обновлена до версии из дистрибутива Sage. Подробнее о переменной см. в Справочнике переменных.

  2. Подготовьте окружение — задайте режим работы:

    export SAGE_DEPLOY_MODE=update
    Примечание

    Доступные режимы работы:

    • install — установка с перерывом сервиса, режим по умолчанию;

    • update — установка без перерыва сервиса, рекомендуется для обновления.

  3. Запустите плейбук обновления:

    ansible-playbook sage-setup.yml --tags kafka

    Обновление выполняется последовательно по каждому брокеру с паузой в 3 минуты и проверкой работоспособности (healthcheck) после каждого брокера.

  4. Запустите финальную валидацию:

    ansible-playbook sage-setup.yml --tags validate
  5. Зафиксируйте версию — в конфигурационном файле установите флаг, чтобы при следующих обновлениях Sage версия Kafka не менялась:

    group_vars/sage/kafka.yml
    sage_kafka_version: current

В результате выполнения Kafka обновлена до версии из дистрибутива Sage. При следующих обновлениях Sage Kafka не будет обновляться автоматически и останется на текущей версии.

План отката​

  1. В конфигурационном файле установите флаг текущей версии:

    group_vars/sage/kafka.yml
    sage_kafka_version: current
  2. Задайте режим работы update или install и добавьте флаг отката версии:

    export SAGE_DEPLOY_MODE=update
    group_vars/sage/kafka.yml
    sage_kafka_version_rollback: true

    Подробнее о переменной см. в Справочнике переменных.

  3. Запустите обновление:

    ansible-playbook sage-setup.yml --tags kafka

    Обновление выполняется последовательно по каждому брокеру с паузой в 3 минуты и проверкой работоспособности (healthcheck) после каждого брокера.

  4. Запустите финальную валидацию:

    ansible-playbook sage-setup.yml --tags validate
  5. Снимите флаг отката — удалите переменную sage_kafka_version_rollback из конфигурационного файла.

В результате выполнения версия Kafka откачена к предыдущей, конфигурация возвращена в исходное состояние.

FAQ​

Не синхронизировались реплики в течение пяти минут​

Проверьте дашборд Kafka → вкладка Topics Overview → панель Any Topic SYNC. Все топики должны иметь значение 1.00. После этого запустите обновление заново (п.3 плана обновления).

Не поднялся контейнер Kafka после рестарта​

Проверьте логи контейнеров на целевых хостах или воспользуйтесь утилитой диагностики — она автоматически соберет логи всех компонентов в один архив и выявит типовые ошибки.

Определите причину сбоя, устраните ее и повторите обновление.

Не прошел запрос в Sage​

Проверьте, работают ли интерфейс Sage и поиск по логам. Отправьте запрос в поиск Sage самостоятельно и убедитесь, что данные возвращаются:

pql sum(kafka_server_replicamanager_underreplicatedpartitions) != 0"