все вроде как работает, сообщения отправляются и записываются. Но это если все делать локально - из соседнего Pod-а (kafka-client)
Но нужно получить такую же возможность писать сообщения с другого хоста (из-вне k8s-кластера)
Запустил с другого хоста команду:
kafka-console-producer.sh --broker-list 192.168.1.9:31453 --topic test
В логах видел такое:
java.net.UnknownHostException: kafka-0.kafka-headless.kafka.svc.cluster.local
Погуглив, нашел информацию о том, что надо как-то настраивать Listeners-ов
На сайте Kafka нашел два вида этих Listeners-ов: (https://kafka.apache.org/documentation/#brokerconfigs_listeners )
ADVERTISED_LISTENERS
LISTENERS
, но там начинает упоминаться какой-то Zookeeper
Подскажите, пожалуйста, куда чего надо прописать, чтобы можно было записывать сообщения с удаленного хоста?
Настройки kafka-0
- name: KAFKA_CFG_LISTENERS
value: INTERNAL://:9094,CLIENT://:9092,CONTROLLER://:9093
- name: KAFKA_CFG_ADVERTISED_LISTENERS
value: INTERNAL://$(MY_POD_NAME).kafka-headless.kafka.svc.cluster.local:9094,CLIENT://$(MY_POD_NAME).kafka-headless.kafka.svc.cluster.local:9092
через что ставили кафку в k8s?
через Helm
конкретнее. чей чарт?
bitnami/kafka
externalAccess.* эта секция служит для включения режима доступности кластера кафки для приложений вне кубера
externalAccess enabled: true autoDiscovery: enabled: false
описывайте ип сервиса как LoadBalancer/NodePort и ходите к нему. В документации чарта подробно описано как организовать доступ к кластеру кафки извне кубера
Обсуждают сегодня