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