14.2. 配置监听程序以连接到 Kafka
使用监听程序启用到 Kafka 的客户端连接。Apache Kafka 的流提供了一个通用 GenericKafkaListener 模式,它带有通过 Kafka 资源配置监听程序的属性。
在配置 Kafka 集群时,您可以根据您的要求、环境和基础架构指定一个监听程序 类型。根据监听程序类型创建要连接到集群的服务、路由、负载均衡器和入口。
支持内部和外部监听程序类型。
- 内部监听程序
使用内部监听程序类型连接 kubernetes 集群中的客户端。
-
在同一 OpenShift 集群内连接的
内部 cluster-ip使用针对每个代理的ClusterIP服务公开 Kafka内部监听程序使用无头服务和分配给代理 pod 的 DNS 名称。默认情况下,它们不使用 OpenShift 服务 DNS 域(通常为
.cluster.local)。但是,您可以使用useServiceDnsDomain属性自定义此配置。如果通过无头服务路由,或者需要自定义访问机制(如与特定的 Ingress 控制器或 OpenShift 网关 API 集成)时,请考虑使用cluster-ip类型监听程序。
-
在同一 OpenShift 集群内连接的
- 外部监听程序
使用外部监听程序类型连接 OpenShift 集群外部的客户端。
-
NodePort使用 OpenShift 节点上的端口 -
LoadBalancer使用负载均衡器服务 -
ingress使用 KubernetesIngress和 Ingress NGINX Controller for Kubernetes (仅限 Kubernetes) route使用 OpenShiftRoute和默认的 HAProxy 路由器(仅限 OpenShift)外部监听程序处理从需要不同身份验证机制的网络访问 Kafka 集群。例如,loadbalancers 可能不适用于某些基础架构,如裸机,节点端口提供了更好的选择。
-
不要在 OpenShift 上使用内置的 入口控制器,而是使用 路由类型。Ingress NGINX Controller 仅适用于 Kubernetes。路由类型 只在 OpenShift 中被支持。
每个监听程序在 Kafka 资源中被定义为一个数组。
侦听器配置示例
您可以根据需要配置多个监听程序,只要它们的名称和端口是唯一的。您还可以使用身份验证为安全连接配置监听程序。
如果您在使用外部监听程序时需要扩展 Kafka 集群,可能会触发所有 Kafka 代理的滚动更新。这取决于配置。