我创建了两个应用程序wurstmeister/kafka
,zookeeper
如下所示。
oc new-app wurstmeister/kafka
oc new-app zookeeper
虽然我可以zookeeper
在我的项目中看到该服务,但我没有看到 Kafka 服务。如何让我的其他 pod 连接到 Kafka?通过 pod IP 地址?但是,这不是service
豆荚相互连接的方式吗?
为什么没有自动创建 Kafka 服务?
我创建了两个应用程序wurstmeister/kafka
,zookeeper
如下所示。
oc new-app wurstmeister/kafka
oc new-app zookeeper
虽然我可以zookeeper
在我的项目中看到该服务,但我没有看到 Kafka 服务。如何让我的其他 pod 连接到 Kafka?通过 pod IP 地址?但是,这不是service
豆荚相互连接的方式吗?
为什么没有自动创建 Kafka 服务?
这与 Zookeeper Dockerfile 包含暴露端口的 EXPOSE 行有关,但 Kafka Dockerfile 中没有这样的行,它实际上没有暴露默认的 9092 端口。new-app 命令仅在您实际通过 EXPOSE 公开端口的情况下才通过服务公开声明的端口。
因为您正在尝试在 OpenShift 上部署 Kafka,我建议您看一下 Strimzi 项目 ( https://strimzi.io/ ),它会让您的生活更轻松。它提供了一个集群算子安装在 OpenShift 集群中,然后通过 Kafka 资源描述一个 Kafka 集群;运营商将为您部署集群。