Я развернул kafka на minikube, следуя https://docs.bitnami.com/tutorials/deploy-scalable-kafka-zookeeper-cluster-kubernetes.
Я могу создавать темы кафки, публиковать и использовать сообщения из тем с помощью команд kubectl
. Когда я установил kafka через диаграмму helm, kafka.kafka.svc.cluster.local
— это DNS-имя в кластере.
helm install kafka bitnami/kafka --set zookeeper.enabled=false --set replicaCount=3 --set externalZookeeper.servers=zookeeper.kafka.svc.cluster.local -n kafka
Я пробовал разными способами, но не смог получить доступ к этому кластеру kafka снаружи. Я пытаюсь опубликовать сообщения в теме kafka через образец кода производителя в IntelliJ, но загрузочный сервер kafka.kafka.svc.cluster.local
недоступен.
@OneCricketeer - Спасибо за ваше предложение, я настроил kafka с помощью strmzi.io и могу публиковать/использовать сообщения из-за пределов кластера.
but the bootstrap server kafka.kafka.svc.cluster.local is not reachable.
Это только внутренний адрес записи CoreDNS. Вам потребуется определить автономную службу с открытым NodePort и дополнительным TCP LoadBalancer, который будет направлять входящий трафик в кластер вместе с соответствующей NetworkPolicy. Найдите в конфиге "внешний" - https://github.com/bitnami/charts/tree/master/bitnami/kafka#параметры-экспозиции-трафика
Kafka не уникальна в этом отношении, поэтому я предлагаю узнать больше о доступе к сервисам k8s за пределами кластера. Или переключитесь обратно на Docker Compose, чтобы просто протестировать локальную среду Kafka с контейнерами.
Обратите внимание, что настройка объявленных прослушивателей каждого модуля брокера должна будет возвращать клиенту их индивидуальные внешние адреса брокера.
Я попытался установить helm с помощью NodePort, ниже приведены службы, которые я вижу: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) service/kafka ClusterIP x.x.x.x <none> 9092/TCP service/kafka-0-external NodePort x.x.x.x <none> 9094:32074/TCP service/kafka-1-external NodePort x.x.x.x <none> 9094:32389/TCP service/kafka-2-external NodePort x.x.x.x <none> 9094:30996/TCP service/kafka-headless ClusterIP None <none> 9092/TCP,9093/TCP
Наряду с этим, когда я пытаюсь проверить созданные темы кафки с помощью команды ./kafka-topics.sh --list --bootstrap-server x.x.x.x:32074,x.x.x.x:32389,x.x.x.x:30996
, у меня возникает проблема с тайм-аутом. Не уверен, какую ошибку я делаю. Эти IP-адреса являются конечными точками, отображаемыми в службе kafka-headless.
Безголовая служба говорит «Нет» для своего кластерного IP-адреса, хотя
Да, я тоже пробовал "туннель миникубе", но диаграмма битнами не работала.
Я предлагаю начать с стримзи.ио и прочитать их документацию о разрешении доступа внешних клиентов.