无法从外部连接到 Kubernetes 上的 Kafka

Unable to connect to Kafka on Kubernetes externally

我已经按照 https://docs.bitnami.com/tutorials/deploy-scalable-kafka-zookeeper-cluster-kubernetes.

在 minikube 上部署了 kafka

我能够创建 kafka 主题,通过 kubectl 命令发布和使用来自主题的消息。当我通过 helm chart 安装 kafka 时,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集群。我正在尝试通过 IntelliJ 中的示例生产者代码将消息发布到 kafka 主题,但是无法访问 bootstrap 服务器 kafka.kafka.svc.cluster.local

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#traffic-exposure-parameters

Kafka在这方面不是唯一的,所以我建议多了解一下在集群外访问k8s服务。或者切换回 Docker Compose 以简单地使用容器测试本地 Kafka 环境。

请注意,每个代理的广告侦听器设置 pods 需要 return 他们各自的外部代理地址返回给客户端