Home > database >  Spring application unable to access kafka running in kubernetes minikube
Spring application unable to access kafka running in kubernetes minikube

Time:09-02

I used bitnami/kafka to deploy kafka on minikube. A describe of the pod kafka-0 looks says that server address is:

KAFKA_CFG_ADVERTISED_LISTENERS:INTERNAL://$(MY_POD_NAME).kafka-headless.default.svc.cluster.local:9093,CLIENT://$(MY_POD_NAME).kafka-headless.default.svc.cluster.local:9092

My kafka address is set like so in Spring config properties:

spring.kafka.bootstrap-servers=["kafka-0.kafka-headless.default.svc.cluster.local:9092"]

But when I try to send a message I get the following error:

Failed to construct kafka producer] with root cause:
  org.apache.kafka.common.config.ConfigException: 
    Invalid url in bootstrap.servers: ["kafka-0.kafka-headless.default.svc.cluster.local:9092"]

Note that this works when I run kafka locally and set the bootstrap-servers address to localhost:9092

How do I fix this error? What is the correct kafka URL to use and where do I find it? thanks

CodePudding user response:

Minikube network is different to the host network, you need a bridge. The advertised listener is in the minikube realm, not findable from the host. You could setup a service and an ingress in minikube pointing to your kafka, setup your hosts file to the ip address of the ingress and the hostname advertised.

CodePudding user response:

spring.kafka.bootstrap-servers needs valid server hostnames along with port number as comma-separated

hostname-1:port,hostname-2:port

["kafka-0.kafka-headless.default.svc.cluster.local:9092"] is not looking like one!

  • Related