如何公开访问运行在minikube上的strimzi kafka集群?

问题描述 投票:0回答:1

我已经在 minikube 上使用 strimzi 设置了一个 kafka 集群。 minikube 在 ec2 机器上运行。我创建了一个nodeport类型服务来公开kafka集群。但我无法访问ec2之外的kafka集群。

我使用 kubectl port-forward 访问 ec2 IP 地址上的 kafka 集群。但无法连接到经纪人。

kubernetes apache-kafka kubectl minikube strimzi
1个回答
0
投票

您无法轻松使用

kubectl port-forward
,因为 Kafka 协议的工作方式以及客户端需要如何直接连接到每个代理(取决于它托管的分区副本等)。您需要:

  • 转发所有经纪商
  • Kafka
    自定义资源中的广告主机名/端口配置为您的本地主机以及为每个代理公开的端口

使用

type: nodeport
监听器可能会更容易。但很大程度上取决于 Kubernetes 集群的配置方式以及运行 Kubernetes 的方式。为了使其发挥作用,您需要确保:

  • 节点端口在 EC2 主机上公开,而不仅仅是在其中的某些虚拟机或容器上
  • 您的 Kubernetes 节点配置了正确的节点地址(例如 EC2 主机的公共 IP)。您可以使用
    kubectl get node -o yaml
    命令进行检查。代理中公布的主机将基于此地址。

Strimzi 允许您根据需要自定义所有这些。但在不知道确切环境的情况下,提供准确的 YAML 并不容易。所以你需要尝试一下。本博文系列可能会帮助您了解 Kafka 如何做到这一点以及如何在 Strimzi 中配置它:https://strimzi.io/blog/2019/04/17/accessing-kafka-part-1/

© www.soinside.com 2019 - 2024. All rights reserved.