OpenShift - 创建新应用程序时何时创建服务?

OpenShift - When is a service created while creating a new application?

我创建了两个应用程序 wurstmeister/kafkazookeeper,如下所示。

oc new-app wurstmeister/kafka
oc new-app zookeeper

虽然我可以在我的项目中看到 zookeeper 服务,但我没有看到 Kafka 服务。如何让我的其他人 pods 连接到 Kafka?通过 pod IP 地址?但是,service不就是pods的连接方式吗?

为什么没有自动创建 Kafka 服务?

Kafka Dockerfile Zookeeper Dockerfile

这与 Zookeeper Dockerfile 包含暴露端口的 EXPOSE 行有关,而 Kafka Dockerfile 中没有这样的行,例如实际上不暴露默认的 9092 端口。 只有在您实际通过 EXPOSE 公开端口的情况下,new-app 命令才会通过服务公开声明的端口。

因为你正在尝试在 OpenShift 上部署 Kafka,我建议看一下 Strimzi 项目 (https://strimzi.io/),它会让你的生活更轻松。 它提供了一个cluster operator安装在OpenShift集群中,然后通过Kafka资源描述一个Kafka集群;运营商将为您部署集群。