7.3. Kafka 集群配置


kafka 集群包含一个或多个代理。要使生产者和消费者能够访问代理中的主题,Kafka 配置必须定义如何存储数据,以及如何访问数据。您可以将 Kafka 集群配置为使用多个代理节点在 机架 之间运行。

存储

Kafka 和 ZooKeeper 将数据存储到磁盘上。

AMQ Streams 需要通过 StorageClass 置备块存储。存储的文件系统格式为 XFSEXT4。支持三种类型的数据存储:

Ephemeral (推荐只在开发时使用)
临时存储在实例生命周期内存储数据。实例重启时数据会丢失。
持久性
持久性存储与独立于实例生命周期的长期数据存储相关。
JBOD (Just a Bunch Disks,仅适用于 Kafka)
JBOD 允许您使用多个磁盘将提交日志存储到每个代理中。

如果基础架构支持,可以增加现有 Kafka 集群使用的磁盘容量。

监听器

侦听器配置客户端如何连接到 Kafka 集群。

通过在 Kafka 集群中为每个监听程序指定唯一名称和端口,您可以配置多个监听程序。

支持以下监听程序类型:

  • 用于在 OpenShift 中访问的内部监听程序
  • 用于在 OpenShift 外部进行访问的 外部监听器

您可以为监听器启用 TLS 加密,并配置身份验证

内部监听程序使用 internal 类型指定。

外部监听程序通过指定一个外部 类型 来公开 Kafka:

  • 使用 OpenShift 路由和默认 HAProxy 路由器的路由
  • LoadBalancer 使用负载均衡器服务
  • NodePort 使用 OpenShift 节点上的端口
  • Ingress 使用 OpenShift IngressNGINX Ingress Controller for Kubernetes

如果您使用 OAuth 2.0 进行基于令牌的身份验证,您可以将监听程序配置为使用授权服务器。

机架感知
机架感知是一个配置功能,可在 机架 之间分发 Kafka 代理 pod 和主题副本,这些副本代表数据中心中的数据中心或机架。

显示 Kafka 配置的 YAML 示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    listeners:
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
        authentication:
          type: tls
    # ...
    storage:
      type: persistent-claim
      size: 10000Gi
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat