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

Обновление Kafka

Пререквизит

Обновление версии Kafka — потенциально опасный и времяемкий процесс, поэтому он вынесен между релизами.

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

  1. Подготовить клан:

    • в клане комментируем значение флага версий Kafka в group_vars/sage/kafka.yml:

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

    • без перерыва сервиса, медленнее: export SAGE_DEPLOY_MODE=update
    • с перерывом сервиса, быстрее: export SAGE_DEPLOY_MODE=install
  3. Запустить обновление командой ansible-playbook sage-setup.yml --tags kafka.

    • обновление осуществляется последовательно по каждому брокеру с паузой в 3 минуты и healthcheck после каждого брокера.
  4. Запустить финальную валидацию: ansible-playbook sage-setup.yml --tags validate

  5. Устанавливаем флаг для будущего релиза:

    • в клане выставить значение флага версий Kafka в group_vars/sage/kafka.yml:

      sage_kafka_version: current

План отката

  1. Подготовить клан:

    1. В клане выставить значение флага версий Kafka в group_vars/sage/kafka.yml:

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

    • без перерыва сервиса, медленнее:

      • export SAGE_DEPLOY_MODE=update

      • добавляем в group_vars/sage/kafka.yml флаг проверки состояния:

        sage_kafka_version_rollback: true
    • с перерывом сервиса, быстрее: export SAGE_DEPLOY_MODE=install

  3. Запустить обновление командой kafka.

    • обновление осуществляется последовательно по каждому брокеру с паузой в 3 минуты и healthcheck после каждого брокера.
  4. Запустить финальную валидацию: validate

  5. Убираем флаг sage_kafka_version_rollback из group_vars/sage/kafka.yml:

FAQ

Ниже — возможные причины падения обновления.

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

Проверьте дашборд Kafka → вкладка "Topics Overview" → панель "Any Topic SYNC" — все топики должны быть в 1.00. После — запустите обновление заново (п.4).

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

Нужно идти на хост с контейнером, и разбираться в чем проблема.

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

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

pql sum(kafka_server_replicamanager_underreplicatedpartitions) != 0"