Собственный диспетчер канала Кафка не может достичь Кафки за пределами кластера Кубернетес
Я пытаюсь настроить диспетчер канала Kafka в Knative, используя следующую документацию: https://github.com/knative/eventing/tree/master/contrib/kafka/config
Все прошло отлично, за исключением того, что диспетчер канала не может найти моего брокера Kafka. Ошибка от стручка kafka-channel-dispatcher-0
:
{"level": "fatal", "ts": 1554634078.4035408, "caller": "dispatcher / main.go: 65", "msg": "невозможно создать диспетчер kafka.","error":"невозможно создать kafka client: kafka: на клиенте закончились доступные брокеры, с которыми можно поговорить (доступен ли ваш кластер?)","stacktrace":"main.main\n\t/home/michiel/go/src/github.com/knative/eventing/contrib/kafka/cmd/dispatcher/main.go:65\nruntime.main\n\t/usr/lib/go-1.10/src/runtime/proc.go:198"}
У меня есть один узел Kafka, работающий на другом компьютере, чем кластер K8s, но они находятся в одной сети. Я попытался связаться с брокером Kafka, не используя Knative, запустив контейнер с некоторым Python, и это было успешно, поэтому я знаю, что брокер доступен.
Вот карта конфигурации диспетчера каналов Kafka:
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-channel-controller-config
namespace: knative-eventing
data:
# Broker URL's for the provisioner. Replace this with the URL's for your kafka cluster.
bootstrap_servers: 10.142.15.232:9092
# Consumer mode to dispatch events from different partitions in parallel.
# By default(multiplex), partitions are multiplexed with a single go channel.
# `multiplex` and `partitions` are valid values.
## consumer_mode: partitions
Что я могу сделать, чтобы связаться с моим брокером? Может быть, это как-то связано с тем, что я предоставляю IP-адрес вместо URL, как в примере с документом:
# Broker URL's for the provisioner
bootstrap_servers: my-cluster-kafka-bootstrap.my-kafka-namespace:9092
Обновление: я могу достичь кластера стримзи кафки, как в документации.