Установка Kafka в режиме KRaft

Обзор

Сервис Kafka в режиме KRaft устанавливается как обычный сервис при установке кластера ADS в интерфейсе ADCM c применением дополнительных действий:

  • добавление дополнительного компонента Kafka Controller для создания кворума контроллера;

  • установка параметра Kafka quorum solution в значение KRaft во время конфигурирования сервиса Kafka для создания среды для работы режима KRaft (параметры, хранение метаданных и т.д.)

Ниже более подробно описаны шаги установки сервиса Kafka c применением дополнительных действий.

ВНИМАНИЕ
  • Установка сервиса Kafka в режиме KRaft доступна начиная с версии ADS 3.6.2.2.b1.

  • Возможность использования протокола KRaft для Kafka предоставляется в режиме технической предварительной версии и не рекомендуется для использования в продуктовой среде. Arenadata рекомендует вам изучить эту функцию в непроизводственных средах и при необходимости оставить отзыв о своем опыте.

  • Возможность миграции из KRaft в ZooKeeper отсутствует.

  • Для кластера ADS, в котором планируется установка сервиса Kafka в режиме KRaft, установка сервиса ZooKeeper не требуется.

Шаг 1. Добавление сервиса

  1. В интерфейсе ADCM откройте страницу Clusters и кликните по имени кластера ADS. Затем на открывшейся странице кластера перейдите на вкладку Services и нажмите Add services.

    Переход к добавлению сервисов
    Переход к добавлению сервисов
  2. В открывшемся окне выберите сервис Kafka и нажмите Add.

    Выбор сервиса
    Выбор сервиса

    В результате добавленный сервис отобразится на вкладке Services.

    Результат успешного добавления сервиса в кластер
    Результат успешного добавления сервиса в кластер

Шаг 2. Добавление компонентов

  1. На странице кластера откройте вкладку Mapping, чтобы перейти к распределению сервисных компонентов между хостами кластера.

    Переход к распределению сервисных компонентов
    Переход к распределению сервисных компонентов
    Компоненты сервиса Kafka
    Компонент Описание

    Kafka Broker

    Брокер, отвечающий за хранение партиций топиков, к которым подключаются клиенты для записи или чтения сообщений

    Kafka Controller

    Брокер, который отвечает за хранение топика метаданных кластера, участник кворума контроллера

  2. Назначьте хост каждому компоненту сервиса Kafka — нажмите Add hosts и выберите нужный хост в открывшемся окне.

    Выбор хоста для компонента
    Выбор хоста для компонента
    ВНИМАНИЕ
    Для установки Kafka в режиме KRaft Kafka Controller является обязательным компонентом, даже если он не подсвечен красным цветом. Рекомендуемое количество экземпляров Kafka Controller на кластер — 3.
  3. После завершения распределения компонентов нажмите Save, чтобы сохранить изменения.

    Сохранение распределения компонентов
    Сохранение распределения компонентов

Шаг 3. Настройка сервиса

  1. Откройте вкладку Services на странице кластера и кликните по имени сервиса Kafka в столбце Name.

    Переход к настройке сервиса
    Переход к настройке сервиса
  2. В открывшемся окне Primary configuration:

    • измените значение параметра Kafka quorum solution на KRaft;

    • при необходимости заполните остальные конфигурационные параметры сервиса — описания параметров приведены в разделе Kafka статьи Конфигурационные параметры ADS.

      Настройка сервиса Kafka
      Настройка сервиса Kafka

      После указания всех необходимых параметров нажмите Save.

  3. Перейдите к настройке компонента Kafka Controller. Для этого из вкладки Primary configuration перейдите на вкладку Components и выберите компонент Kafka Controller.

    Переход к настройке компонента Kafka Controller
    Переход к настройке компонента Kafka Controller
  4. В открывшемся окне переведите в активное состояние переключатель Show advanced и при необходимости измените значения по умолчанию, установленные для конфигурационных параметров компонента Kafka Controller — описания параметров приведены под заголовком "Конфигурационные параметры компонента Kafka Controller" в разделе Kafka статьи Конфигурационные параметры ADS.

    Настройка компонента Kafka Controller
    Настройка компонента Kafka Controller

    После указания всех необходимых параметров нажмите Save.

Шаг 4. Установка сервиса

  1. На вкладке Services в строке сервиса Kafka кликните по иконке actions default dark actions default light в столбце Actions и запустите действие Install.

    Переход к установке сервиса
    Переход к установке сервиса
  2. Подтвердите действие в открывшемся окне.

    Подтверждение действия
    Подтверждение действия
  3. Дождитесь завершения установки и убедитесь, что статус сервиса изменился с created на installed.

    Процесс установки завершен
    Процесс установки завершен

    Чтобы посмотреть процесс выполнения установки сервиса и проанализировать ошибки в случае их возникновения, выберите пункт Jobs в левом навигационном меню и кликните по имени задачи Install в списке задач Jobs.

    Страница задачи Install
    Страница задачи Install

Шаг 5. Проверка результатов

Конфигурационные файлы

После установки Kafka в режиме KRaft через интерфейс ADCM автоматически устанавливаются все необходимые параметры для работы с кворумом контроллера в конфигурационных файлах для серверов брокеров и контроллеров (в директории /etc/kafka/conf/). Ниже приведены примеры созданных при помощи ADCM файлов конфигурации с учетом параметров, которые были определены на странице сервиса Kafka в соответствующей секции конфигурационных параметров.

Конфигурационный файл брокера Kafka server.properties
node.id=1
auto.create.topics.enable=False
listeners=PLAINTEXT://:9092
log.dirs=/kafka-logs
default.replication.factor=1
num.partitions=1
delete.topic.enable=true
log.retention.hours=168
log.roll.hours=168
queued.max.requests=500
num.network.threads=3
num.io.threads=8
auto.leader.rebalance.enable=True
unclean.leader.election.enable=False
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

listener.security.protocol.map=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT

process.roles=broker
controller.listener.names=CONTROLLER
controller.quorum.voters=100001@sov-ads-test-4.ru-central1.internal:9093
log.cleaner.enable=True
log.cleanup.policy=delete
log.cleanup.interval.mins=10
log.cleaner.min.compaction.lag.ms=0
log.cleaner.delete.retention.ms=86400000

security.inter.broker.protocol=PLAINTEXT
Конфигурационный файл Kafka Controller kafka-controller.properties
process.roles=controller
node.id=100001
controller.listener.names=CONTROLLER
listeners=CONTROLLER://:9093
log.dirs=/kafka-meta
controller.quorum.voters=100001@sov-ads-test-4.ru-central1.internal:9093
listener.security.protocol.map=CONTROLLER:PLAINTEXT

security.inter.broker.protocol=PLAINTEXT
Файл для хранения переменных окружения kafka-controller-env.sh
export LOG_DIR=/var/log/kafka-controller
export PID_DIR=/var/run/kafka-controller

Хранение метаданных

При установке Kafka в режиме KRaft в интерфейсе ADCM при помощи скрипта /usr/lib/kafka/bin/kafka-storage.sh автоматически создается пространство хранения для каждого брокера и контроллера (папка /kafka-meta), содержащее файлы:

  • bootstrap.checkpoint — файл, содержащий набор записей UserScramCredentialsRecord (маркеры контрольных точек), которые используются для начальной загрузки кластера;

  • __cluster_metadata-0 — директория, содержащая файлы, в которых сохраняются все изменения метаданных кластера;

  • meta.properties — файл, содержащий информацию о текущем сервере, версии и идентификаторе кластера.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней