Клиенты Kafka должны подключаться к определенному узлу, чтобы создавать или потреблять сообщения.
Протокол kafka может подключаться к любому узлу для получения метаданных.Затем клиент подключается к определенному узлу, который был выбран в качестве лидера раздела, который клиент хочет производить / потреблять.
Каждый модуль kafka должен быть индивидуально доступен, поэтому вам необходим балансировщик нагрузки L4 для каждого модуля.,Конфигурируемый прослушиватель может быть установлен в конфигурации kafka для объявления разных IP / имен хостов для внутренних и внешних клиентов.Сконфигурируйте ADVERTISED_LISTENERS EXTERNAL, чтобы использовать балансировщик нагрузки, и INTERNAL, чтобы использовать IP-адрес модуля.Порты должны быть разными для внутреннего и внешнего.
Оформить заказ https://strimzi.io/, https://bitnami.com/stack/kafka, https://github.com/confluentinc/cp-helm-charts
Обновление:
Пробовал установить кафку в k8s, работающую в AWS EC2.Между confluent-оператором, bitnami-kafka и strimzi, только стримзи настроил EXTERNAL в настройках kafka для балансировки нагрузки.
bitnami-kafka использует безголовый сервис, который бесполезен вне сети k8s.Confluent-operator настраивается на IP-адрес узла, что делает его доступным вне k8s, но для тех, кто может получить доступ к экземпляру EC2 через частный IP-адрес.