我已经在 minikube 上使用 strimzi 设置了一个 kafka 集群。 minikube 在 ec2 机器上运行。我创建了一个nodeport类型服务来公开kafka集群。但我无法访问ec2之外的kafka集群。
我使用 kubectl port-forward 访问 ec2 IP 地址上的 kafka 集群。但无法连接到经纪人。
您无法轻松使用
kubectl port-forward
,因为 Kafka 协议的工作方式以及客户端需要如何直接连接到每个代理(取决于它托管的分区副本等)。您需要:
Kafka
自定义资源中的广告主机名/端口配置为您的本地主机以及为每个代理公开的端口使用
type: nodeport
监听器可能会更容易。但很大程度上取决于 Kubernetes 集群的配置方式以及运行 Kubernetes 的方式。为了使其发挥作用,您需要确保:
kubectl get node -o yaml
命令进行检查。代理中公布的主机将基于此地址。Strimzi 允许您根据需要自定义所有这些。但在不知道确切环境的情况下,提供准确的 YAML 并不容易。所以你需要尝试一下。本博文系列可能会帮助您了解 Kafka 如何做到这一点以及如何在 Strimzi 中配置它:https://strimzi.io/blog/2019/04/17/accessing-kafka-part-1/