首页 > 解决方案 > 在 Openshift 上外部访问 Kafka

问题描述

我正在尝试使用这种将 Kafka 部署到 Openshift 的方法: https ://github.com/mattf/openshift-kafka

部署设置完毕,我可以在容器内设置代理和消费者,它们工作正常。当我尝试使用控制台消费者(使用端口转发到我的本地计算机)访问主题时,我收到一条消息说代理不可用。

我尝试将advertised.listeners=PLAINTEXT://openshiftRoute:80覆盖添加到 yaml 文件,但现在我得到了Error while fetching metadata with correlation id X : {test=LEADER_NOT_AVAILABLE}.

当我尝试使用 Openshift 路由到 localhost:9092

kafka-console-consumer.bat --bootstrap-server http://route:80 --topic test --from-beginning

我明白了

[2019-05-14 21:58:47,773] ERROR Error processing message, terminating consumer process:  (kafka.tools.ConsoleConsumer$)
java.lang.OutOfMemoryError: Java heap space

我在这里缺少什么,如何在 Openshift 中从外部访问 Kafka?

标签: kubernetesapache-kafkaopenshiftdevops

解决方案


如果您想简化执行此操作的方法,可以尝试使用 Strimzi 项目 ( https://strimzi.io ) 在 Kubernetes 和 OpenShift 上部署和管理 Apache Kafka 集群。它提供了一种非常简单的方法来使用路由在 OpenShift 之外公开 Kafka 集群(但甚至支持负载均衡器和节点端口)。你可以在这里阅读更多:https ://strimzi.io/docs/latest/#con-kafka-listeners-deployment-configuration-kafka


推荐阅读