Обновление Kafka
Пререквизит
Обновление версии Kafka — потенциально опасный и времяемкий процесс, поэтому он вынесен между релизами.
План обновления
-
Подготовить клан:
-
в клане комментируем значение флага версий Kafka в
group_vars/sage/kafka.yml:sage_kafka_version: upgrade
-
-
Подготовить окружение — задать режим работы:
- без перерыва сервиса, медленнее:
export SAGE_DEPLOY_MODE=update - с перерывом сервиса, быстрее:
export SAGE_DEPLOY_MODE=install
- без перерыва сервиса, медленнее:
-
Запустить обновление командой
ansible-playbook sage-setup.yml --tags kafka.- обновление осуществляется последовательно по каждому брокеру с паузой в 3 минуты и healthcheck после каждого брокера.
-
Запустить финальную валидацию:
ansible-playbook sage-setup.yml --tags validate -
Устанавливаем флаг для будущего релиза:
-
в клане выставить значение флага версий Kafka в
group_vars/sage/kafka.yml:sage_kafka_version: current
-
План отката
-
Подготовить клан:
-
В клане выставить значение флага версий Kafka в
group_vars/sage/kafka.yml:sage_kafka_version: current
-
-
Подготовить окружение — задать режим работы:
-
без перерыва сервиса, медленнее:
-
export SAGE_DEPLOY_MODE=update -
добавляем в
group_vars/sage/kafka.ymlфлаг проверки состояния:sage_kafka_version_rollback: true
-
-
с перерывом сервиса, быстрее:
export SAGE_DEPLOY_MODE=install
-
-
Запустить обновление командой
kafka.- обновление осуществляется последовательно по каждому брокеру с паузой в 3 минуты и healthcheck после каждого брокера.
-
Запустить финальную валидацию:
validate -
Убираем флаг
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"