Я новичок в Кубернетесе и довольно новичок в Кафке.
Моя цель - заставить мой экземпляр Kafka Connect правильно подключиться к моему брокеру, чтобы он мог получать сообщения.
Пока что я создал развертывание Zookeeper и обернул его в сервис. (Насколько я понимаю, это необходимо для того, чтобы брокер Kafka мог называть zookeeper просто «zookeeper: 2181».)
![Minikube diagram](https://i.stack.imgur.com/Yx674.png)
Я надеялся, что настройка экземпляра Kafka Connect будет такой же простой. Я поместил своего брокера в службу и указал ему экземпляр Connect по имени.
worker.properties
bootstrap.servers=kafka-broker:9092
Однако Connect аварийно завершает работу с этим исключением:
java.io.IOException: Can't resolve address: kafka-broker-57b74c6766-d9w5j:9092
at org.apache.kafka.common.network.Selector.doConnect(Selector.java:235)
at org.apache.kafka.common.network.Selector.connect(Selector.java:214)
at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:864)
at org.apache.kafka.clients.NetworkClient.ready(NetworkClient.java:265)
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.sendEligibleCalls(KafkaAdminClient.java:889)
at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1104)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.channels.UnresolvedAddressException
at java.base/sun.nio.ch.Net.checkAddress(Net.java:130)
at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:675)
at org.apache.kafka.common.network.Selector.doConnect(Selector.java:233)
... 6 more
Я создал альпийский модуль , как описано здесь , и я могу успешно curl -v kafka-broker:9092
. Но это не тот адрес, который Connect пытается разрешить. Он пытается разрешить kafka-broker-57b74c6766-d9w5j:9092
, что, как и Connect, я не могу разрешить. Я не уверен, почему Connect пытается связаться с конкретным модулем, поскольку именно эту проблему должны предотвращать службы Kubernetes (в любом случае, в моем ограниченном понимании).
Как заставить Connect правильно общаться с брокером?
Вот вывод kubectl describe svc kafka-broker
:
Name: kafka-broker
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=kafka-broker
Type: ClusterIP
IP: 10.108.61.90
Port: <unset> 9092/TCP
TargetPort: 9092/TCP
Endpoints: 172.17.0.7:9092
Session Affinity: None
Events: <none>