Кафка / Кубернетес и Автомасштаб - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть вопрос о Кафке в Куберне, особенно автоматическом масштабировании ...

Допустим, у меня есть 3 брокера Кафки в 3 Бочках в Кубернетесе, и есть Тема A с 5 разделами (P1, P2, P3,P4, P5) и коэффициент репликации равен 3, и у всех брокеров есть свои постоянные тома, и у меня настроено автоматическое масштабирование в Kubernetes, поэтому, если он обнаруживает, скажем, использование% 80 ЦП / памяти в модулях Kafka, он запускает дополнительные блоки для брокеров Kafka. .

Если я не совсем ошибаюсь, Кафка обнаружит дополнительные экземпляры Zookeeper и сможет сдвигать разделы (скажем, P1, P2 были у Broker1 и P3, P4 были у Broker2 и P5 были у Broker3), поэтомуновый Pod дает картину, которую я ожидаю, будет что-то вроде следующего за P1 в Broker1, P3, P4 Broker2, P5 Broker3 и P2 в Broker4.

Итак, мой первый вопрос: верны ли приведенные выше предположения, и Кафка ведет себя какэто или нет?

Второй вопрос касается масштабирования вниз, пиковая нагрузка пропала, и нам не нужен Pod4, может, Kubernete? s Shotdown Pod и Kafka могут вернуться к конфигурации 3 Brokers, в этой части я не уверен. В то время как у меня есть фактор репликации 3, 2 других брокера должны иметь возможность продолжать работу, Канн Кафка перетянет Разделение P2 к Брокеру 1, или 2, или 3?

И последний вопрос будет, если Kubernetes породил Pod5,6,7 Можем ли мы снова уменьшить конфигурацию до 3 модулей?

Спасибо за ответы.

1 Ответ

0 голосов
/ 06 ноября 2019

Кафка обнаружит в Zookeeper дополнительные экземпляры и сможет сдвигать разделы

Разделы не будут перебалансированы при расширении кластера.

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

Сам Kubernetes не поможет Kafka выполнить эти операции, а в средах, отличных от k8, этот процессв основном ручной, но может быть написан на скрипте (см. kafka-kit от Datadog). Я полагаю, что операторы k8s, такие как оператор Strimzi, могут упростить перебалансировку данных при масштабировании, , однако на данный момент он не поддерживает автоматическое переназначение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...