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 集群外部的客户端。

  • NodePort 使用 OpenShift 节点上的端口
  • LoadBalancer 使用负载均衡器服务
  • ingress 使用 Kubernetes IngressIngress NGINX Controller for Kubernetes (仅限 Kubernetes)
  • route 使用 OpenShift Route 和默认的 HAProxy 路由器(仅限 OpenShift)

    外部监听程序处理从需要不同身份验证机制的网络访问 Kafka 集群。例如,loadbalancers 可能不适用于某些基础架构,如裸机,节点端口提供了更好的选择。

重要

不要在 OpenShift 上使用内置的 入口控制器,而是使用 路由类型。Ingress NGINX Controller 仅适用于 Kubernetes。路由类型 只在 OpenShift 中被支持。

每个监听程序在 Kafka 资源中被定义为一个数组。

侦听器配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
        configuration:
          useServiceDnsDomain: true
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
        configuration:
          brokerCertChainAndKey:
            secretName: my-secret
            certificate: my-certificate.crt
            key: my-key.key
    # ...
Copy to Clipboard Toggle word wrap

您可以根据需要配置多个监听程序,只要它们的名称和端口是唯一的。您还可以使用身份验证为安全连接配置监听程序。

注意

如果您在使用外部监听程序时需要扩展 Kafka 集群,可能会触发所有 Kafka 代理的滚动更新。这取决于配置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat