I'm facing an issue related to configure SASL_PLAINTEXT listener on the Kafka Raft controller listener. The clsuter is set up in Kubernetes.
I'm getting following errors:
[2022-06-24 07:11:35,143] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentException: No serviceName defined in either JAAS or Kafka config
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:184)
at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:192)
at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:81)
at kafka.raft.KafkaRaftManager.buildNetworkClient(RaftManager.scala:239)
at kafka.raft.KafkaRaftManager.buildNetworkChannel(RaftManager.scala:208)
at kafka.raft.KafkaRaftManager.<init>(RaftManager.scala:124)
at kafka.server.KafkaRaftServer.<init>(KafkaRaftServer.scala:76)
at kafka.Kafka$.buildServer(Kafka.scala:79)
at kafka.Kafka$.main(Kafka.scala:87)
at kafka.Kafka.main(Kafka.scala)
Caused by: java.lang.IllegalArgumentException: No serviceName defined in either JAAS or Kafka config
at org.apache.kafka.common.security.kerberos.KerberosLogin.getServiceName(KerberosLogin.java:303)
at org.apache.kafka.common.security.kerberos.KerberosLogin.configure(KerberosLogin.java:92)
at org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:61)
at org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:112)
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:170)
... 9 more
And here's my server.properties configuration:
listeners=INTERNAL://:9093,EXTERNAL://:9092,CLUSTER://:9094,CONTROLLER://:9095
advertised.listeners=INTERNAL://${POD_IP}:9093,EXTERNAL://my-kafka1.com:3200${HOSTNAME##*-},CLUSTER://:9094
listener.security.protocol.map=INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT,CLUSTER:SASL_PLAINTEXT,CONTROLLER:SASL_PLAINTEXT
inter.broker.listener.name=INTERNAL
node.id=0
process.roles=broker,controller
controller.listener.names=CONTROLLER
controller.quorum.voters=0@kafka-0.kafka.kafka.svc:9095,1@kafka-1.kafka.kafka.svc:9095,2@kafka-2.kafka.kafka.svc:9095
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
super.users=User:username
listener.name.controller.plain.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="username" password="password";
And the server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="username"
password="password"
user_username="password";
};